1 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
4 Return false for ETIMEDOUT and true otherwise.
6 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
8 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
9 to also match message with '__8' in it.
11 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
13 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
14 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
15 * include/bits/regex_compiler.tcc: Likewise.
16 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
17 * include/bits/regex_scanner.tcc: Likewise.
19 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
21 * include/bits/regex_compiler.tcc: Add line break in empty while
23 * include/bits/regex_executor.tcc: Avoid unused parameter
26 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
28 * include/bits/regex.h (basic_regex, swap): Add noexcept to
29 non-throwing functions.
30 * include/bits/regex_automaton.h (_State_base, _State)
31 (_NFA_base): Likewise.
32 * include/bits/regex_compiler.h (_Compiler): Likewise.
33 * include/bits/regex_error.h (regex_error::code()): Likewise.
34 * include/bits/regex_scanner.h (_Scanner): Likewise.
36 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
38 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
39 Define before first attempt to check it.
41 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
43 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
44 Do not check non-default constructible sequences when
45 _GLIBCXX_CONCEPT_CHECKS is defined.
46 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
48 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
50 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
52 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
54 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
57 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
59 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
60 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
62 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
64 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
66 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
68 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
70 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
72 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
74 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
76 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
78 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
80 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
82 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
84 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
86 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
88 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
90 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
92 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
94 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
97 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
99 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
100 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
101 Check result types of iterator operations.
102 (_Mutable_ForwardIteratorConcept): Check that iterator's
103 reference type is a reference to its value type.
104 (_Mutable_BidirectionalIteratorConcept): Do not require the
105 value type to be assignable.
106 (_Mutable_RandomAccessIteratorConcept): Likewise.
107 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
110 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
112 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
113 for type used as an iterator.
114 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
116 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
118 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
119 comparison function for priority_queue of type with no
120 relational operators.
121 * testsuite/20_util/is_swappable/value.h: Likewise.
122 * testsuite/24_iterators/output/concept.cc: Add operator< to
125 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
127 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
128 Use a function to preserve value category of the type.
129 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
130 reference as the second argument for _OutputIteratorConcept.
131 (copy_backward, move_backward): Use _OutputIteratorConcept
132 instead of _ConvertibleConcept.
134 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
136 * include/bits/stl_iterator.h (pointer_traits): Define partial
137 specialization for __normal_iterator.
138 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
140 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
142 * include/bits/move.h (forward(remove_reference_t<T>&&)):
143 Improve text of static_assert.
144 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
145 * testsuite/20_util/forward/f_neg.cc: Likewise.
147 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
150 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
151 to declarations, to match definitions.
153 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
155 * include/bits/range_access.h (cbegin, cend): Remove redundant
158 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
160 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
161 Remove dg-error lines for C++20-only errors.
163 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
165 * testsuite/19_diagnostics/headers/system_error/93151.cc:
168 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
170 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
171 Map Windows error codes to generic POSIX error numbers. Use
172 FormatMessage instead of strerror.
173 * testsuite/19_diagnostics/error_category/system_category.cc:
174 Adjust for new behaviour on Windows.
176 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
178 * src/c++11/system_error.cc (generic_error_category): Define
179 class and virtual functions as 'final'.
180 (generic_error_category::equivalent(int, const error_condition&)):
182 (system_error_category): Define class and virtual functions as
184 (system_error_category::equivalent(int, const error_condition&)):
186 (generic_category_instance, system_category_instance): Use
187 constinit union to make the objects immortal.
189 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
192 * src/c++11/system_error.cc
193 (system_error_category::default_error_condition): Add 0 to
195 * testsuite/19_diagnostics/error_category/102425.cc: New test.
197 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
199 * include/bits/fs_path.h (path::iterator): Add noexcept to all
200 member functions and friend functions.
201 (distance): Add noexcept.
202 (advance): Add noexcept and inline.
203 * include/experimental/bits/fs_path.h (path::iterator):
204 Add noexcept to all member functions.
206 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
209 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
210 missed in previous patch.
211 * testsuite/20_util/tuple/cons/102270.C: Moved to...
212 * testsuite/20_util/tuple/cons/102270.cc: ...here.
213 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
214 constexpr to constructor so it can be used for C++20 tests.
216 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
218 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
219 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
220 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
221 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
223 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
225 * src/Makefile.am (stamp-debug): Add all Makefiles as
227 * src/Makefile.in: Regenerate.
229 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
231 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
233 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
235 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
237 * doc/xml/manual/using.xml: Generalize to apply to more than
239 * doc/html/manual/using_macros.html: Regenerate.
241 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
243 * include/std/optional (nullptr_t): Make constructor noexcept.
245 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
247 * include/bits/fs_path.h (advance): Remove non-deducible
250 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
253 * include/std/tuple (_Head_base, _Tuple_impl): Add
254 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
255 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
256 * testsuite/20_util/tuple/cons/102270.C: New test.
258 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
261 * include/std/span (span(Range&&)): Add constraint to deduction
264 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
266 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
267 * src/c++98/Makefile.in: Regenerate.
269 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
271 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
272 (to_string): Add noexcept if the type width is 32 bits or less.
274 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
276 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
277 (__uniq_ptr_impl::_M_deleter): Add noexcept.
279 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
282 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
283 va and vb as arguments to wait/notify, remove unused bb local.
285 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
287 * crossconfig.m4: Check for TLS support on mingw.
288 * configure: Regenerate.
290 2021-09-13 Jason Merrill <jason@redhat.com>
292 * include/std/version: Define __cpp_lib_hardware_interference_size.
293 * libsupc++/new: Define hardware interference size variables.
295 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
297 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
298 Fix invalid hostname to only match the .invalid TLD.
300 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
302 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
304 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
307 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
309 * include/std/atomic: Tweak whitespace.
311 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
314 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
315 New function to check if a memory order is valid for the failure
316 case of compare exchange operations.
317 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
318 by using __is_valid_cmpexch_failure_order.
319 (__atomic_base<I>::compare_exchange_strong): Likewise.
320 (__atomic_base<P*>::compare_exchange_weak): Likewise.
321 (__atomic_base<P*>::compare_exchange_strong): Likewise.
322 (__atomic_impl::compare_exchange_weak): Add assertion.
323 (__atomic_impl::compare_exchange_strong): Likewise.
324 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
325 (atomic::compare_exchange_strong): Likewise.
327 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
329 * include/std/functional (invoke_r): Define.
330 * include/std/version (__cpp_lib_invoke_r): Define.
331 * testsuite/20_util/function_objects/invoke/version.cc: Check
332 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
333 * testsuite/20_util/function_objects/invoke/4.cc: New test.
335 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
338 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
339 Add valid range checks.
340 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
341 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
343 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
345 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
346 * configure: Regenerate.
348 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
350 * src/c++11/system_error.cc (error_category::~error_category()):
351 Remove noexcept-specifier.
352 (system_error::~system_error()): Likewise.
353 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
354 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
356 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
359 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
360 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
362 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
364 * include/experimental/internet (__make_resolver_error_code):
365 Handle EAI_SYSTEM errors.
366 (basic_resolver_results): Use __make_resolver_error_code. Use
367 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
369 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
371 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
372 Try other service if "http" fails.
374 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
376 * testsuite/17_intro/names.cc: Undefine some more names used
377 by Solaris system headers.
379 2021-08-30 Jason Merrill <jason@redhat.com>
382 * testsuite/30_threads/promise/requirements/lwg3466.cc:
383 Remove dg-prune-outputs.
385 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
387 * include/bits/alloc_traits.h (allocator_traits): Add explicit
388 specialization for allocator<void>. Improve doxygen comments.
389 * include/bits/allocator.h (allocator<void>): Restore for the
391 (allocator<void>::construct, allocator<void>::destroy): Remove.
392 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
393 Add default constructor and converting constructor.
395 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
397 * include/bits/stl_uninitialized.h: Fix typo in comment.
399 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
402 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
403 to avoid unnecessary current_path() call.
405 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
407 * include/bits/std_function.h (function::function(F&&)): Give
408 name to defaulted template parameter, to improve diagnostics.
409 Use markdown for more doxygen comments.
411 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
413 * include/bits/std_function.h (function): Adjust doxygen
415 * include/bits/unique_ptr.h (make_unique_for_overwrite):
416 Change parameter name to match doxygen comment.
418 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
420 * include/bits/std_function.h (_function_base::_Base_manager):
421 Replace _M_init_functor with a function template using a
422 forwarding reference, and a pair of _M_create function
423 templates. Reuse _M_create for the clone operation.
424 (function::_Decay_t): New alias template.
425 (function::_Callable): Simplify by using _Decay.
426 (function::function(F)): Change parameter to forwarding
427 reference, as per LWG 2447. Add noexcept-specifier. Simplify
429 (function::operator=(F&&)): Add noexcept-specifier.
430 * testsuite/20_util/function/cons/lwg2774.cc: New test.
431 * testsuite/20_util/function/cons/noexcept.cc: New test.
433 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
435 * include/bits/std_function.h (function::function(F)): Add
436 static assertions to check constructibility requirements.
438 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
441 * configure.ac: Check for O_NONBLOCK.
442 * configure: Regenerate.
443 * include/experimental/internet: Include <ws2tcpip.h> for
444 Windows. Use preprocessor conditions around more constants.
445 * include/experimental/socket: Use preprocessor conditions
446 around more constants.
447 * testsuite/experimental/net/internet/resolver/base.cc: Only use
448 constants when the corresponding C macro is defined.
449 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
450 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
451 Make preprocessor checks more fine-grained.
453 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
455 * testsuite/17_intro/names.cc: Check 'sz'.
457 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
459 * testsuite/17_intro/names.cc: Adjust for Windows.
461 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
463 * include/std/valarray: Uglify 'func' parameters.
464 * testsuite/17_intro/names.cc: Add 'func' to checks.
466 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
469 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
470 Define macro to check conditions for optimizing trivial cases.
471 (__check_constructible): New function to do static assert.
472 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
474 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
475 Adjust dg-error pattern.
476 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
477 C++17-specific checks from 89164_c++17.cc.
478 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
479 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
481 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
483 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
485 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
488 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
491 * include/ext/rope (rope::erase(size_type)): Remove broken
494 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
496 * doc/xml/manual/status_cxx2020.xml: Update table.
497 * doc/html/manual/status.html: Regenerate.
499 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
501 * include/std/type_traits (is_layout_compatible): Define.
502 (is_corresponding_member): Define.
503 * include/std/version (__cpp_lib_is_layout_compatible): Define.
504 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
506 * testsuite/20_util/is_layout_compatible/value.cc: New test.
507 * testsuite/20_util/is_layout_compatible/version.cc: New test.
508 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
510 * testsuite/23_containers/span/layout_compat.cc: Do not use real
511 std::is_layout_compatible trait if available.
513 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
515 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
516 explicit instantiation definitions.
518 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
520 * include/std/ranges (basic_istream_view): Add default template
522 * testsuite/std/ranges/istream_view.cc: Check it.
524 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
526 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
529 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
532 * testsuite/util/testsuite_fs.h (permissions_are_testable):
535 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
538 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
539 Use new __gnu_test::permissions_are_testable() function.
540 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
542 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
543 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
544 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
545 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
546 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
547 * testsuite/27_io/filesystem/operations/symlink_status.cc:
549 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
551 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
553 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
555 * testsuite/experimental/filesystem/operations/exists.cc:
557 * testsuite/experimental/filesystem/operations/is_empty.cc:
559 * testsuite/experimental/filesystem/operations/remove.cc:
561 * testsuite/experimental/filesystem/operations/remove_all.cc:
563 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
565 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
566 New function to guess whether testing permissions will work.
568 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
570 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
571 * doc/html/manual/status.html: Regenerate.
573 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
575 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
577 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
580 * include/std/charconv (__to_chars_i): Remove redundant check.
582 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
585 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
586 class' move constructor. Define as defaulted for versioned
588 * testsuite/20_util/tuple/cons/101960.cc: New test.
590 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
593 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
594 * doc/html/manual/status.html: Regenerate.
596 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
598 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
599 * include/bits/unique_ptr.h: Add @headerfile tags.
601 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
603 * src/filesystem/ops-common.h (filesystem::file_time): Improve
604 overflow check by using system_clock::duration::max().
606 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
608 * include/bits/stl_tree.h: Tweak whitespace.
610 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
612 * include/bits/unique_ptr.h (default_delete): Add @since tag.
613 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
614 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
615 @param, and @returns.
616 (_MakeUniq): Move to __detail namespace. Add alias template
619 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
621 * include/bits/stl_function.h: Improve doxygen comments.
623 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
625 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
626 processing for C++20 components and components that depend on
628 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
629 * include/std/type_traits: Improve doxygen comments for C++20
632 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
634 * include/ext/type_traits.h (__promote_2, __promote_3)
635 (__promote_4): Redfine as alias templates using __promoted_t.
636 * include/std/complex (__promote_2): Remove partial
637 specializations for std::complex.
639 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
641 * include/bits/stl_algo.h (min(initializer_list<T>))
642 (min(initializer_list<T>, Compare)): Call __min_element directly to
643 avoid redundant debug checks for valid ranges.
644 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
645 Likewise, for __max_element.
646 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
647 Likewise, for __minmax_element.
649 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
651 * include/debug/deque (deque(size_type, const T&, const A&)):
652 Prevent class template argument deduction and replace with a
654 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
656 * include/debug/list (list(size_type, const T&, const A&)):
658 * include/debug/vector (vector(size_type, const T&, const A&)):
661 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
663 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
664 'std::vector<bool>::reference' as type name, not _Bit_reference.
665 (build_libstdcxx_dictionary): Register printers for vector<bool>
666 types in debug mode too.
667 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
668 output for invalid _Bit_reference. Use vector<bool>::reference
669 instead of _Bit_reference.
670 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
672 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
674 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
677 2021-08-17 Luc Michel <lmichel@kalray.eu>
678 Marc Poulhies <mpoulhies@kalrayinc.com>
680 * testsuite/lib/gdb-test.exp (gdb_version_check)
681 (gdb_version_check_xmethods): Only check the GDB version for
682 local native targets.
684 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
685 Jonathan Wakely <jwakely@redhat.com>
687 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
689 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
692 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
694 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
695 construction from input iterators.
697 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
699 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
701 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
704 * include/bits/std_function.h (function(function&&)): Check for
705 non-empty parameter before doing any work.
707 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
709 * include/bits/cow_string.h (basic_string::contains): Do not
710 define for -std=gnu++20.
712 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
714 * include/bits/ranges_util.h (__not_same_as): Rename to
716 * include/std/ranges (__not_same_as): Likewise.
718 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
720 * include/std/utility (exchange): Add noexcept-specifier.
721 * testsuite/20_util/exchange/noexcept.cc: New test.
723 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
725 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
726 (build_libstdcxx_dictionary): Register printer for
727 std::error_code and std::error_condition.
728 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
730 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
733 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
735 (print_word): Use qualified-id to access it.
737 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
739 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
740 Install another copy of the GDB hook.
741 * python/Makefile.in: Regenerate.
743 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
746 * include/c_global/cmath (hypot): Use __promoted_t.
747 (lerp): Add new overload accepting any arithmetic types.
748 * include/ext/type_traits.h (__promoted_t): New alias template.
749 * testsuite/26_numerics/lerp.cc: Moved to...
750 * testsuite/26_numerics/lerp/1.cc: ...here.
751 * testsuite/26_numerics/lerp/constexpr.cc: New test.
752 * testsuite/26_numerics/lerp/version.cc: New test.
754 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
756 * testsuite/26_numerics/lerp.cc: Add header name to #error.
757 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
758 * testsuite/26_numerics/midpoint/version.cc: New test.
760 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
762 * include/experimental/random (experimental::randint): Add
765 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
767 * src/c++98/locale_init.cc: Require C++11.
768 * src/c++98/localename.cc: Likewise.
769 * src/c++98/misc-inst.cc: Require C++98.
771 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
774 * testsuite/experimental/random/randint.cc: Loop and retry if
775 reseed() produces the same sequence.
777 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
779 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
780 (is_pointer_interconvertible_base_of_v)
781 (is_pointer_interconvertible_base_of): Define for C++20.
782 * include/std/version (__cpp_lib_is_pointer_interconvertible):
784 * testsuite/23_containers/span/layout_compat.cc: Use correct
785 feature test macro for std::is_layout_compatible_v.
786 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
787 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
789 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
791 * include/bits/regex.h (basic_regex::transform_primary): Use
792 _GLIBCXX_STD_C::vector for local variable.
793 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
794 _GLIBCXX_STD_C::vector base class of match_results.
795 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
796 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
798 * include/bits/regex_compiler.h (_BracketMatcher): Use
799 _GLIBCXX_STD_C::vector for data members.
800 * include/bits/regex_executor.h (_Executor): Likewise.
801 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
803 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
805 * include/debug/safe_container.h
806 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
807 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
808 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
810 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
812 * testsuite/23_containers/unordered_map/cons/default.cc: Add
813 equality comparison operators to allocator.
814 * testsuite/23_containers/unordered_set/cons/default.cc:
817 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
819 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
820 dg-prune-output reason with 'builtin_unreachable'.
821 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
822 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
823 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
824 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
825 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
826 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
827 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
828 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
830 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
832 * testsuite/std/ranges/iota/max_size_type.cc: Set
833 dg-timeout-factor to 4.
835 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
837 * libsupc++/compare (compare_three_way, strong_order)
838 (weak_order, partial_order, compare_strong_order_fallback)
839 (compare_weak_order_fallback, compare_partial_order_fallback):
840 Move nodiscard attributes to correct location.
842 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
845 * include/bits/ranges_base.h (ranges::begin, ranges::end)
846 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
847 (ranges::empty, ranges::data): Move attribute after the
848 declarator-id instead of at the end of the declarator.
849 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
850 Move attributes back to the start of the function declarator,
851 but move the requires-clause to the end.
852 (common_iterator): Move attribute after the declarator-id.
853 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
854 from friend declaration that are not definitions.
855 * include/std/ranges (views::all, views::filter)
856 (views::transform, views::take, views::take_while,
857 views::drop) (views::drop_while, views::join,
858 views::lazy_split) (views::split, views::counted,
859 views::common, views::reverse) (views::elements): Move
860 attributes after the declarator-id.
862 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
864 * libsupc++/compare (partial_ordering, weak_ordering)
865 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
866 (compare_three_way, strong_order, weak_order, partial_order)
867 (compare_strong_order_fallback, compare_weak_order_fallback)
868 (compare_partial_order_fallback, __detail::__synth3way): Add
870 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
871 -Wno-unused-result to options.
873 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
876 * include/bits/ranges_base.h (ranges::begin, ranges::end)
877 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
878 (ranges::empty, ranges::data): Move attribute to the end of
880 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
881 (common_iterator): Likewise for non-member operator functions.
882 * include/std/ranges (views::all, views::filter)
883 (views::transform, views::take, views::take_while, views::drop)
884 (views::drop_while, views::join, views::lazy_split)
885 (views::split, views::counted, views::common, views::reverse)
886 (views::elements): Likewise.
887 * testsuite/std/ranges/access/101782.cc: New test.
889 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
891 * include/bits/forward_list.h: Add [[nodiscard]] to functions
892 with no side-effects.
893 * include/bits/stl_bvector.h: Likewise.
894 * include/bits/stl_deque.h: Likewise.
895 * include/bits/stl_list.h: Likewise.
896 * include/bits/stl_queue.h: Likewise.
897 * include/bits/stl_stack.h: Likewise.
898 * include/bits/stl_vector.h: Likewise.
899 * include/debug/deque: Likewise.
900 * include/debug/forward_list: Likewise.
901 * include/debug/list: Likewise.
902 * include/debug/safe_iterator.h: Likewise.
903 * include/debug/vector: Likewise.
904 * include/std/array: Likewise.
905 * testsuite/23_containers/array/creation/3_neg.cc: Use
907 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
909 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
910 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
911 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
912 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
914 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
916 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
917 Adjust dg-error line numbers.
918 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
920 * testsuite/23_containers/deque/debug/invalidation/4.cc:
922 * testsuite/23_containers/deque/types/1.cc: Use
924 * testsuite/23_containers/list/types/1.cc: Cast result to void.
925 * testsuite/23_containers/priority_queue/members/7161.cc:
927 * testsuite/23_containers/queue/members/7157.cc: Likewise.
928 * testsuite/23_containers/vector/59829.cc: Likewise.
929 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
931 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
933 * testsuite/23_containers/vector/types/1.cc: Use
936 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
938 * include/bits/iterator_concepts.h (iter_move): Add
940 * include/bits/range_access.h (begin, end, cbegin, cend)
941 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
942 * include/bits/ranges_base.h (ranges::begin, ranges::end)
943 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
944 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
945 (ranges::empty, ranges::data, ranges::cdata): Likewise.
946 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
947 (back_insert_iterator, front_insert_iterator, insert_iterator)
948 (move_iterator, move_sentinel, common_iterator)
949 (counted_iterator): Likewise.
950 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
952 * include/bits/stream_iterator.h (istream_iterator)
953 (ostream_iterartor): Likewise.
954 * include/bits/streambuf_iterator.h (istreambuf_iterator)
955 (ostreambuf_iterator): Likewise.
956 * include/std/ranges (views::single, views::iota, views::all)
957 (views::filter, views::transform, views::take, views::take_while)
958 (views::drop, views::drop_while, views::join, views::lazy_split)
959 (views::split, views::counted, views::common, views::reverse)
960 (views::elements): Likewise.
961 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
962 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
963 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
965 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
966 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
968 * testsuite/21_strings/basic_string/range_access/char/1.cc:
970 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
972 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
974 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
976 * testsuite/23_containers/array/range_access.cc: Likewise.
977 * testsuite/23_containers/deque/range_access.cc: Likewise.
978 * testsuite/23_containers/forward_list/range_access.cc:
980 * testsuite/23_containers/list/range_access.cc: Likewise.
981 * testsuite/23_containers/map/range_access.cc: Likewise.
982 * testsuite/23_containers/multimap/range_access.cc: Likewise.
983 * testsuite/23_containers/multiset/range_access.cc: Likewise.
984 * testsuite/23_containers/set/range_access.cc: Likewise.
985 * testsuite/23_containers/unordered_map/range_access.cc:
987 * testsuite/23_containers/unordered_multimap/range_access.cc:
989 * testsuite/23_containers/unordered_multiset/range_access.cc:
991 * testsuite/23_containers/unordered_set/range_access.cc:
993 * testsuite/23_containers/vector/range_access.cc: Likewise.
994 * testsuite/24_iterators/customization_points/iter_move.cc:
996 * testsuite/24_iterators/istream_iterator/sentinel.cc:
998 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
1000 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
1001 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
1002 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
1003 * testsuite/24_iterators/range_access/range_access.cc:
1005 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1006 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
1007 * testsuite/28_regex/range_access.cc: Likewise.
1008 * testsuite/experimental/string_view/range_access/char/1.cc:
1010 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
1012 * testsuite/ext/vstring/range_access.cc: Likewise.
1013 * testsuite/std/ranges/adaptors/take.cc: Likewise.
1014 * testsuite/std/ranges/p2259.cc: Likewise.
1016 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1018 * include/bits/random.tcc (linear_congruential_engine): Do not
1019 define static constexpr members when they are implicitly inline.
1020 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
1021 (__ratio_add, __ratio_subtract): Likewise.
1022 * include/std/type_traits (integral_constant): Likewise.
1023 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1026 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1028 * testsuite/util/testsuite_common_types.h: Replace uses of
1029 tr1::unordered_map and tr1::unordered_set with their C++11
1031 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
1032 dg-error line number.
1033 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
1034 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
1036 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
1038 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
1040 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
1042 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
1045 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1047 * include/std/memory_resource (polymorphic_allocator::delete_object):
1048 Call destructor directly instead of using destroy.
1049 (allocator_traits<polymorphic_allocator<T>>): Define partial
1052 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1054 * testsuite/20_util/function_objects/binders/3113.cc: Remove
1055 trailing whitespace.
1056 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1057 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1058 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1060 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1061 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
1063 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1065 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1068 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1070 * doc/xml/manual/evolution.xml: Document deprecation.
1071 * doc/html/*: Regenerate.
1072 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
1073 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
1074 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
1076 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
1077 for C++11 and C++14 changes to std::random_shuffle and
1079 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
1080 use deprecated algorithms.
1081 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
1082 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
1083 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1085 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1088 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1090 * testsuite/23_containers/forward_list/operations/3.cc:
1091 Use lambda instead of std::bind2nd.
1092 * testsuite/20_util/function_objects/binders/3113.cc: Add
1093 options for testing deprecated features.
1094 * testsuite/20_util/pair/cons/99957.cc: Likewise.
1095 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1096 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1097 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1099 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
1100 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
1101 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
1102 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1103 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
1104 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
1105 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
1107 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
1109 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
1112 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1114 * include/bits/regex_executor.h (_State_info): Replace
1115 unique_ptr<bool[]> with array of bool.
1116 * include/bits/regex_executor.tcc: Likewise.
1117 * include/bits/regex_scanner.tcc: Replace std::strchr with
1119 * include/std/regex: Replace standard headers with smaller
1121 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
1122 <string.h> for strlen.
1123 * testsuite/28_regex/traits/char/lookup_collatename.cc:
1126 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1128 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
1129 RAII class template.
1130 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
1131 instead of unique_ptr.
1133 2021-08-02 Patrick Palka <ppalka@redhat.com>
1136 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
1137 Add missing std::move in return statement.
1138 (__partition_copy_fn::operator()): Rename templtae parameter
1139 _O2 to _Out2. Uglify function parameters out_true and out_false.
1140 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
1141 std::move to recursive call that unwraps a __normal_iterator
1143 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
1144 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
1146 2021-08-02 Patrick Palka <ppalka@redhat.com>
1149 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
1150 the const& overload unconstrained and return a const reference
1151 as per LWG 3533. Make unconditionally noexcept.
1152 (elements_view::base): Revert accidental r12-569 change.
1153 (elements_view::_Iterator::base): Make the const& overload
1154 unconstrained and return a const reference as per LWG 3533.
1155 Make unconditionally noexcept.
1157 2021-08-02 Patrick Palka <ppalka@redhat.com>
1160 * include/std/ranges (join_view::_Iterator::_Iterator): Add
1163 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
1166 * src/filesystem/ops-common.h (get_temp_directory_from_env):
1167 Add error_code parameter.
1168 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
1169 argument to get_temp_directory_from_env and check it.
1170 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1172 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
1174 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1175 Add dg-error for c++11_only target.
1177 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
1180 * configure.ac: Check for secure_getenv.
1181 * config.h.in: Regenerate.
1182 * configure: Regenerate.
1183 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
1184 helper function to obtain path from the environment.
1185 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
1186 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1187 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1188 Print messages if test cannot be run.
1189 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1190 Likewise. Fix incorrect condition. Use "TMP" to work with
1191 Windows as well as POSIX.
1193 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
1195 * src/c++17/memory_resource.cc: Use __exchange instead
1198 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1200 * include/experimental/optional (__throw_bad_optional_access):
1201 Replace GNU attribute with C++11 attribute.
1202 (optional::value, optional::value_or): Use if statements
1203 instead of conditional expressions.
1204 * include/std/optional (__throw_bad_optional_access)
1205 (optional::value, optional::value_or): Likewise.
1207 2021-07-27 Marek Polacek <polacek@redhat.com>
1211 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1213 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1216 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1218 * include/bits/cow_string.h: Consistently use tab for
1221 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1223 * include/Makefile.am: Add new header.
1224 * include/Makefile.in: Regenerate.
1225 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1226 (basic_string): Move definition of Copy-on-Write string to
1228 * include/bits/basic_string.tcc: Likewise.
1229 * include/bits/cow_string.h: New file.
1231 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1233 * include/std/algorithm: Do not include <utility>.
1234 * include/std/functional: Likewise.
1235 * include/std/regex: Include <bits/stl_pair.h> instead of
1237 * include/debug/map.h: Likewise.
1238 * include/debug/multimap.h: Likewise.
1239 * include/debug/multiset.h: Likewise.
1240 * include/debug/set.h: Likewise.
1241 * include/debug/vector: Likewise.
1242 * include/bits/fs_path.h: Likewise.
1243 * include/bits/unique_ptr.h: Do not include <utility>.
1244 * include/experimental/any: Likewise.
1245 * include/experimental/executor: Likewise.
1246 * include/experimental/memory: Likewise.
1247 * include/experimental/optional: Likewise.
1248 * include/experimental/socket: Use __exchange instead
1250 * src/filesystem/ops-common.h: Likewise.
1251 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
1252 errors to not use a hardcoded line number.
1253 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
1254 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
1255 Include <utility> for std::as_const.
1256 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
1258 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1260 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
1262 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
1263 Adjust dg-error line number.
1265 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1267 * include/Makefile.am: Add bits/utility.h header.
1268 * include/Makefile.in: Regenerate.
1269 * include/bits/utility.h: New file.
1270 * include/std/utility (tuple_size, tuple_element): Move
1272 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
1274 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
1275 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
1276 * include/bits/ranges_util.h: Include new header instead of
1278 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
1279 partial specializations for std::pair here.
1280 (get): Move overloads for std::pair here.
1281 * include/std/any: Include new header instead of <utility>.
1282 * include/std/array: Likewise.
1283 * include/std/memory_resource: Likewise.
1284 * include/std/optional: Likewise.
1285 * include/std/variant: Likewise.
1286 * include/std/tuple: Likewise.
1287 (__is_tuple_like_impl<tuple<T...>>): Move here.
1288 (get) Declare overloads for std::array.
1289 * include/std/version (__cpp_lib_tuples_by_type): Change type
1291 * testsuite/20_util/optional/84601.cc: Include <utility>.
1292 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
1294 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1295 Adjust dg-error line numbers.
1296 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
1297 * testsuite/std/ranges/access/cend.cc: Likewise.
1298 * testsuite/std/ranges/access/end.cc: Likewise.
1299 * testsuite/std/ranges/single_view.cc: Likewise.
1301 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
1303 * include/std/future: Include <bits/atomic_base.h> instead of
1306 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
1308 * include/bits/stl_relops.h: Update documentation comments.
1310 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1313 * include/bits/hashtable.h (_Hashtable): Replace mixin with
1314 _Enable_default_ctor. Construct it explicitly in all
1315 non-forwarding, non-defaulted constructors.
1316 * testsuite/23_containers/unordered_map/cons/default.cc: Check
1317 non-default constructors can be used.
1318 * testsuite/23_containers/unordered_set/cons/default.cc:
1321 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
1323 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
1325 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1328 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
1329 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
1330 (allocator::allocate, allocator::deallocate): Use new macros.
1332 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1335 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
1336 constructor parameter to reference and use addressof.
1337 * testsuite/util/testsuite_iterators.h: Define deleted operator&
1338 overloads for test iterators.
1340 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1342 * include/bits/std_function.h (_Function_base): Add
1343 default member initializers and define constructor as defaulted.
1344 (function::_M_invoker): Add default member initializer.
1346 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1349 * doc/xml/manual/debug_mode.xml: Update documentation about
1350 debug capability of std::array.
1351 * doc/html/*: Regenerate.
1352 * include/debug/array: New file.
1354 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
1357 * include/ext/rope (sequence_buffer): Add move constructor and
1358 move assignment operator.
1359 * testsuite/ext/rope/101542.cc: New test.
1361 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1364 * src/c++17/fs_ops.cc (fs::create_directories): Use status
1365 instead of symlink_status.
1366 * src/filesystem/ops.cc (fs::create_directories): Likewise.
1367 * testsuite/27_io/filesystem/operations/create_directories.cc:
1368 Check symlink to existing directory.
1369 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
1370 not test with symlinks on Windows.
1371 * testsuite/experimental/filesystem/operations/create_directories.cc:
1372 Check symlink to existing directory.
1373 * testsuite/experimental/filesystem/operations/create_directory.cc:
1374 Do not test with symlinks on Windows.
1376 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1379 * include/bits/hashtable.h (_Hashtable): Conditionally delete
1380 default constructor by deriving from _Enable_special_members.
1381 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
1382 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
1384 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1387 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
1388 * testsuite/27_io/filesystem/operations/create_directory.cc:
1389 Test creating directory with name of existing symlink to
1391 * testsuite/experimental/filesystem/operations/create_directory.cc:
1394 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1396 * include/std/tuple (get<I>): Add deleted overload for bad
1398 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1401 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1403 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
1404 Use __int_traits unconditionally.
1406 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1408 * include/bits/random.h (_Shift::__value): Use constexpr.
1409 (_Select_uint_least_t::type): Use using-declaration.
1411 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1414 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1416 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
1417 instead of diagnostic pragmas.
1418 * include/bits/functional_hash.h: Likewise.
1419 * include/bits/iterator_concepts.h (__is_signed_int128)
1420 (__is_unsigned_int128): Likewise.
1421 * include/bits/max_size_type.h (__max_size_type): Likewise.
1422 (numeric_limits<__max_size_type>): Likewise.
1423 * include/bits/std_abs.h (abs): Likewise.
1424 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
1425 * include/bits/uniform_int_dist.h (uniform_int_distribution):
1427 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
1429 * include/std/type_traits (__is_integral_helper<INT_N>)
1430 (__is_signed_integer, __is_unsigned_integer)
1431 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
1432 * include/std/limits (__INT_N): Add __extension__ keyword.
1433 * include/bits/random.h (_Select_uint_least_t)
1434 (random_device): Likewise.
1436 2021-07-16 Patrick Palka <ppalka@redhat.com>
1439 * include/std/ranges (_CachedPosition::_M_get): For non-forward
1440 ranges, just call __builtin_unreachable.
1441 * testsuite/std/ranges/istream_view.cc (test05): New test.
1443 2021-07-16 Patrick Palka <ppalka@redhat.com>
1446 * include/std/ranges (split_view::split_view): Use std::move.
1447 (split_view::_Iterator::_Iterator): Remove redundant
1448 default_initializable constraint.
1449 (split_view::_Sentinel::_Sentinel): Declare.
1450 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
1452 2021-07-16 Marek Polacek <polacek@redhat.com>
1454 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
1457 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1459 * include/bits/unique_ptr.h: Adjust doxygen markup.
1461 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1464 * include/std/type_traits: Adjust doxygen markup.
1466 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1468 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
1469 uses of non-standard integer types.
1470 * include/bits/functional_hash.h: Likewise.
1471 * include/bits/iterator_concepts.h: Likewise.
1472 * include/bits/max_size_type.h: Likewise.
1473 * include/bits/std_abs.h: Likewise.
1474 * include/bits/stl_algobase.h: Likewise.
1475 * include/bits/uniform_int_dist.h: Likewise.
1476 * include/ext/numeric_traits.h: Likewise.
1477 * include/std/type_traits: Likewise.
1479 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
1482 * include/std/tuple (tuple_element): Improve static_assert text.
1483 (__get_helper): Add deleted overload.
1484 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
1485 __get_helper directly.
1486 (__get_helper2): Remove.
1487 (__find_uniq_type_in_pack): New constexpr helper function.
1488 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
1490 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1492 * testsuite/20_util/tuple/element_access/101427.cc: New test.
1494 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
1497 * include/bits/c++config (__replacement_assert): Add noexcept.
1498 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
1499 instead of __replacement_assert.
1501 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
1503 * include/std/string_view (basic_string_view(It, End)): Add
1505 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
1506 Check noexcept-specifier. Also check construction without CTAD.
1508 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
1511 * include/std/string_view (ends_with): Use traits_type::compare
1514 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
1516 * include/std/string_view: Only include <bits/ranges_base.h>
1517 once, and only for C++20 and later.
1519 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
1522 * include/std/span (as_writable_bytes): Add requires-clause.
1523 * testsuite/23_containers/span/101411.cc: New test.
1525 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
1527 * include/std/mutex (__lock_impl): Check
1528 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
1530 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
1533 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
1534 Remove noexcept-specifier.
1535 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
1536 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
1539 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
1541 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
1542 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
1543 Add some more predefined macros.
1544 * include/bits/fs_fwd.h: Move @addtogroup commands inside
1545 namespaces. Add better documentation.
1546 * include/bits/fs_path.h: Likewise.
1547 * include/experimental/bits/fs_fwd.h: Likewise.
1548 * include/experimental/bits/fs_path.h: Likewise.
1549 * include/ext/throw_allocator.h: Fix typo and improve docs.
1550 * include/std/chrono: Move @addtogroup commands.
1551 * include/std/system_error: Move @addtogroup commands.
1552 * libsupc++/exception: Improve documentation.
1553 * libsupc++/exception.h: Add @since documentation.
1555 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
1558 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
1559 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
1560 (PREDEFINED): Add/fix some more macros that need to be expanded.
1561 * include/bits/random.h: Stop Doxygen from documenting internal
1562 implementation details.
1563 * include/bits/random.tcc: Likewise.
1564 * include/bits/this_thread_sleep.h: Fix @file name.
1565 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
1566 document internal implementation details.
1567 * include/experimental/bits/simd_detail.h: Do not document
1568 internal implementation details.
1569 * include/experimental/simd: Define Doxygen groups.
1570 * include/experimental/type_traits: Improve documentation for
1571 the header file. Define groups. Use @since commands.
1572 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
1573 declaration before undocumented region.
1574 * include/std/type_traits (true_type, false_type): Use using
1575 declaration instead of typedef.
1576 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
1577 (is_nothrow_invocable_r_v): Move definitions next to other C++17
1579 Do not document internal implementation details. Move misplaced
1580 group-end command. Define group for variable templates.
1581 * include/std/variant: Do not document internal implementation
1583 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1586 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
1588 * include/experimental/simd: Do not define anything pre-C++17.
1590 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
1592 * include/bits/random.tcc [__cpp_inline_variables]: Remove
1593 redundant definitions of static constexpr member variables.
1594 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1597 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1599 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
1600 explicit instantiation declarations.
1601 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
1602 explicit instantiation definitions.
1604 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1607 * testsuite/17_intro/names.cc: Fix #if condition for names used
1610 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1613 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
1614 Fail gracefully if element_type is incomplete.
1615 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
1616 the standard doesn't require this test to work for array types.
1617 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
1618 types can be used with array specialization.
1619 * testsuite/20_util/unique_ptr/101236.cc: New test.
1621 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1623 * doc/xml/manual/intro.xml: Document LWG 415 change.
1624 * doc/html/manual/bugs.html: Regenerate.
1625 * include/bits/istream.tcc (ws): Create sentry and catch
1627 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
1628 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
1630 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1632 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
1633 directly instead of using _M_write. Do setstate(__err) all
1634 outside the try-catch block.
1635 * include/std/ostream (basic_ostream::_M_write): Declare
1636 private. Use __ostream_insert. Do not define for the versioned
1639 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1641 * doc/xml/manual/intro.xml: Document LWG 581 change.
1642 * doc/html/manual/bugs.html: Regenerate.
1643 * include/bits/basic_ios.tcc: Whitespace.
1644 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
1646 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
1648 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
1650 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
1651 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
1654 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1656 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
1657 is set, not if eofbit is set.
1658 (tellp, seekp, seekp): Create sentry object. Do not set badbit
1660 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
1661 Adjust expected behaviour.
1662 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
1664 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
1666 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
1668 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
1669 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
1670 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
1671 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
1673 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1675 * include/std/syncstream (basic_syncbuf::swap()): Remove
1676 noexcept, as per LWG 3498.
1678 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1681 * testsuite/17_intro/names.cc: Undef more names for newlib and
1682 also for arm-none-linux-gnueabi.
1683 * testsuite/experimental/names.cc: Disable PCH.
1685 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
1687 * include/experimental/bits/simd.h (__bit_cast): Implement via
1688 __builtin_bit_cast #if available.
1689 (__proposed::simd_bit_cast): Add overloads for simd and
1690 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
1691 available), which return an object of the requested type with
1692 the same bits as the argument.
1693 * include/experimental/bits/simd_math.h: Use simd_bit_cast
1694 instead of __bit_cast to allow casts to fixed_size_simd.
1695 (copysign): Remove branch that was only required if __bit_cast
1696 cannot be constexpr.
1697 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
1698 from __bit_cast to __proposed::simd_bit_cast since the former
1699 will not cast fixed_size objects anymore.
1701 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1703 * include/experimental/bits/simd_math.h
1704 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
1705 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
1708 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1710 * include/experimental/bits/simd.h (__execute_on_index_sequence)
1711 (__execute_on_index_sequence_with_return)
1712 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
1715 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1717 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
1718 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
1721 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1723 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
1724 implementation doesn't require a _VecBltnBtmsk ABI tag, it
1725 requires either a 64-Byte input (in which case AVX512F must be
1726 available) or AVX512VL.
1728 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1730 * include/experimental/bits/simd_math.h: Undefine internal
1732 (frexp): Move #if to a more sensible position and reformat
1734 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
1735 duplicating the code here.
1736 (modf): Simplify condition.
1738 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1740 * include/experimental/bits/simd_math.h (fabs): Remove
1741 fabs(simd<integral>) overload.
1743 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1745 * include/experimental/bits/simd_converter.h
1746 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
1747 * include/experimental/bits/simd_fixed_size.h
1748 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
1749 arguments by const-ref.
1750 (_S_masked_unary): Pass _SimdTuple by const-ref.
1752 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1754 * include/experimental/bits/simd_fixed_size.h
1755 (_AbisInSimdTuple): Removed.
1757 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1759 * include/experimental/bits/simd.h: Add missing operator~
1760 overload for simd<floating-point> to __float_bitwise_operators.
1761 * include/experimental/bits/simd_builtin.h
1762 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
1763 implement complement for floating-point vectors.
1764 * include/experimental/bits/simd_fixed_size.h
1765 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
1766 copysign implementation of _SimdTuple members.
1767 * include/experimental/bits/simd_math.h (copysign): Call
1768 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
1769 generic copysign implementation using the new ~ operator.
1771 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
1773 * testsuite/experimental/simd/README.md: Fix typos.
1775 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
1777 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
1779 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
1780 conditional noexcept as per LWG 2762.
1781 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
1782 dereferencing cannot throw.
1783 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
1784 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
1785 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
1787 2021-06-23 Patrick Palka <ppalka@redhat.com>
1790 * testsuite/23_containers/multiset/cons/deduction.cc:
1791 Uncomment CTAD example that was rejected by this bug.
1792 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1794 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
1796 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
1799 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1801 * testsuite/experimental/simd/README.md: New file.
1803 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1805 * testsuite/experimental/simd/driver.sh: Rewrite output
1806 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
1807 to be used twice. Add -x and -o short options. Parse long
1808 options with = instead of separating space generically. Parce
1809 contracted short options. Make unrecognized options an error.
1810 If same-line output is active, trap on EXIT to increment the
1811 progress (only with --percentage), erase the line and print the
1813 * testsuite/experimental/simd/generate_makefile.sh: Initialize
1814 helper files for progress account keeping. Update help target
1815 for changes to DRIVEROPTS.
1817 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1819 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
1820 and associated warning.
1821 * testsuite/Makefile.in: Regenerate.
1823 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
1824 Jonathan Wakely <jwakely@redhat.com>
1825 Ulrich Drepper <drepper@redhat.com>
1827 * include/std/chrono (chrono::year::is_leap()): Optimize.
1829 2021-06-23 Patrick Palka <ppalka@redhat.com>
1832 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
1834 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1835 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1836 Mention one of the replaced examples is broken due to PR101174.
1837 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1838 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
1839 ambiguous CTAD examples.
1840 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1842 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1844 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
1846 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
1848 * include/std/mutex (__detail::__try_lock_impl): Rename
1849 parameter to avoid clashing with newlib's __lockable macro.
1850 (try_lock): Add 'inline' specifier.
1851 * testsuite/17_intro/names.cc: Add check for __lockable.
1852 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
1854 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1855 Matthias Kretz <m.kretz@gsi.de>
1857 * include/std/mutex (lock): Replace recursion with iteration
1858 when lockables all have the same type.
1859 (__detail::__try_lock_impl): Likewise. Pass lockables as
1860 parameters, instead of a tuple. Always lock the first one, and
1861 recurse for the rest.
1862 (__detail::__lock_impl): Adjust call to __try_lock_impl.
1863 (__detail::__try_to_lock): Remove.
1864 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
1865 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
1867 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
1869 * testsuite/30_threads/try_lock/5.cc: New test.
1871 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1873 * include/std/memory (declare_reachable, undeclare_reachable)
1874 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
1875 (pointer_safety): Only define for C++11 to C++20 inclusive.
1876 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
1878 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1880 * include/bits/random.h (seed_seq): Constrain initializer-list
1882 * include/bits/random.tcc (seed_seq): Add template parameter.
1883 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
1885 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
1888 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
1891 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
1892 Force _M_release() to wake all waiting threads.
1893 * testsuite/30_threads/semaphore/100806.cc: New test.
1895 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
1897 * include/std/mutex (__try_to_lock): Move to __detail namespace.
1898 (struct __try_lock_impl): Replace with ...
1899 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
1900 function templates to implement std::try_lock.
1901 (try_lock): Use new __try_lock_impl.
1902 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
1903 template to implement std::lock.
1904 (lock): Use __lock_impl.
1906 2021-06-21 Patrick Palka <ppalka@redhat.com>
1908 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1910 2021-06-20 Patrick Palka <ppalka@redhat.com>
1912 * include/std/ranges (__non_propagating_cache::operator bool):
1913 Define for split_view::begin().
1914 (split_view): Define as per P2210.
1915 (views::__detail::__can_split_view): Define.
1916 (views::_Split, views::split): Define.
1917 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
1919 * testsuite/std/ranges/adaptors/split.cc: New test.
1920 * testsuite/std/ranges/p2325.cc (test08a): New test.
1921 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
1923 2021-06-20 Patrick Palka <ppalka@redhat.com>
1925 * include/std/ranges: Rename views::split to views::lazy_split,
1926 split_view to lazy_split_view, etc. throughout.
1927 * testsuite/std/ranges/*: Likewise.
1928 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
1929 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
1931 2021-06-20 Patrick Palka <ppalka@redhat.com>
1933 * include/std/ranges (split_view::_OuterIter::__at_end):
1934 Check _M_trailing_empty.
1935 (split_view::_OuterIter::_M_trailing_empty): Define this
1937 (split_view::_OuterIter::operator++): Set _M_trailing_empty
1939 (split_view::_OuterIter::operator==): Compare
1941 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
1942 split parts instead of one.
1943 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
1945 2021-06-20 Patrick Palka <ppalka@redhat.com>
1947 * include/std/ranges (split_view::_InnerIter::base): Define as
1950 2021-06-19 Patrick Palka <ppalka@redhat.com>
1952 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
1953 Consider _Base instead of _Vp as per LWG 3555.
1954 (elements_view::_Iterator::_S_iter_concept): Likewise.
1956 2021-06-19 Patrick Palka <ppalka@redhat.com>
1958 * include/std/ranges (split_view::_OuterIter::value_type::begin):
1959 Remove the non-const overload, and remove the copyable constraint
1960 on the const overload as per LWG 3553.
1962 2021-06-19 Patrick Palka <ppalka@redhat.com>
1964 * include/bits/stl_iterator.h
1965 (__detail::__common_iter_use_postfix_proxy): Add
1966 move_constructible constraint as per LWG 3546.
1967 (common_iterator::__postfix_proxy): Adjust initializer of
1968 _M_keep as per LWG 3546.
1970 2021-06-18 Patrick Palka <ppalka@redhat.com>
1973 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
1974 to limit comparison complexity to 3*N/2.
1975 (__minmax_element_fn::operator()): Likewise.
1976 (shift_right): Avoid premature std::move of __result.
1977 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
1979 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
1982 2021-06-18 Patrick Palka <ppalka@redhat.com>
1984 * include/std/concepts (convertible_to): Just use declval as per
1987 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
1990 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
1991 incorrect static_assert with ones matching the 'Mandates'
1992 conditions in the standard.
1993 * testsuite/26_numerics/reduce/95833.cc: New test.
1995 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
1997 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
1998 diagnostic pragma to suppress -Wstringop-overread error.
2000 2021-06-18 Patrick Palka <ppalka@redhat.com>
2002 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
2003 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
2004 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
2005 * include/bits/ranges_util.h: ... here.
2006 * include/std/ranges (__detail::find, __detail::find_if)
2007 (__detail::find_if_not, __detail::mismatch): Remove.
2008 (filter_view): Use ranges::find_if instead.
2009 (drop_while_view): Use ranges::find_if_not instead.
2010 (split_view): Use ranges::find and ranges::mismatch instead.
2012 2021-06-18 Patrick Palka <ppalka@redhat.com>
2014 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
2015 default_initializable requirement.
2016 * include/bits/ranges_base.h (ranges::view): Likewise.
2017 * include/bits/ranges_util.h (subrange): Constrain the default
2019 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
2021 (front_insert_iterator): Likewise.
2022 (insert_iterator): Likewise. Remove NSDMIs.
2023 (common_iterator): Constrain the default ctor.
2024 (counted_iterator): Likewise.
2025 * include/bits/stream_iterator.h (ostream_iterator): Remove the
2027 * include/std/ranges (__detail::__box::operator=): Handle
2028 self-assignment in the primary template.
2029 (__detail::__box): In the partial specialization: adjust
2030 constraints as per P2325. Add specialized operator= for the
2031 case when the wrapped type is not copyable. Constrain the
2032 default ctor. Avoid list-initialization.
2033 (single_view): Constraint the default ctor.
2034 (iota_view): Relax semiregular constraint to copyable.
2035 Constrain the default ctor.
2036 (iota_view::_Iterator): Constraint the default ctor.
2037 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
2038 Remove redundant checks for empty _M_stream.
2039 (basic_istream_view::_Iterator): Likewise.
2040 (ref_view): Remove the default ctor. Remove NSDMIs.
2041 (ref_view::_Iterator): Constrain the default ctor.
2042 (__detail::__non_propagating_cache::operator=): Define overload
2043 for assigning from a value of the underlying type.
2044 (filter_view): Likewise.
2045 (filter_view::_Iterator): Likewise.
2046 (transform_view): Likewise.
2047 (transform_view::_Iterator): Likewise.
2048 (take_view): Likewise.
2049 (take_view::_Iterator): Likewise.
2050 (take_while_view): Likewise.
2051 (take_while_view::_Iterator): Likewise.
2052 (drop_while_view): Likewise.
2053 (drop_while_view::_Iterator): Likewise.
2054 (join_view): Likewise.
2055 (split_view::_OuterIter::__current): Adjust after changing the
2057 (split_view::_M_current): Wrap it in a __non_propagating_cache.
2058 (split_view::split_view): Constrain the default ctor.
2059 (common_view): Constrain the default ctor.
2060 (reverse_view): Likewise.
2061 (elements_view): Likewise.
2062 * include/std/span (enable_view<span<_ElementType, _Extent>>):
2063 Define this partial specialization to true unconditionally.
2064 * include/std/version (__cpp_lib_ranges): Adjust value.
2065 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
2066 Don't attempt to default construct a back_insert_iterator.
2067 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
2068 Don't attempt to default construct a front_insert_iterator.
2069 * testsuite/24_iterators/insert_iterator/constexpr.cc:
2070 Don't attempt to default construct an insert_iterator.
2071 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
2072 Remove this test for default constructibility of ostream_iterator.
2073 * testsuite/std/ranges/97600.cc: Don't attempt to default
2074 construct a basic_istream_view.
2075 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
2077 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
2078 (test02): Adjust now that __box is copyable-box not
2081 * testsuite/std/ranges/p2325.cc: New test.
2082 * testsuite/std/ranges/single_view.cc (test06): New test.
2083 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
2084 require default_initializable.
2086 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
2089 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
2090 define when is_constant_evaluated is available.
2091 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
2093 (__constant_string_p, __constant_array_p): Remove.
2094 (char_traits): Use is_constant_evaluated directly.
2095 * include/std/version (__cpp_lib_constexpr_char_traits)
2096 (__cpp_lib_constexpr_string): Only define when
2097 is_constant_evaluated is available.
2099 2021-06-17 Patrick Palka <ppalka@redhat.com>
2102 * include/std/ranges (__adaptor::_Partial): For the "simple"
2103 forwarding partial specializations, also require that
2104 the extra arguments are trivially copyable.
2105 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
2107 2021-06-17 Patrick Palka <ppalka@redhat.com>
2110 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
2111 template form of _S_has_simple_extra_args.
2112 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
2113 parameter pack. Try to treat _S_has_simple_extra_args as a
2114 variable template parameterized by _Args.
2115 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
2116 __adaptor_has_simple_extra_args.
2117 (views::_Take::_S_has_simple_extra_args): Templatize according
2118 to the type of the extra argument.
2119 (views::_Drop::_S_has_simple_extra_args): Likewise.
2120 (views::_Split::_S_has_simple_extra_args): Define.
2121 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
2122 Adjust after changes to _S_has_simple_extra_args mechanism.
2125 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
2127 * include/bits/iterator_concepts.h (__decay_copy): Name type.
2129 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
2131 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2132 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2133 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2134 (ranges::empty, ranges::data, ranges::cdata): Remove final
2135 keywords and deleted operator& overloads.
2136 * testsuite/24_iterators/customization_points/iter_move.cc: Use
2137 new is_customization_point_object function.
2138 * testsuite/24_iterators/customization_points/iter_swap.cc:
2140 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
2142 * testsuite/std/ranges/access/begin.cc: Likewise.
2143 * testsuite/std/ranges/access/cbegin.cc: Likewise.
2144 * testsuite/std/ranges/access/cdata.cc: Likewise.
2145 * testsuite/std/ranges/access/cend.cc: Likewise.
2146 * testsuite/std/ranges/access/crbegin.cc: Likewise.
2147 * testsuite/std/ranges/access/crend.cc: Likewise.
2148 * testsuite/std/ranges/access/data.cc: Likewise.
2149 * testsuite/std/ranges/access/empty.cc: Likewise.
2150 * testsuite/std/ranges/access/end.cc: Likewise.
2151 * testsuite/std/ranges/access/rbegin.cc: Likewise.
2152 * testsuite/std/ranges/access/rend.cc: Likewise.
2153 * testsuite/std/ranges/access/size.cc: Likewise.
2154 * testsuite/std/ranges/access/ssize.cc: Likewise.
2155 * testsuite/util/testsuite_iterators.h
2156 (is_customization_point_object): New function.
2158 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2160 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2161 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2162 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2163 (ranges::empty, ranges::data, ranges::cdata): Make types final.
2164 Add deleted operator& overloads.
2165 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
2167 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
2168 ill-formed & expressions with using-declarations. Add checks for
2169 other function objects.
2171 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2173 * include/bits/ranges_util.h (view_interface): Add noexcept to
2174 empty, operator bool, data and size members.
2175 (subrange): Add noexcept to constructors.
2176 * include/std/ranges (single_view, ref_view): Add noexcept to
2178 (views::single, views::all): Add noexcept.
2179 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
2180 * testsuite/std/ranges/single_view.cc: Likewise.
2182 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2184 * include/bits/ranges_util.h (subrange): Add __size_type typedef
2185 and use it to simplify declarations.
2186 (subrange(i, s, n)): Remove assertion.
2187 * testsuite/std/ranges/subrange/constexpr.cc: New test.
2189 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2191 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
2192 Replace with function object.
2193 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
2194 __decay_copy unqualified.
2195 * include/bits/ranges_base.h (__member_end, __adl_end):
2196 Likewise. Use __range_iter_t for type of ranges::begin.
2197 (__member_rend): Use correct value category for rbegin argument.
2198 (__member_data): Use __decay_copy unqualified.
2199 (__begin_data): Use __range_iter_t for type of ranges::begin.
2201 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2203 * include/bits/ranges_base.h (ranges::empty): Check whether
2204 conversion to bool can throw.
2205 * testsuite/std/ranges/access/empty.cc: Check for correct
2208 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2211 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
2212 use the type if it's a reference.
2213 * testsuite/20_util/common_reference/100894.cc: New test.
2215 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2217 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2218 Add dg-require-filesystem-ts directive.
2220 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2223 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
2224 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
2226 * testsuite/20_util/any/cons/101034.cc: New test.
2228 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2230 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
2231 -std=gnu++17 option.
2233 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2236 * libsupc++/compare (compare_partial_order_fallback): Add
2237 constraint using reversed parameter order, as per LWG 3465.
2238 * testsuite/18_support/comparisons/algorithms/fallback.cc:
2239 Adjust expected result.
2241 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2243 * libsupc++/compare (__decayed_same_as): New helper concept.
2244 (strong_order, weak_order, partial_order): Constrain with new
2245 concept instead of using static_assert.
2246 (compare_strong_order_fallback, compare_weak_order_fallback)
2247 (compare_partial_order_fallback): Likewise. Do not deduce return
2248 types. Remove redundant if-constexpr checks.
2249 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
2251 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2254 * include/std/tuple: Use reserved form of attribute name.
2255 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
2256 check for no_unique_address.
2257 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
2259 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
2262 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
2264 * include/bits/fs_path.h (operator==, operator<=>): Use new
2265 _S_compare function.
2266 (path::_S_compare): New function to call path::compare in a
2267 context where path::iterator is complete.
2268 * include/experimental/bits/fs_path.h (operator<, operator==):
2269 Define after path::iterator is complete.
2270 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
2272 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2275 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
2277 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
2278 test logic with constexpr check for is_always_lock_free.
2280 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
2283 * include/std/optional (optional::operator=(const optional<U>&)):
2284 Fix value category used in is_assignable check.
2285 * testsuite/20_util/optional/assignment/100982.cc: New test.
2287 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
2289 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
2290 * include/bits/iterator_concepts.h (indirectly_readable_traits):
2291 Add LWG issue number to comment.
2292 * include/std/memory_resource (polymorphic_allocator::release):
2294 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
2295 dg-warning for deprecation. Also check std::allocator<void>.
2297 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
2300 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
2301 Change parameter type from _Tp to _Tp*.
2302 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
2303 coverage of types tested.
2305 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
2307 * include/std/barrier (__tree_barrier::_M_arrive): Remove
2308 unnecessary hasher instantiation.
2310 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
2312 * include/experimental/propagate_const (swap): Constrain.
2313 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
2315 2021-06-07 Avi Kivity <avi@scylladb.com>
2318 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
2319 Add missing typename.
2321 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
2324 * include/std/optional (operator<=>(const optional<T>& const U&)):
2325 Add missing constraint and add workaround for template
2327 * testsuite/20_util/optional/relops/three_way.cc: Check that
2328 type without equality comparison cannot be compared when wrapped
2331 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
2334 * include/bits/ranges_base.h (_SSize): Return signed type.
2335 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
2337 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2339 * include/bits/ranges_base.h (_SSize): Return the result of
2340 ranges::size converted to the wider of make-signed-like-t<S> and
2341 ptrdiff_t, rather than the ranges different type.
2342 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
2343 for an iota_view that uses an integer class type for its
2346 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2349 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
2350 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
2352 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2355 * include/bits/iterator_concepts.h (__detail::__decay_copy)
2356 (__detail::__member_begin, __detail::__adl_begin): Move to
2357 namespace ranges::__cust_access.
2358 (__detail::__ranges_begin): Likewise, and rename to __begin.
2359 Remove redundant static assertion.
2360 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
2361 Use lvalue in noexcept specifier.
2362 (__as_const): Add non-deduced parameter for value category.
2363 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
2365 (__member_size, __adl_size, __member_empty, __size0_empty):
2366 (__eq_iter_empty, __adl_data): Use lvalue objects in
2368 (__sentinel_size): Likewise. Add check for conversion to
2370 (__member_data): Allow non-lvalue types to satisfy the concept,
2371 but use lvalue object in requirements.
2372 (_Size, _SSize): Remove forwarding to always use an lvalue.
2373 (_Data): Likewise. Add static assertion for arrays.
2374 * testsuite/std/ranges/access/cdata.cc: Adjust expected
2375 behaviour for rvalues. Add negative tests for ill-formed
2377 * testsuite/std/ranges/access/data.cc: Likewise.
2378 * testsuite/std/ranges/access/empty.cc: Adjust expected
2379 behaviour for rvalues.
2380 * testsuite/std/ranges/access/size.cc: Likewise.
2382 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
2384 * include/std/any (any::_Manager::_S_access): New static
2385 function to access the contained value.
2386 (any::emplace, __any_caster): Use _S_access member of the
2389 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2391 * doc/xml/manual/status_cxx2020.xml:
2392 * doc/html/*: Regenerate.
2393 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
2395 * include/std/version (__cpp_lib_generic_unordered_lookup):
2397 * testsuite/23_containers/unordered_map/operations/1.cc: Check
2399 * testsuite/23_containers/unordered_set/operations/1.cc:
2402 2021-06-03 Patrick Palka <ppalka@redhat.com>
2404 * include/bits/ranges_algo.h (__detail::__can_reread_output):
2405 Factor out this concept from ...
2406 (__unique_copy_fn::operator()): ... here. Use the concept
2408 * testsuite/std/ranges/range.cc: Remove now ill-formed use
2409 of range_value_t on an output_range.
2410 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2411 Define value_type, pointer and reference member types to void.
2413 2021-06-03 Patrick Palka <ppalka@redhat.com>
2416 * include/std/ranges (_RangeAdaptorClosure): Document
2417 _S_has_simple_call_op mechanism.
2418 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
2419 (__closure_has_simple_call_op): New concept.
2420 (__adaptor_has_simple_extra_args): Likewise.
2421 (_Partial<_Adaptor, _Args...>): New partial specialization.
2422 (_Partial<_Adaptor, _Arg>): Likewise.
2423 (_Pipe<_Lhs, _Rhs>): Likewise.
2424 (views::_All::_S_has_simple_call_op): Define to true.
2425 (views::_Filter::_S_has_simple_extra_args): Likewise.
2426 (views::_Transform::_S_has_simple_extra_args): Likewise.
2427 (views::_Take::_S_has_simple_extra_args): Likewise.
2428 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
2429 (views::_Drop::_S_has_simple_extra_args): Likewise.
2430 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
2431 (views::_Join::_S_has_simple_call_op): Likewise.
2432 (views::_Split): Document why we don't define
2433 _S_has_simple_extra_args to true for this adaptor.
2434 (views::_Common::_S_has_simple_call_op): Define to true.
2435 (views::_Reverse::_S_has_simple_call_op): Likewise.
2436 (views::_Elements::_S_has_simple_call_op): Likewise.
2437 * testsuite/std/ranges/adaptors/100577.cc: New test.
2439 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2443 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
2444 Value-initialize subobject.
2445 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
2447 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
2450 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2453 * testsuite/23_containers/unordered_map/96088.cc: Adjust
2454 expected number of allocations.
2455 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2457 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2459 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
2460 * doc/xml/manual/status_cxxtr1.xml: Likewise.
2461 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
2462 * doc/html/*: Regenerate.
2464 2021-06-01 Patrick Palka <ppalka@redhat.com>
2467 * testsuite/23_containers/deque/allocator/default_init.cc,
2468 testsuite/23_containers/forward_list/allocator/default_init.cc,
2469 testsuite/23_containers/list/allocator/default_init.cc,
2470 testsuite/23_containers/map/allocator/default_init.cc,
2471 testsuite/23_containers/set/allocator/default_init.cc,
2472 testsuite/23_containers/vector/allocator/default_init.cc,
2473 testsuite/23_containers/vector/bool/allocator/default_init.cc:
2476 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2478 * testsuite/23_containers/unordered_map/96088.cc: Change
2479 effective target to c++17.
2480 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2482 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2484 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
2485 isblank for C++11 and later.
2487 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2490 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
2491 Fix return value for no-op case.
2492 * testsuite/24_iterators/range_operations/advance.cc: Test
2493 return values of three-argument overload.
2495 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2498 * python/Makefile.am: Use archive name for printer hook if no
2499 dynamic library name is available.
2500 * python/Makefile.in: Regenerate.
2502 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
2504 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
2505 Compilers for Linux: Compatibility with GNU Compilers" article.
2506 * doc/html/manual/abi.html: Regenerate.
2508 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
2510 * include/debug/formatter.h
2511 (_Error_formatter::_Parameter::_Named): New.
2512 (_Error_formatter::_Parameter::_Type): Inherit latter.
2513 (_Error_formatter::_Parameter::_M_integer): Likewise.
2514 (_Error_formatter::_Parameter::_M_string): Likewise.
2515 * src/c++11/debug.cc: Include <cstring>.
2516 (_Print_func_t): New.
2517 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
2518 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
2519 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
2520 (print_type): Rename in...
2521 (print_type_info): ...this. Use pretty_print.
2522 (print_address, print_integer): New.
2523 (print_named_name, print_iterator_constness, print_iterator_state): New.
2524 (print_iterator_seq_type): New.
2525 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
2526 (print_field): Use latters.
2527 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
2528 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
2529 Change signature to...
2530 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
2531 ...this and adapt. Remove intermediate buffer to render input string.
2532 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
2534 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
2537 * include/bits/ranges_base.h (advance, distance, next, prev):
2538 Replace function templates with function objects.
2539 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
2540 Adjust for changes to function objects.
2541 * testsuite/std/ranges/adaptors/elements.cc: Add using
2542 declarations for names from namespace ranges.
2543 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
2544 * testsuite/24_iterators/range_operations/100768.cc: New test.
2546 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
2549 * include/bits/hashtable_policy.h (_Select2nd): New.
2550 (_NodeBuilder<>): New.
2551 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
2552 (_AllocNode<>::operator()): Likewise.
2553 * include/bits/hashtable.h
2554 (_Hashtable<>::__node_builder_t): New.
2555 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
2557 (_Hashtable<>::_S_forward_key): New.
2558 (_Hashtable<>::_M_insert): Use latter.
2559 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
2560 Instantiate node first, compute hash code second.
2561 * testsuite/23_containers/unordered_map/96088.cc: New test.
2562 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
2563 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
2564 * testsuite/23_containers/unordered_set/96088.cc: New test.
2565 * testsuite/util/replacement_memory_operators.h
2566 (counter::_M_increment): New.
2567 (counter::_M_decrement): New.
2568 (counter::reset()): New.
2570 2021-05-24 Patrick Palka <ppalka@redhat.com>
2573 * include/std/ranges (__detail::__non_propagating_cache): Move
2574 definition up to before that of _CachedPosition. Make base
2575 class _Optional_base protected instead of private. Add const
2576 overload for operator*.
2577 (__detail::_CachedPosition): Rewrite the partial specialization
2578 for forward ranges as a derived class of __non_propagating_cache.
2579 Remove the size constraint on the partial specialization for
2580 random access ranges. Add copy/move/copy-assignment/move-assignment
2581 members to the offset partial specialization for random
2582 access ranges that propagate the cached value but additionally
2583 invalidate it in the source object on move.
2584 * testsuite/std/ranges/adaptors/100479.cc: New test.
2586 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
2588 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
2589 call to ranges::next.
2590 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
2591 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
2593 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
2596 2021-05-21 Patrick Palka <ppalka@redhat.com>
2599 * include/std/ranges (drop_while_view::begin): Assert the
2600 precondition added by LWG 3490.
2602 2021-05-21 Patrick Palka <ppalka@redhat.com>
2605 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
2606 Split out this member function from ...
2607 (iota_view::_Sentinel::operator-): ... here, for sake of access
2609 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
2611 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
2613 * include/bits/random.tcc (__representable_as_double)
2614 (__p1_representable_as_double): Add "" to static asserts.
2616 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
2619 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
2620 (__glibcxx_constexpr_assert): ... this.
2621 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
2622 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
2623 or __glibcxx_assert_impl.
2624 (__glibcxx_assert_2): Remove
2625 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
2626 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
2627 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
2628 Adjust expected error.
2629 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
2631 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
2634 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
2636 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
2638 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
2640 * testsuite/23_containers/span/back_neg.cc: Likewise.
2641 * testsuite/23_containers/span/front_neg.cc: Likewise.
2642 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
2644 2021-05-20 Patrick Palka <ppalka@redhat.com>
2647 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
2648 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
2649 (reverse_iterator::reference): Likewise, but with iter_reference_t.
2650 (reverse_iterator::value_type): Likewise, but with iter_value_t.
2651 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
2652 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
2654 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
2657 * include/std/charconv (to_chars): Hide the overloads for
2658 floating-point types for 16 bit targets.
2659 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
2660 * testsuite/20_util/to_chars/double.cc: Run this test only on
2662 * testsuite/20_util/to_chars/float.cc: Likewise.
2663 * testsuite/20_util/to_chars/long_double.cc: Likewise.
2665 2021-05-18 Patrick Palka <ppalka@redhat.com>
2668 * include/std/ranges (elements_view::_Sentinel::operator-): Use
2669 _M_distance_from in the other operator- overload too.
2670 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
2672 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
2674 * testsuite/lib/prune.exp: Add note about 'dg-note'.
2676 2021-05-18 Patrick Palka <ppalka@redhat.com>
2679 * include/std/ranges (__box::__box): Use non-list-initialization
2680 in member initializer list of in-place constructor of the
2681 partial specialization for semiregular types.
2682 (__box::operator->): Use std::__addressof.
2683 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
2685 * testsuite/std/ranges/single_view.cc (test04): New test.
2687 2021-05-18 Patrick Palka <ppalka@redhat.com>
2690 * include/std/ranges (reverse_view::_S_needs_cached_begin):
2691 Set to true if the underlying non-common random-access range
2692 doesn't have a sized sentinel.
2694 2021-05-18 Patrick Palka <ppalka@redhat.com>
2697 * include/std/ranges (elements_view::_Iterator): Also befriend
2699 (elements_view::_Sentinel::_M_equal): Templatize.
2700 (elements_view::_Sentinel::_M_distance_from): Split out from ...
2701 (elements_view::_Sentinel::operator-): ... here. Depend on
2702 _Base2 instead of _Base in the return type.
2703 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
2706 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
2708 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
2709 until value change observed.
2710 (__waiter_base::_M_laundered): New member.
2711 (__waiter_base::_M_notify): Check _M_laundered to determine
2712 whether to wake one or all.
2713 (__detail::__atomic_compare): Return true if call to
2714 __builtin_memcmp() == 0.
2715 (__waiter_base::_S_do_spin_v): Adjust predicate.
2716 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
2719 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
2722 * include/experimental/bits/fs_path.h (__is_constructible_from):
2723 Test construction from a const lvalue, not an rvalue.
2724 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
2725 * testsuite/experimental/filesystem/path/construct/100630.cc:
2728 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
2731 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
2732 Declare (but do not define) partial specialization.
2733 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
2735 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
2737 * include/std/thread (jthread::_S_create): Fix static assert
2739 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
2740 * testsuite/30_threads/jthread/jthread.cc: Do not require
2741 pthread effective target.
2742 * testsuite/30_threads/jthread/2.cc: Moved to...
2743 * testsuite/30_threads/jthread/version.cc: ...here.
2745 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
2747 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
2748 * doc/Makefile.in: Regenerate.
2749 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
2751 * scripts/run_doxygen (print_usage): Always print to stdout and
2753 (fail): New function for exiting on error.
2754 (parse_options): Handle --latex_cmd. Do not treat --help the
2755 same as errors. Simplify handling of required arguments.
2757 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
2759 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
2760 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
2761 warnings. Replace bitwise AND with logical AND in loop
2763 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
2764 Replace bitwise AND with logical AND in loop condition.
2765 * testsuite/util/pstl/test_utils.h: Remove unused parameter
2768 2021-05-11 Patrick Palka <ppalka@redhat.com>
2770 * src/c++17/ryu/LOCAL_PATCHES: Update.
2771 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
2772 Remove declarations for never-defined functions.
2773 * testsuite/20_util/to_chars/4.cc: New test.
2775 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
2777 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
2778 alternative for macro.
2779 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
2781 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
2784 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
2786 * include/bits/allocator.h (allocator<void>) [C++20]: Add
2787 missing noexcept to constructor. Restore missing POCMA and
2788 is_always_equal_traits.
2789 [C++17]: Make construct and destroy members private and
2790 declare allocator_traits as a friend.
2791 * include/bits/memoryfwd.h (allocator_traits): Declare.
2792 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
2793 Add nodiscard attribute. Add static assertion for LWG 3307.
2794 * include/ext/new_allocator.h (new_allocator::allocate): Add
2795 static assertion for LWG 3307.
2796 * testsuite/20_util/allocator/void.cc: Check that converting
2797 constructor is noexcept. Check for propagation traits and
2798 size_type and difference_type. Check that pointer and
2799 const_pointer are gone in C++20.
2801 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2803 * include/std/stop_token: Remove TODO comment.
2805 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2807 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
2808 Initialize a non-reference deleter from an rvalue, as per LWG
2810 (__shared_ptr::_UniqCompatible): Add missing constraint.
2811 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
2812 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
2815 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2817 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
2818 -std=gnu++17 from dg-options directive.
2819 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
2821 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
2823 * testsuite/17_intro/headers/c++2017/operator_names.cc:
2825 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
2826 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
2827 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
2829 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
2830 * testsuite/18_support/byte/81076.cc: Likewise.
2831 * testsuite/18_support/byte/global_neg.cc: Likewise.
2832 * testsuite/18_support/byte/ops.cc: Likewise.
2833 * testsuite/18_support/byte/requirements.cc: Likewise.
2834 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
2835 * testsuite/18_support/launder/1.cc: Likewise.
2836 * testsuite/18_support/launder/nodiscard.cc: Likewise.
2837 * testsuite/18_support/launder/requirements.cc: Likewise.
2838 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
2839 * testsuite/18_support/new_aligned.cc: Likewise.
2840 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
2842 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
2844 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
2845 * testsuite/20_util/addressof/requirements/constexpr.cc:
2847 * testsuite/20_util/as_const/1.cc: Likewise.
2848 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
2849 * testsuite/20_util/bind/83427.cc: Likewise.
2850 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2851 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
2852 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
2854 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2856 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
2857 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
2859 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
2860 * testsuite/20_util/from_chars/requirements.cc: Likewise.
2861 * testsuite/20_util/function/91456.cc: Likewise.
2862 * testsuite/20_util/function/cons/deduction.cc: Likewise.
2863 * testsuite/20_util/function_objects/83607.cc: Likewise.
2864 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
2865 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
2866 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
2867 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
2868 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
2870 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
2872 * testsuite/20_util/has_unique_object_representations/value.cc:
2874 * testsuite/20_util/hash/nullptr.cc: Likewise.
2875 * testsuite/20_util/in_place/requirements.cc: Likewise.
2876 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
2877 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2879 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
2881 * testsuite/20_util/is_aggregate/value.cc: Likewise.
2882 * testsuite/20_util/is_invocable/83395.cc: Likewise.
2883 * testsuite/20_util/is_invocable/91456.cc: Likewise.
2884 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
2886 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
2888 * testsuite/20_util/is_invocable/value.cc: Likewise.
2889 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
2890 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
2891 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
2892 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
2894 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
2895 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
2896 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
2898 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2900 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2901 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
2903 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2905 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
2907 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
2909 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
2911 * testsuite/20_util/is_swappable/value.cc: Likewise.
2912 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
2914 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
2916 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
2917 * testsuite/20_util/logical_traits/83134.cc: Likewise.
2918 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
2920 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
2922 * testsuite/20_util/logical_traits/value.cc: Likewise.
2923 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
2924 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
2925 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
2927 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
2928 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
2929 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
2930 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
2931 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
2933 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
2935 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
2936 * testsuite/20_util/to_chars/3.cc: Likewise.
2937 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
2938 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
2939 * testsuite/20_util/to_chars/requirements.cc: Likewise.
2940 * testsuite/20_util/tuple/78939.cc: Likewise.
2941 * testsuite/20_util/tuple/apply/1.cc: Likewise.
2942 * testsuite/20_util/tuple/apply/2.cc: Likewise.
2943 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
2944 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
2945 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
2946 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
2947 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2948 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
2949 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2951 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2952 * testsuite/20_util/void_t/1.cc: Likewise.
2953 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
2954 * testsuite/24_iterators/container_access.cc: Likewise.
2955 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
2957 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
2959 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
2961 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
2963 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
2964 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
2966 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
2967 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
2969 * testsuite/26_numerics/lcm/1.cc: Likewise.
2970 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
2971 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
2972 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
2974 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
2976 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
2978 * testsuite/27_io/types/4.cc: Likewise.
2979 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
2980 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
2981 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2983 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2985 * testsuite/20_util/function_objects/searchers.cc: Remove
2986 -std=gnu++17 from dg-options directive.
2987 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
2989 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2991 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
2993 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
2995 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
2997 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
2999 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
3001 * testsuite/25_algorithms/clamp/1.cc: Likewise.
3002 * testsuite/25_algorithms/clamp/2.cc: Likewise.
3003 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
3004 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
3006 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
3008 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
3009 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
3011 * testsuite/25_algorithms/sample/1.cc: Likewise.
3012 * testsuite/25_algorithms/sample/2.cc: Likewise.
3013 * testsuite/25_algorithms/sample/3.cc: Likewise.
3014 * testsuite/25_algorithms/sample/81221.cc: Likewise.
3015 * testsuite/25_algorithms/search/searcher.cc: Likewise.
3016 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
3017 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
3018 * testsuite/26_numerics/reduce/1.cc: Likewise.
3019 * testsuite/26_numerics/reduce/2.cc: Likewise.
3020 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
3021 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
3022 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
3024 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3026 * testsuite/23_containers/array/cons/deduction.cc: Remove
3027 -std=gnu++17 from dg-options directive.
3028 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
3029 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
3031 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
3033 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
3035 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
3036 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
3038 * testsuite/23_containers/forward_list/cons/deduction.cc:
3040 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
3042 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
3043 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
3045 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
3046 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
3047 * testsuite/23_containers/map/modifiers/insert/83226.cc:
3049 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
3051 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
3052 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
3054 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3055 * testsuite/23_containers/multimap/modifiers/extract.cc:
3057 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
3058 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3059 * testsuite/23_containers/multiset/modifiers/extract.cc:
3061 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
3062 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
3063 * testsuite/23_containers/queue/deduction.cc: Likewise.
3064 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
3066 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3067 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
3068 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
3069 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
3070 * testsuite/23_containers/stack/deduction.cc: Likewise.
3071 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
3073 * testsuite/23_containers/unordered_map/cons/deduction.cc:
3075 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
3077 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
3079 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
3081 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
3083 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3085 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
3087 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
3089 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3091 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
3093 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
3095 * testsuite/23_containers/unordered_set/cons/deduction.cc:
3097 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
3099 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
3101 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
3103 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
3104 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
3105 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
3108 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3110 * testsuite/21_strings/basic_string/79162.cc: Remove
3111 -std=gnu++17 from dg-options directive.
3112 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
3113 * testsuite/21_strings/basic_string/cons/char/79162.cc:
3115 * testsuite/21_strings/basic_string/cons/char/86138.cc:
3117 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
3118 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
3120 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
3122 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
3123 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
3125 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
3127 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
3128 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
3130 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
3132 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
3133 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
3134 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
3135 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
3137 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
3139 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
3141 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
3143 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
3145 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
3147 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
3149 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
3151 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
3153 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
3155 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
3157 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
3159 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
3161 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
3163 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
3165 * testsuite/21_strings/basic_string/operators/char/5.cc:
3167 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
3169 * testsuite/21_strings/basic_string_view/capacity/1.cc:
3171 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
3173 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
3175 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
3177 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
3179 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
3181 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
3183 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
3185 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
3187 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
3189 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
3191 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
3193 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3195 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
3197 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3199 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
3201 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
3203 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
3205 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3207 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3209 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3211 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3213 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
3215 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3217 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
3219 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
3221 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3223 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
3224 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
3226 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
3228 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
3230 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
3232 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
3234 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
3236 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
3238 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
3240 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
3242 * testsuite/21_strings/basic_string_view/literals/types.cc:
3244 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
3246 * testsuite/21_strings/basic_string_view/literals/values.cc:
3248 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3250 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3252 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3254 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3256 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
3258 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
3260 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
3262 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
3264 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
3266 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
3268 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
3270 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
3272 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
3274 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
3276 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
3278 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
3280 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
3282 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
3284 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3286 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3288 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
3290 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
3292 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
3294 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
3296 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
3298 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
3300 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
3302 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
3304 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
3306 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
3308 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
3310 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
3312 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
3314 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
3316 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
3318 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
3320 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
3322 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3324 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
3326 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3328 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
3330 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
3332 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
3334 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
3336 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
3338 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3340 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3342 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3344 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3346 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3348 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3350 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
3352 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3354 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
3356 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
3358 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
3359 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
3360 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
3362 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
3364 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3366 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
3367 from dg-options directive.
3368 * testsuite/20_util/memory_resource/2.cc: Likewise.
3369 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
3370 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
3372 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
3374 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
3376 * testsuite/20_util/monotonic_buffer_resource/release.cc:
3378 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
3380 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
3381 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
3383 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3384 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
3385 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
3387 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
3389 * testsuite/20_util/synchronized_pool_resource/cons.cc:
3391 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
3393 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
3395 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
3397 * testsuite/20_util/synchronized_pool_resource/options.cc:
3399 * testsuite/20_util/synchronized_pool_resource/release.cc:
3401 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
3403 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
3405 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
3407 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
3409 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
3411 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
3413 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
3415 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3417 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3418 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
3420 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3422 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
3424 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3425 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
3426 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3427 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
3428 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3429 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
3431 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3432 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
3434 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3435 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
3436 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3438 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
3440 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3442 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
3444 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3446 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
3448 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3450 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
3452 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3453 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
3455 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3457 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3459 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
3461 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
3462 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
3463 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
3464 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
3465 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
3466 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
3467 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
3468 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
3470 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
3472 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
3473 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
3474 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
3476 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
3477 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
3479 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
3480 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
3481 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
3482 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
3484 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3486 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
3487 dg-options directive.
3488 * testsuite/20_util/any/assign/2.cc: Likewise.
3489 * testsuite/20_util/any/assign/emplace.cc: Likewise.
3490 * testsuite/20_util/any/assign/exception.cc: Likewise.
3491 * testsuite/20_util/any/assign/self.cc: Likewise.
3492 * testsuite/20_util/any/cons/1.cc: Likewise.
3493 * testsuite/20_util/any/cons/2.cc: Likewise.
3494 * testsuite/20_util/any/cons/90415.cc: Likewise.
3495 * testsuite/20_util/any/cons/92156.cc: Likewise.
3496 * testsuite/20_util/any/cons/aligned.cc: Likewise.
3497 * testsuite/20_util/any/cons/explicit.cc: Likewise.
3498 * testsuite/20_util/any/cons/in_place.cc: Likewise.
3499 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
3500 * testsuite/20_util/any/make_any.cc: Likewise.
3501 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3502 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
3503 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
3504 * testsuite/20_util/any/misc/swap.cc: Likewise.
3505 * testsuite/20_util/any/modifiers/1.cc: Likewise.
3506 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
3507 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
3508 * testsuite/20_util/any/observers/type.cc: Likewise.
3509 * testsuite/20_util/any/requirements.cc: Likewise.
3510 * testsuite/20_util/any/typedefs.cc: Likewise.
3511 * testsuite/20_util/optional/77288.cc: Likewise.
3512 * testsuite/20_util/optional/84601.cc: Likewise.
3513 * testsuite/20_util/optional/assignment/1.cc: Likewise.
3514 * testsuite/20_util/optional/assignment/2.cc: Likewise.
3515 * testsuite/20_util/optional/assignment/3.cc: Likewise.
3516 * testsuite/20_util/optional/assignment/4.cc: Likewise.
3517 * testsuite/20_util/optional/assignment/5.cc: Likewise.
3518 * testsuite/20_util/optional/assignment/6.cc: Likewise.
3519 * testsuite/20_util/optional/assignment/7.cc: Likewise.
3520 * testsuite/20_util/optional/assignment/8.cc: Likewise.
3521 * testsuite/20_util/optional/assignment/9.cc: Likewise.
3522 * testsuite/20_util/optional/bad_access.cc: Likewise.
3523 * testsuite/20_util/optional/cons/77727.cc: Likewise.
3524 * testsuite/20_util/optional/cons/85642.cc: Likewise.
3525 * testsuite/20_util/optional/cons/copy.cc: Likewise.
3526 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
3527 * testsuite/20_util/optional/cons/default.cc: Likewise.
3528 * testsuite/20_util/optional/cons/move.cc: Likewise.
3529 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
3530 * testsuite/20_util/optional/cons/value.cc: Likewise.
3531 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
3532 * testsuite/20_util/optional/constexpr/cons/default.cc:
3534 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
3535 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
3536 * testsuite/20_util/optional/constexpr/make_optional.cc:
3538 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
3539 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
3540 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
3541 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
3542 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
3543 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
3544 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
3545 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
3546 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
3547 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
3548 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
3549 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
3550 * testsuite/20_util/optional/hash.cc: Likewise.
3551 * testsuite/20_util/optional/in_place.cc: Likewise.
3552 * testsuite/20_util/optional/make_optional.cc: Likewise.
3553 * testsuite/20_util/optional/nullopt.cc: Likewise.
3554 * testsuite/20_util/optional/observers/1.cc: Likewise.
3555 * testsuite/20_util/optional/observers/2.cc: Likewise.
3556 * testsuite/20_util/optional/observers/3.cc: Likewise.
3557 * testsuite/20_util/optional/observers/4.cc: Likewise.
3558 * testsuite/20_util/optional/observers/5.cc: Likewise.
3559 * testsuite/20_util/optional/observers/6.cc: Likewise.
3560 * testsuite/20_util/optional/relops/1.cc: Likewise.
3561 * testsuite/20_util/optional/relops/2.cc: Likewise.
3562 * testsuite/20_util/optional/relops/3.cc: Likewise.
3563 * testsuite/20_util/optional/relops/4.cc: Likewise.
3564 * testsuite/20_util/optional/relops/5.cc: Likewise.
3565 * testsuite/20_util/optional/relops/6.cc: Likewise.
3566 * testsuite/20_util/optional/relops/7.cc: Likewise.
3567 * testsuite/20_util/optional/requirements.cc: Likewise.
3568 * testsuite/20_util/optional/swap/1.cc: Likewise.
3569 * testsuite/20_util/optional/swap/2.cc: Likewise.
3570 * testsuite/20_util/optional/typedefs.cc: Likewise.
3571 * testsuite/20_util/variant/80165.cc: Likewise.
3572 * testsuite/20_util/variant/85183.cc: Likewise.
3573 * testsuite/20_util/variant/86874.cc: Likewise.
3574 * testsuite/20_util/variant/87431.cc: Likewise.
3575 * testsuite/20_util/variant/87619.cc: Likewise.
3576 * testsuite/20_util/variant/91807.cc: Likewise.
3577 * testsuite/20_util/variant/any.cc: Likewise.
3578 * testsuite/20_util/variant/compile.cc: Likewise.
3579 * testsuite/20_util/variant/deduction.cc: Likewise.
3580 * testsuite/20_util/variant/exception_safety.cc: Likewise.
3581 * testsuite/20_util/variant/hash.cc: Likewise.
3582 * testsuite/20_util/variant/index_type.cc: Likewise.
3583 * testsuite/20_util/variant/relops/89851.cc: Likewise.
3584 * testsuite/20_util/variant/relops/90008.cc: Likewise.
3585 * testsuite/20_util/variant/run.cc: Likewise.
3586 * testsuite/20_util/variant/visit.cc: Likewise.
3588 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3590 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
3591 -std=gnu++17 from dg-options directive.
3592 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
3593 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
3594 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
3595 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
3596 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
3597 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
3598 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
3599 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
3601 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
3602 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
3603 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
3604 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
3605 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
3606 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
3608 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
3609 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
3611 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3613 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
3614 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
3615 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
3616 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
3617 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
3618 * testsuite/27_io/filesystem/operations/create_directories.cc:
3620 * testsuite/27_io/filesystem/operations/create_directory.cc:
3622 * testsuite/27_io/filesystem/operations/create_symlink.cc:
3624 * testsuite/27_io/filesystem/operations/current_path.cc:
3626 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
3627 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3628 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
3629 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3630 * testsuite/27_io/filesystem/operations/last_write_time.cc:
3632 * testsuite/27_io/filesystem/operations/permissions.cc:
3634 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
3635 * testsuite/27_io/filesystem/operations/read_symlink.cc:
3637 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
3638 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
3639 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
3640 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
3641 * testsuite/27_io/filesystem/operations/resize_file.cc:
3643 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
3644 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3645 * testsuite/27_io/filesystem/operations/symlink_status.cc:
3647 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3649 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
3651 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
3652 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
3653 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
3654 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3655 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
3656 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
3657 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
3658 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
3659 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
3660 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
3661 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
3662 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
3663 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
3664 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
3665 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
3666 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
3667 * testsuite/27_io/filesystem/path/construct/default.cc:
3669 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
3670 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
3671 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
3672 * testsuite/27_io/filesystem/path/construct/string_view.cc:
3674 * testsuite/27_io/filesystem/path/decompose/extension.cc:
3676 * testsuite/27_io/filesystem/path/decompose/filename.cc:
3678 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
3680 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
3682 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
3684 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
3686 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
3688 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
3689 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
3691 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
3692 * testsuite/27_io/filesystem/path/generation/normal.cc:
3694 * testsuite/27_io/filesystem/path/generation/normal2.cc:
3696 * testsuite/27_io/filesystem/path/generation/proximate.cc:
3698 * testsuite/27_io/filesystem/path/generation/relative.cc:
3700 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
3701 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
3703 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
3704 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
3705 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3706 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
3707 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
3708 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
3709 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
3711 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
3713 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
3715 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
3717 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
3718 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
3719 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
3721 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
3722 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
3723 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
3724 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3726 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
3727 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
3728 * testsuite/27_io/filesystem/path/query/has_extension.cc:
3730 * testsuite/27_io/filesystem/path/query/has_filename.cc:
3732 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
3734 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
3736 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
3738 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
3740 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
3742 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
3743 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
3745 * testsuite/27_io/filesystem/path/query/is_relative.cc:
3747 * testsuite/experimental/filesystem/path/construct/string_view.cc:
3750 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3752 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
3753 Remove -std=gnu++17 from dg-options.
3754 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
3756 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
3758 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
3760 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
3761 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
3763 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
3765 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
3767 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
3769 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
3771 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
3773 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
3775 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
3777 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
3779 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
3781 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
3783 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
3785 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
3787 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
3789 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
3791 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
3793 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
3795 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
3797 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
3799 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
3801 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
3803 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
3805 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
3807 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
3809 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3811 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
3813 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
3815 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
3817 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
3819 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
3821 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
3823 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
3825 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
3827 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3829 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
3831 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
3832 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
3834 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
3836 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
3838 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
3840 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
3842 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
3843 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
3844 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
3845 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
3846 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
3847 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
3848 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
3849 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
3851 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
3852 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
3853 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
3855 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
3858 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3860 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
3861 for additional errors in C++20.
3862 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3864 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3865 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3867 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3869 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
3870 clash with std::any.
3872 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
3874 * include/std/istream (__rvalue_stream_extraction_t): Replace
3875 use of __rval_streamable.
3876 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
3877 (__rval_streamable): Remove.
3878 (_Require_derived_from_ios_base, __derived_from_ios_base): New
3879 helper for checking constraints.
3880 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
3881 reference to the wrong subclause of the standard.
3882 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
3884 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
3886 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
3888 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
3890 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
3893 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3895 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
3896 Improve static_assert messages.
3897 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
3898 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
3900 2021-05-06 Patrick Palka <ppalka@redhat.com>
3902 * include/std/ranges (filter_view::_Iterator::base): Make the
3903 const& overload unconstrained and return a const reference as
3904 per LWG 3533. Make unconditionally noexcept.
3905 (transform_view::_Iterator::base): Likewise.
3906 (elements_view::_Iterator::base): Likewise.
3908 2021-05-06 Patrick Palka <ppalka@redhat.com>
3910 * include/bits/stl_iterator.h (move_iterator::base): Make the
3911 const& overload unconstrained and return a const reference as
3912 per LWG 3391. Make unconditionally noexcept.
3913 (counted_iterator::base): Likewise.
3914 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
3915 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
3916 has_member_base concept to decay-copy the result of base().
3918 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3920 * include/std/type_traits (remove_cvref_t): Define in terms of
3922 * testsuite/20_util/remove_cvref/value.cc: Check alias.
3924 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3927 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3929 * include/std/charconv (__from_chars_alnum): Pass unsigned
3930 char to std::isdigit.
3932 2021-05-05 Patrick Palka <ppalka@redhat.com>
3934 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
3935 Remove constraints on this partial specialization.
3936 * include/std/ranges (enable_borrowed_range<iota_view>):
3939 2021-05-05 Patrick Palka <ppalka@redhat.com>
3941 * include/std/ranges (transform_view::_Iterator::iter_swap):
3942 Remove as per LWG 3520.
3943 (join_view::_Iterator::iter_swap): Add indirectly_swappable
3944 constraint as per LWG 3517.
3946 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3948 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
3950 * testsuite/20_util/function_objects/invoke/version.cc: New test.
3952 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3954 * include/std/charconv (__from_chars_alnum): Pass unsigned
3955 char to std::isdigit.
3957 2021-05-05 Corentin Gay <gay@adacore.com>
3959 * acinclude.m4: Add VxWorks-specific case for the
3960 configuration of ctypes.
3961 * configure: Regenerate.
3962 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
3964 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
3965 * config/os/vxworks/ctype_configure_char.cc: Likewise.
3966 * config/os/vxworks/ctype_inline.h: Likewise.
3967 * testsuite/28_regex/traits/char/isctype.cc: Defines
3968 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
3969 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
3971 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3973 * include/std/future (promise::set_value): Check for existence
3974 of shared state before dereferncing it.
3975 (promise::set_exception, promise::set_value_at_thread_exit)
3976 (promise::set_exception_at_thread_exit): Likewise.
3977 (promise<R&>::set_value, promise<R&>::set_exception)
3978 (promise<R&>::set_value_at_thread_exit)
3979 (promise<R&>::set_exception_at_thread_exit): Likewise.
3980 (promise<void>::set_value, promise<void>::set_exception)
3981 (promise<void>::set_value_at_thread_exit)
3982 (promise<void>::set_exception_at_thread_exit): Likewise.
3983 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
3984 Remove unused variable.
3986 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3988 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
3989 Do not do arithmetic on null pointer.
3991 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3993 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
3994 (find_key_pointer(key_const_reference, false_type))
3995 (find_key_pointer(key_const_reference, true_type)): Do not
3996 dereference null pointer.
3998 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4000 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
4002 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
4003 non-zero value to null pointer.
4004 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
4005 Use past-the-end iterator for result.
4006 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
4007 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
4009 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4012 * include/std/variant (__get_t): New alias template yielding the
4013 return type of std::get<N> on a variant.
4014 (__visit_result_t): New alias template yielding the result of
4016 (__same_types): Move into namespace __detail::__variant.
4017 (__check_visitor_results): Likewise. Use __invoke_result_t and
4019 (__check_visitor_result): Remove.
4020 (visit): Use __visit_result_t for return type.
4021 * testsuite/20_util/variant/100384.cc: New test.
4023 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4025 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
4026 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
4027 * config.h.in: Regenerate.
4028 * configure: Regenerate.
4029 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
4030 * include/bits/random.h (_Select_uint_least_t<s, 1>):
4031 Use __SIZEOF_INT128__ to decide whether to use __int128.
4032 * include/std/charconv (__to_chars_unsigned_type): Likewise.
4034 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
4036 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
4037 * doc/html/manual/facets.html: Regenerate.
4039 2021-04-30 Patrick Palka <ppalka@redhat.com>
4041 * include/std/ranges (__detail::__non_propating_cache): Define
4043 (join_view): Remove constraints on the value and reference types
4044 of the wrapped iterator type as per P2328.
4045 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
4046 (join_view::_Iterator::operator++): Likewise.
4047 (join_view::_M_inner): Use __non_propating_cache as per P2328.
4048 Remove now-redundant use of __maybe_present_t.
4049 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
4052 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4054 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
4055 Only define for C++17 and later.
4056 * include/std/version (__cpp_lib_semaphore): Fix condition
4057 to match the one in <semaphore>.
4059 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4061 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
4062 * config.h.in: Regenerate.
4063 * configure: Regenerate.
4064 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
4065 * include/bits/postypes.h: Remove include of <stdint.h> and
4066 definition/undefinition of the __STDC_LIMIT_MACROS and
4067 __STDC_CONSTANT_MACROS macros.
4068 (streamoff): Use __INT64_TYPE__ if defined.
4070 2021-04-30 Patrick Palka <ppalka@redhat.com>
4072 * include/std/ranges (split_view::_InnerIter::operator++):
4073 Depend on _Base instead of _Vp directly, as per LWG 3532.
4075 2021-04-30 Patrick Palka <ppalka@redhat.com>
4077 * include/bits/ranges_util.h (subrange::subrange): Avoid
4078 list-initialization in delegating constructor.
4079 * include/std/ranges (single_view): Replace implicit guide
4080 with explicit deduction guide that decays its argument.
4081 (_Single::operator()): Avoid CTAD when constructing the
4083 (_Iota::operator()): Avoid list-initialization.
4084 (__detail::__can_filter_view, _Filter::operator()): Likewise.
4085 (__detail::__can_transform_view, _Transform::operator()): Likewise.
4086 (take_view::begin): Likewise.
4087 (__detail::__can_take_view, _Take::operator()): Likewise.
4088 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
4089 (__detail::__can_drop_view, _Drop::operator()): Likewise.
4090 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
4091 (split_view::split_view): Use views::single when initializing
4093 (__detail::__can_split_view, _Split::operator()): Avoid
4094 list-initialization.
4095 (_Counted::operator()): Likewise.
4096 * testsuite/std/ranges/p2367.cc: New test.
4098 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4101 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
4103 * include/bits/basic_string.tcc (basic_string::swap)
4104 (basic_string::assign): Likewise.
4105 * include/bits/deque.tcc (deque::operator=(const deque&)):
4107 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
4109 * include/bits/vector.tcc (vector::operator=(const vector&)):
4112 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4114 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
4116 * include/std/ostream (operator<<(Ostream&&, const x&)):
4118 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
4119 Adjust dg-error pattern.
4120 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
4122 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
4123 is_extractable trait to replace std::__is_extractable. Make it
4124 work with rvalue streams as well as lvalues, to replace f() and
4125 g() helper functions.
4126 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
4128 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
4129 Define is_insertable trait to replace std::__is_insertable. Make
4130 it work with rvalue streams as well as lvalues, to replace f()
4131 and g() helper functions.
4132 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
4134 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
4135 errors from new constraints.
4136 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
4137 which are no longer expected to compile.
4138 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
4139 Verify LWG 1203 changes.
4141 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4144 * include/experimental/socket (__basic_socket_impl::set_option)
4145 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
4146 Just set error code.
4147 * testsuite/experimental/net/socket/socket_base.cc: CHeck
4148 for <sys/socket.h> not <socket.h>.
4150 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4155 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
4156 Use new effective-target keyword.
4157 * testsuite/experimental/net/internet/address/v4/cons.cc:
4159 * testsuite/experimental/net/internet/address/v4/creation.cc:
4161 * testsuite/experimental/net/internet/address/v4/members.cc:
4163 * testsuite/experimental/net/internet/address/v6/members.cc:
4165 * testsuite/experimental/net/internet/resolver/base.cc:
4167 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
4169 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
4171 * testsuite/experimental/net/internet/socket/opt.cc:
4173 * testsuite/experimental/net/internet/tcp.cc:
4175 * testsuite/experimental/net/internet/udp.cc:
4177 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
4178 New proc to check net_ts_ip et.
4180 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4183 * testsuite/20_util/pair/requirements/structural.cc: New test.
4185 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4187 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
4188 new definitions for constructors and assignment operators using
4189 concepts for constraints.
4190 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
4192 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
4193 expected error messages to also match C++20 errors.
4195 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4198 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
4199 Combine and replace with ...
4200 (_PCC::_DeprConsPair): New SFINAE helper function.
4201 (pair): Merge preprocessor blocks so that all C++03 members
4202 are defined together at the end.
4203 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
4204 Replace _T1 and _T2 parameters with __null_ptr_constant and
4206 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
4207 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
4208 * testsuite/20_util/pair/cons/99957.cc: New test.
4210 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4212 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
4213 * include/std/version (__cpp_lib_constexpr_string): Define.
4214 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4215 Check for __cpp_lib_constexpr_string.
4216 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
4218 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
4220 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4222 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
4223 dealing with errors. Use '@' to prevent shell command being
4225 * doc/Makefile.in: Regenerate.
4227 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4230 * include/bits/std_thread.h (thread::hardware_concurrency): Add
4231 missing noexcept to inline definition for non-gthreads targets.
4233 2021-04-28 Patrick Palka <ppalka@redhat.com>
4239 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
4240 the __value_comp lambda an explicit bool return type.
4241 (__is_permutation_fn::operator()): Give the __proj_scan local
4242 variable auto&& return type. Give the __comp_scan lambda an
4243 explicit bool return type.
4244 (__remove_fn::operator()): Give the __pred lambda an explicit
4246 (__partition_fn::operator()): Don't std::move __first twice
4247 when returning an empty subrange.
4248 (__min_fn::operator()): Don't std::move __comp.
4249 (__max_fn::operator()): Likewise.
4250 (__minmax_fn::operator()): Likewise.
4252 2021-04-27 Patrick Palka <ppalka@redhat.com>
4255 * include/std/ranges (join_view::_Iterator::operator++): Correct
4256 the return type of the lambda to avoid returning a copy of
4257 _M_parent->_M_inner.
4258 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
4260 2021-04-27 Jakub Jelinek <jakub@redhat.com>
4263 2021-04-22 Jakub Jelinek <jakub@redhat.com>
4266 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4268 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4271 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4273 * include/experimental/internet (address_v6::bytes_type): Adjust
4275 (basic_endpoint): Define _M_is_v6() to put all checks for
4276 AF_INET6 in one place.
4277 (basic_endpoint::resize): Simplify.
4278 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
4279 (operator!=(const tcp&, const tcp&)): Likewise.
4280 (operator==(const udp&, const udp&)): Likewise.
4281 (operator!=(const udp&, const udp&)): Likewise.
4282 * testsuite/experimental/net/internet/tcp.cc: New test.
4283 * testsuite/experimental/net/internet/udp.cc: New test.
4285 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4288 * include/experimental/internet (resolver_errc, resolver_category())
4289 (make_error_code, make_error_condition): Define unconditionally,
4290 only make enumerators and use of gai_strerror depend on the
4291 availability of <netdb.h>.
4292 (address_v4::to_string): Use correct constant for string length.
4293 (address_v4::to_string, address_v6::to_string): Define
4294 unconditionally, throw if unsupported.
4295 (make_address_v4, make_address_v6): Define unconditionally.
4296 Return an error if unsupported.
4297 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
4299 * testsuite/experimental/net/internet/socket/opt.cc: Check for
4300 <netinet/in.h> and <netinet/tcp.h> before using types from
4303 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4306 * include/experimental/internet (resolver_base::flags):
4307 Define overloaded operators as hidden friends.
4308 * include/experimental/socket (socket_base::message_flags):
4311 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4313 * include/experimental/internet (tcp::no_delay, v6_only)
4314 (unicast::hops, multicast::hops, multicast::enable_loopback):
4315 Change access of base class and static data members. Add
4316 using-declaration for __socket_crtp::operator=(_Tp).
4317 (multicast::__mcastopt): New type.
4318 (multicast::join_group, multicast::leave_group): Derive from
4319 __mcastopt for common implementation.
4320 * include/experimental/socket: Add comment.
4321 * testsuite/experimental/net/internet/socket/opt.cc: New test.
4322 * testsuite/experimental/net/socket/socket_base.cc: Check for
4323 protected constructor/destructor of socket_base. Check for
4324 explicit constructors of socket option classes.
4326 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4328 * include/experimental/bits/net.h (__socket_base): Add
4329 bool template parameter to allow BooleanSocketOption and
4330 IntegerSocketOption to have different __socket_base<int>
4332 (__socket_base<bool>): Adjust base class.
4333 (__socket_base<int>): Add partial specialization.
4334 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
4335 * include/experimental/socket (socket_base::broadcast)
4336 (socket_base::debug, socket_base::do_not_route)
4337 (socket_base::keep_alive, socket_base::linger)
4338 (socket_base::out_of_band_inline)
4339 (socket_base::receive_buffer_size)
4340 (socket_base::receive_low_watermark)
4341 (socket_base::reuse_address, socket_base::send_buffer_size)
4342 (socket_base::send_low_watermark): Add using-declaration for
4343 __socket_crtp::operator=(_Tp).
4344 * testsuite/experimental/net/socket/socket_base.cc: Check
4345 properties of socket option types.
4347 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4349 * include/experimental/internet (resolver_base::flags): Remove
4350 enumerators. Initialize constants directly with desired values.
4351 Make all operators constexpr and noexcept.
4352 * testsuite/experimental/net/internet/resolver/base.cc: Use
4353 __gnu_test::test_bitmask_values for bitmask type. Check
4354 construction and destruction is protected.
4356 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4358 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
4360 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4363 * include/experimental/internet (net::ip::make_error_code)
4364 (net::ip::make_error_condition, net::ip::make_network_v4)
4365 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
4367 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
4369 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
4370 (add_options_for_libatomic): Use atomic_link_flags.
4372 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4375 * include/experimental/io_context (io_context): Define
4376 dummy_pollfd type so that most member functions still compile
4377 without <poll.h> and struct pollfd.
4379 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4381 * include/experimental/io_context (io_context::async_wait): Add
4383 * include/experimental/socket (basic_socket::async_connect):
4384 Cast wait_type constant to int.
4385 (basic_datagram_socket::async_receive): Likewise.
4386 (basic_datagram_socket::async_receive_from): Likewise.
4387 (basic_datagram_socket::async_send): Likewise.
4388 (basic_datagram_socket::async_send_to): Likewise.
4389 (basic_stream_socket::async_receive): Likewise.
4390 (basic_stream_socket::async_send): Likewise. Use io_context
4391 parameter directly, instead of via an executor.
4392 (basic_socket_acceptor::async_accept): Likewise.
4394 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4396 * include/experimental/socket (socket_base::shutdown_type):
4397 (socket_base::wait_type, socket_base::message_flags):
4398 Remove enumerators. Initialize constants directly with desired
4400 (socket_base::message_flags): Make all operators constexpr and
4402 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
4404 * testsuite/experimental/net/socket/socket_base.cc: New test.
4406 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
4408 * config/os/aix/atomicity.h: Delete.
4410 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4412 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
4413 Handle system_clock as well as steady_clock.
4414 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
4415 * testsuite/30_threads/semaphore/try_acquire_until.cc:
4418 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4420 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
4421 options for libatomic.
4423 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4425 * config/os/gnu-linux/os_defines.h: Fix type in comment.
4427 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4430 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
4431 is not an array type.
4432 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
4433 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
4435 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
4437 * include/bits/atomic_wait.h: Always notify waiters in the
4438 case of 'bare' address notification.
4440 2021-04-22 Jakub Jelinek <jakub@redhat.com>
4443 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4445 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4448 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4451 * include/bits/semaphore_base.h: Remove #error.
4452 * include/std/semaphore: Do not define anything unless one of
4453 the implementations is available.
4455 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
4457 * include/bits/semaphore_base.h: Always reload __old in
4458 __atomic_semaphore::_S_do_try_acquire().
4459 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4462 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
4463 Jonathan Wakely <jwakely@redhat.com>
4466 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
4467 * python/Makefile.in: Regenerate.
4469 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
4471 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
4472 member to __platform_wait.
4474 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
4476 * include/std/latch: Replace tab characters in license text.
4477 * include/std/semaphore: Likewise.
4479 2021-04-21 Jakub Jelinek <jakub@redhat.com>
4482 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
4483 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
4484 * configure: Regenerated.
4485 * config.h.in: Regenerated.
4487 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
4489 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
4490 test for targets not using futexes for semaphores.
4491 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
4492 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4493 Disable for all targets.
4495 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
4497 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
4498 * include/Makefile.in: Regenerate.
4499 * include/bits/this_thread_sleep.h: New file.
4500 * include/bits/atomic_base.h: Adjust all calls
4501 to __atomic_wait/__atomic_notify for new call signatures.
4502 * include/bits/atomic_timed_wait.h: Extensive rewrite.
4503 * include/bits/atomic_wait.h: Likewise.
4504 * include/bits/semaphore_base.h: Adjust all calls
4505 to __atomic_wait/__atomic_notify for new call signatures.
4506 * include/std/atomic: Likewise.
4507 * include/std/barrier: Likewise.
4508 * include/std/latch: Likewise.
4509 * include/std/semaphore: Likewise.
4510 * include/std/thread (this_thread::sleep_for)
4511 (this_thread::sleep_until): Move to new header.
4512 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
4514 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
4515 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
4516 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
4517 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
4518 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
4519 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
4521 2021-04-20 Patrick Palka <ppalka@redhat.com>
4524 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
4526 (move_iterator): Derive from the above in C++20 in order to
4527 conditionally define iterator_category as per P2259.
4528 (move_iterator::__base_cat): No longer used, so remove.
4529 (move_iterator::iterator_category): Remove in C++20.
4530 (__detail::__common_iter_use_postfix_proxy): Define.
4531 (common_iterator::_Proxy): Rename to ...
4532 (common_iterator:__arrow_proxy): ... this.
4533 (common_iterator::__postfix_proxy): Define as per P2259.
4534 (common_iterator::operator->): Adjust.
4535 (common_iterator::operator++): Adjust as per P2259.
4536 (iterator_traits<common_iterator>::_S_iter_cat): Define.
4537 (iterator_traits<common_iterator>::iterator_category): Change as
4539 (__detail::__counted_iter_value_type): Define.
4540 (__detail::__counted_iter_concept): Define.
4541 (__detail::__counted_iter_cat): Define.
4542 (counted_iterator): Derive from the above three classes in order
4543 to conditionally define value_type, iterator_concept and
4544 iterator category respectively as per P2259.
4545 (counted_iterator::operator->): Define as per P2259.
4546 (incrementable_traits<counted_iterator>): Remove as per P2259.
4547 (iterator_traits<counted_iterator>): Adjust as per P2259.
4548 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
4549 (iota_view::_Iterator): Derive from the above in order to
4550 conditionally define iterator_category as per P2259.
4551 (iota_view::_S_iter_cat): Rename to ...
4552 (iota_view::_S_iter_concept): ... this.
4553 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
4554 (iota_view::iterator_category): Remove.
4555 (__detail::__filter_view_iter_cat): Define.
4556 (filter_view::_Iterator): Derive from the above in order to
4557 conditionally define iterator_category as per P2259.
4558 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
4559 (filter_view::_Iterator::iterator_category): Remove.
4560 (transform_view::_Base): Define.
4561 (transform_view::__iter_cat): Define.
4562 (transform_view::_Iterator): Derive from the above in order to
4563 conditionally define iterator_category as per P2259.
4564 (transform_view::_Iterator::_Base): Just alias
4565 transform_view::_Base.
4566 (transform_view::_Iterator::_S_iter_cat): Move to struct
4567 transform_view::__iter_cat.
4568 (transform_view::_Iterator::iterator_category): Remove.
4569 (transform_view::_Sentinel::_Base): Just alias
4570 transform_view::_Base.
4571 (join_view::_Base): Define.
4572 (join_view::_Outer_iter): Define.
4573 (join_view::_Inner_iter): Define.
4574 (join_view::_S_ref_is_glvalue): Define.
4575 (join_view::__iter_cat): Define.
4576 (join_view::_Iterator): Derive from it in order to conditionally
4577 define iterator_category as per P2259.
4578 (join_view::_Iterator::_Base): Just alias join_view::_Base.
4579 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
4580 join_view::_S_ref_is_glvalue.
4581 (join_view::_Iterator::_S_iter_cat): Move to struct
4582 transform_view::__iter_cat.
4583 (join_view::_Iterator::_Outer_iter): Just alias
4584 join_view::_Outer_iter.
4585 (join_view::_Iterator::_Inner_iter): Just alias
4586 join_view::_Inner_iter.
4587 (join_view::_Iterator::iterator_category): Remove.
4588 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
4589 (__detail::__split_view_outer_iter_cat): Define.
4590 (__detail::__split_view_inner_iter_cat): Define.
4591 (split_view::_Base): Define.
4592 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
4593 in order to conditionally define iterator_category as per P2259.
4594 (split_view::_Outer_iter::iterator_category): Remove.
4595 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
4596 in order to conditionally define iterator_category as per P2259.
4597 (split_view::_Inner_iter::_S_iter_cat): Move to
4598 __split_view_inner_iter_cat.
4599 (split_view::_Inner_iter::iterator_category): Remove.
4600 (elements_view::_Base): Define.
4601 (elements_view::__iter_cat): Define.
4602 (elements_view::_Iterator): Derive from the above in order to
4603 conditionall define iterator_category as per P2259.
4604 (elements_view::_Iterator::_Base): Just alias
4605 elements_view::_Base.
4606 (elements_view::_Iterator::_S_iter_concept)
4607 (elements_view::_Iterator::iterator_concept): Define as per
4609 (elements_view::_Iterator::iterator_category): Remove.
4610 (elements_view::_Sentinel::_Base): Just alias
4611 elements_view::_Base.
4612 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
4613 Adjust constraints on iterator_traits<counted_iterator>.
4614 * testsuite/std/ranges/p2259.cc: New test.
4616 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
4619 * include/std/charconv (__cpp_lib_to_chars): Define
4621 * include/std/version (__cpp_lib_to_chars): Likewise..
4622 * testsuite/20_util/from_chars/4.cc: Only check feature test
4623 macro, not _GLIBCXX_HAVE_USELOCALE.
4624 * testsuite/20_util/from_chars/5.cc: Likewise.
4625 * testsuite/20_util/from_chars/6.cc: Likewise.
4626 * testsuite/20_util/to_chars/long_double.cc: Likewise.
4628 2021-04-20 Jakub Jelinek <jakub@redhat.com>
4630 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
4631 versions with _IEEE128_ substring are found, set ieee_version_found
4632 to true. Ignore missing symbols with _IEEE128_ in version name if
4633 !ieee_version_found. Use i->first as version_name instead of
4634 i->second.version_name if the latter is empty.
4635 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4637 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
4639 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
4642 2021-04-17 Jakub Jelinek <jakub@redhat.com>
4644 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
4645 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
4647 2021-04-17 Jakub Jelinek <jakub@redhat.com>
4649 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
4650 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
4651 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
4652 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
4653 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
4654 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4656 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
4658 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
4659 add libatomic options for 32-bit sparc*-*-linux-gnu.
4661 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
4664 * libsupc++/Makefile.am: Add atomicity.cc here.
4665 * src/c++98/Makefile.am: Remove it from here.
4666 * libsupc++/Makefile.in: Regenerate.
4667 * src/c++98/Makefile.in: Regenerate.
4668 * testsuite/18_support/exception_ptr/96657.cc: New test.
4670 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
4673 * include/std/bit: Only include <ext/numeric_traits.h> for
4674 hosted build, use <limits> otherwise.
4676 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
4678 * doc/xml/manual/backwards_compatibility.xml: Remove porting
4679 notes for libg++ and libstdc++-v2, and bibliography.
4680 * doc/html/*: Regenerated.
4682 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
4685 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
4686 Remove helper concept.
4687 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
4688 deduction guides, as per LWG 3404.
4689 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
4690 template argument deduction fails.
4692 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
4694 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
4695 Adjust expected error for C++20 mode.
4696 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
4699 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
4702 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
4703 standard headers and XFAIL for effective-target c++20.
4705 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
4708 * include/debug/helper_functions.h (__can_advance(_InputIterator,
4709 const std::pair<_Diff, _Distance_precision>&, int)): New.
4710 (__can_advance(const _Safe_iterator<>&,
4711 const std::pair<_Diff, _Distance_precision>&, int)): New.
4712 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
4714 (__glibcxx_check_can_increment_range): Adapt to use latter.
4715 (__glibcxx_check_can_decrement_range): Likewise.
4716 * include/debug/safe_iterator.h
4717 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4719 (__can_advance(const _Safe_iterator<>&,
4720 const std::pair<_Diff, _Distance_precision>&, int)): New.
4721 * include/debug/safe_iterator.tcc
4722 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4724 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
4725 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
4727 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
4728 (__copy_move_backward_a): Likewise.
4729 (__equal_aux): Likewise.
4730 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
4731 const std::pair<_Diff, _Distance_precision>&, int)): New.
4732 (__can_advance(const std::move_iterator<>&,
4733 const std::pair<_Diff, _Distance_precision>&, int)): New.
4734 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
4736 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
4739 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
4740 to be a valid constexpr function in C++11.
4741 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
4743 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
4745 * include/bits/fs_fwd.h: Fix doxygen group command.
4746 * include/bits/streambuf_iterator.h: Likewise.
4747 * include/bits/uses_allocator_args.h: Likewise.
4748 * include/std/memory: Likewise.
4749 * include/tr1/complex: Likewise.
4751 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4753 * include/bits/basic_string.h: Tweak doxygen comment.
4755 2021-04-08 Patrick Palka <ppalka@redhat.com>
4757 * include/std/ranges (__detail::find): Define.
4758 (split_view::_OuterIter::operator++): Apply proposed resolution
4760 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
4762 2021-04-08 Patrick Palka <ppalka@redhat.com>
4764 * include/std/ranges (__detail::find_if): Simplify.
4765 (__detail::find_if_not): Likewise.
4766 (__detail::min): Remove.
4767 (__detail::mismatch): Simplify.
4768 (take_view::size): Use std::min instead of __detail::min.
4770 2021-04-08 Patrick Palka <ppalka@redhat.com>
4772 * include/std/ranges (__detail::__returnable_element): New
4774 (elements_view): Use this concept in its constraints. Add
4775 missing private access specifier.
4776 (elements_view::_S_get_element): Define as per LWG 3502.
4777 (elements_view::operator*, elements_view::operator[]): Use
4779 (elements_view::operator++): Remove unnecessary constraint
4781 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
4783 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4785 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
4786 out-of-memory error in log file.
4787 * doc/Makefile.in: Regenerate.
4789 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4791 * configure: Regenerate.
4793 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4795 * include/bits/random.h: Fix doxygen group commands.
4796 * include/bits/regex_constants.h: Likewise.
4797 * include/tr1/random.h: Likewise.
4799 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4801 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
4802 New function to determine noexcept-specifier for move
4804 (_Hashtable): Use _S_nothrow_move() on move constructors.
4805 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
4806 Correct static assertion message.
4807 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
4809 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
4811 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
4814 2021-04-08 Patrick Palka <ppalka@redhat.com>
4817 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
4818 on targets without a large long double. XFAIL the execution on
4819 targets with a non-conforming printf.
4821 2021-04-08 Patrick Palka <ppalka@redhat.com>
4824 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
4825 (__adaptor::__adaptor_invocable): New concept.
4826 (__adaptor::__adaptor_partial_app_viable): New concept.
4827 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
4828 non-template base class.
4829 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
4831 (__adaptor::_Partial): New class template that represents
4832 partial application of a range adaptor non-closure.
4833 (__adaptor::__pipe_invocable): New concept.
4834 (__adaptor::_Pipe): New class template.
4835 (__detail::__can_ref_view): New concept.
4836 (__detail::__can_subrange): New concept.
4837 (all): Replace the lambda here with ...
4838 (_All): ... this functor. Add appropriate constraints.
4839 (__detail::__can_filter_view): New concept.
4840 (filter, _Filter): As in all/_All.
4841 (__detail::__can_transform): New concept.
4842 (transform, _Transform): As in all/_All.
4843 (__detail::__can_take_view): New concept.
4844 (take, _Take): As in all/_All.
4845 (__detail::__can_take_while_view): New concept.
4846 (take_while, _TakeWhile): As in all/_All.
4847 (__detail::__can_drop_view): New concept.
4848 (drop, _Drop): As in all/_All.
4849 (__detail::__can_drop_while_view): New concept.
4850 (drop_while, _DropWhile): As in all/_All.
4851 (__detail::__can_join_view): New concept.
4852 (join, _Join): As in all/_All.
4853 (__detail::__can_split_view): New concept.
4854 (split, _Split): As in all/_All. Rename template parameter
4856 (__detail::__already_common): New concept.
4857 (__detail::__can_common_view): New concept.
4858 (common, _Common): As in all/_All.
4859 (__detail::__can_reverse_view): New concept.
4860 (reverse, _Reverse): As in all/_All.
4861 (__detail::__can_elements_view): New concept.
4862 (elements, _Elements): As in all/_All.
4863 (keys, values): Adjust.
4864 * testsuite/std/ranges/adaptors/99433.cc: New test.
4865 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
4866 adding empty range adaptor closure objects to a pipeline doesn't
4867 increase the size of the pipeline.
4869 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
4870 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
4871 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
4872 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
4873 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
4874 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
4875 * testsuite/std/ranges/adaptors/p2281.cc: New test.
4876 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
4877 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
4880 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
4881 expected error message.
4882 (test02): Likewise. Extend test.
4883 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
4884 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
4885 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
4888 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4890 * include/std/string_view: Adjust Doxygen @file comment.
4892 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4894 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
4895 specialization to not match incomplete enum types. Use a
4896 requires-expression instead of instantiating is_convertible.
4897 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
4898 * testsuite/20_util/is_scoped_enum/value.cc: Check with
4899 incomplete types and opaque-enum-declarations.
4901 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
4904 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
4905 non-const member on _M_pathname, to avoid copy-on-write.
4906 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4907 Check construction from strings that might be shared.
4909 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4911 * include/bits/move.h (forward, move, move_if_noexcept)
4912 (addressof): Add _GLIBCXX_NODISCARD.
4913 * include/bits/ranges_cmp.h (identity::operator()): Add
4914 nodiscard attribute.
4915 * include/c_global/cstddef (to_integer): Likewise.
4916 * include/std/bit (bit_cast): Likewise.
4917 * include/std/utility (as_const, to_underlying): Likewise.
4919 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4921 * include/bits/move.h (forward): Change static_assert message
4922 to be unambiguous about what must be true.
4923 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
4924 * testsuite/20_util/forward/f_neg.cc: Likewise.
4926 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4928 * include/bits/alloc_traits.h: Use markdown for code font.
4929 * include/bits/basic_string.h: Fix @param names.
4930 * include/bits/max_size_type.h: Remove period after @file.
4931 * include/bits/regex.h: Fix duplicate @retval names, and rename.
4932 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
4933 group open to match existing group close.
4934 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
4937 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4939 * include/bits/atomic_base.h: Fix doxygen group close.
4940 * include/bits/basic_ios.h: Likewise.
4941 * include/bits/forward_list.h: Likewise.
4942 * include/bits/fs_dir.h: Likewise.
4943 * include/bits/fs_ops.h: Likewise.
4944 * include/bits/fs_path.h: Likewise.
4945 * include/bits/functional_hash.h: Likewise.
4946 * include/bits/gslice.h: Likewise.
4947 * include/bits/gslice_array.h: Likewise.
4948 * include/bits/hashtable_policy.h: Likewise.
4949 * include/bits/indirect_array.h: Likewise.
4950 * include/bits/locale_classes.h: Likewise.
4951 * include/bits/locale_facets.h: Likewise.
4952 * include/bits/locale_facets_nonio.h: Likewise.
4953 * include/bits/mask_array.h: Likewise.
4954 * include/bits/refwrap.h: Likewise.
4955 * include/bits/regex.h: Likewise.
4956 * include/bits/regex_automaton.h: Likewise.
4957 * include/bits/regex_compiler.h: Likewise.
4958 * include/bits/regex_constants.h: Likewise.
4959 * include/bits/regex_error.h: Likewise.
4960 * include/bits/regex_executor.h: Likewise.
4961 * include/bits/regex_scanner.h: Likewise.
4962 * include/bits/shared_ptr.h: Likewise.
4963 * include/bits/shared_ptr_atomic.h: Likewise.
4964 * include/bits/shared_ptr_base.h: Likewise.
4965 * include/bits/slice_array.h: Likewise.
4966 * include/bits/specfun.h: Likewise.
4967 * include/bits/std_function.h: Likewise.
4968 * include/bits/std_mutex.h: Likewise.
4969 * include/bits/stl_deque.h: Likewise.
4970 * include/bits/stl_iterator.h: Likewise.
4971 * include/bits/stl_iterator_base_types.h: Likewise.
4972 * include/bits/stl_map.h: Likewise.
4973 * include/bits/stl_multimap.h: Likewise.
4974 * include/bits/stl_multiset.h: Likewise.
4975 * include/bits/stl_numeric.h: Likewise.
4976 * include/bits/stl_pair.h: Likewise.
4977 * include/bits/stl_set.h: Likewise.
4978 * include/bits/stl_uninitialized.h: Likewise.
4979 * include/bits/stream_iterator.h: Likewise.
4980 * include/bits/streambuf_iterator.h: Likewise.
4981 * include/bits/unique_ptr.h: Likewise.
4982 * include/bits/unordered_map.h: Likewise.
4983 * include/bits/unordered_set.h: Likewise.
4984 * include/decimal/decimal: Likewise.
4985 * include/experimental/any: Likewise.
4986 * include/experimental/array: Likewise.
4987 * include/experimental/bits/fs_dir.h: Likewise.
4988 * include/experimental/bits/fs_fwd.h: Likewise.
4989 * include/experimental/bits/fs_ops.h: Likewise.
4990 * include/experimental/bits/fs_path.h: Likewise.
4991 * include/experimental/buffer: Likewise.
4992 * include/experimental/internet: Likewise.
4993 * include/experimental/optional: Likewise.
4994 * include/experimental/propagate_const: Likewise.
4995 * include/experimental/socket: Likewise.
4996 * include/ext/pb_ds/assoc_container.hpp: Likewise.
4997 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
4999 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
5000 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
5001 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
5002 * include/ext/pb_ds/exception.hpp: Likewise.
5003 * include/ext/pb_ds/priority_queue.hpp: Likewise.
5004 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
5005 * include/ext/random: Likewise.
5006 * include/std/any: Likewise.
5007 * include/std/atomic: Likewise.
5008 * include/std/bitset: Likewise.
5009 * include/std/chrono: Likewise.
5010 * include/std/complex: Likewise.
5011 * include/std/condition_variable: Likewise.
5012 * include/std/fstream: Likewise.
5013 * include/std/future: Likewise.
5014 * include/std/iostream: Likewise.
5015 * include/std/istream: Likewise.
5016 * include/std/mutex: Likewise.
5017 * include/std/numeric: Likewise.
5018 * include/std/ostream: Likewise.
5019 * include/std/ratio: Likewise.
5020 * include/std/shared_mutex: Likewise.
5021 * include/std/stdexcept: Likewise.
5022 * include/std/streambuf: Likewise.
5023 * include/std/system_error: Likewise.
5024 * include/std/thread: Likewise.
5025 * include/std/valarray: Likewise.
5026 * include/std/variant: Likewise.
5027 * include/tr1/cmath: Likewise.
5028 * include/tr1/regex: Likewise.
5029 * include/tr2/dynamic_bitset: Likewise.
5030 * libsupc++/atomic_lockfree_defines.h: Likewise.
5031 * libsupc++/exception: Likewise.
5032 * libsupc++/exception.h: Likewise.
5033 * libsupc++/exception_ptr.h: Likewise.
5034 * libsupc++/nested_exception.h: Likewise.
5036 2021-03-31 Alexandre Oliva <oliva@adacore.com>
5038 * testsuite/30_threads/future/members/poll.cc: Use faster
5039 after-ready call in the calibration loop.
5041 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
5043 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
5044 * doc/html/manual/status.html: Regenerate.
5046 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
5048 * include/debug/forward_list
5049 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
5050 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
5051 call to safe container allocator aware move constructor.
5052 * include/debug/vector (vector(vector&&, const allocator_type&)):
5053 Fix noexcept qualification.
5054 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
5055 Add allocator-extended move constructor noexceot qualification check.
5056 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
5058 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
5060 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
5062 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
5063 New helper functions and callback.
5064 (random_device::_M_init): Add 'prng' and 'all' enumerators.
5065 Replace switch with fallthrough with a series of 'if' statements.
5066 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
5068 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
5070 (random_device::_M_getval): Check for callback unconditionally
5071 and always pass _M_file pointer.
5072 * testsuite/26_numerics/random/random_device/85494.cc: Remove
5073 effective-target check. Use new random_device_available helper.
5074 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
5075 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
5076 Remove effective-target check.
5077 * testsuite/26_numerics/random/random_device/cons/default.cc:
5079 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
5080 new random_device_available helper. Test "prng" token.
5081 * testsuite/util/testsuite_random.h (random_device_available):
5082 New helper function.
5084 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
5086 * include/debug/string
5087 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
5088 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
5089 (basic_string<>::erase): Adapt to take __const_iterator.
5090 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
5091 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
5092 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
5093 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
5094 (__gnu_debug::u16string, __gnu_debug::u32string): New.
5095 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
5096 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
5097 * testsuite/util/exception/safety.h
5098 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
5099 (insert_base<__gnu_debug::basic_string<>>): Likewise.
5100 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
5101 New partial specialization.
5102 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
5103 * testsuite/21_strings/basic_string/requirements/citerators.cc:
5104 Add test on __gnu_debug::string.
5105 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
5106 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
5107 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
5109 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
5111 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
5113 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
5115 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
5117 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
5119 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
5121 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
5123 2021-03-25 Jakub Jelinek <jakub@redhat.com>
5126 * testsuite/18_support/source_location/consteval.cc (main): Adjust
5127 expected column numbers.
5128 * testsuite/18_support/source_location/1.cc (main): Likewise.
5130 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
5132 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
5134 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
5136 * testsuite/util/exception/safety.h (setup_base::generate):
5137 Support seeding random engine.
5138 (erase_point, erase_range): Adjust range of random numbers to
5139 ensure dereferenceable iterators are used where required.
5140 (generation_prohibited::run): Do not try to erase from empty
5142 * testsuite/util/testsuite_containergen.h (test_containers):
5143 Support seeding random engine.
5145 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
5147 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
5148 line with a check that uses the const being/end overloads.
5150 2021-03-23 Moritz Sichert <sichert@in.tum.de>
5152 * include/std/ranges (reverse_view::begin, reverse_view::end):
5153 Qualify make_reverse_iterator calls to avoid ADL.
5154 * testsuite/std/ranges/adaptors/reverse.cc: Test that
5155 views::reverse works when make_reverse_iterator is defined
5156 in an associated namespace.
5158 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
5160 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
5161 Do not define when compiling with Clang.
5163 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
5165 * include/std/string_view (basic_string_view(Range&&)): Define new
5166 constructor and deduction guide.
5167 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
5168 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
5170 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
5172 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
5173 Add missing 'noexcept' as per LWG 2280.
5174 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
5175 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
5176 * testsuite/24_iterators/range_access/range_access.cc: Check for
5177 expected noexcept specifiers. Check result types of generic
5178 std::begin and std::end overloads.
5179 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
5180 Check for expected noexcept specifiers.
5181 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
5184 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
5186 * include/std/type_traits (is_scoped_enum): Define.
5187 * include/std/version (__cpp_lib_is_scoped_enum): Define.
5188 * testsuite/20_util/is_scoped_enum/value.cc: New test.
5189 * testsuite/20_util/is_scoped_enum/version.cc: New test.
5191 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
5194 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
5195 std::once_flag symbols.
5196 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
5197 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
5198 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5200 * config/abi/pre/gnu.ver: Likewise.
5201 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5202 (struct __once_flag_compat): Remove.
5203 (_ZNSt9once_flag11_M_activateEv): Remove.
5204 (_ZNSt9once_flag9_M_finishEb): Remove.
5206 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
5209 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
5210 Revert to pthread_once_t implementation.
5211 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
5212 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5213 (struct __once_flag_compat): New type matching the reverted
5214 implementation of once_flag using futexes.
5215 (once_flag::_M_activate): Remove, replace with ...
5216 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
5217 (once_flag::_M_finish): Remove, replace with ...
5218 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
5219 * testsuite/30_threads/call_once/66146.cc: Removed.
5221 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
5223 * testsuite/17_intro/names.cc: Exclude j from the list
5224 of test symbols for Darwin.
5226 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
5228 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
5229 to_chars and from_chars for long double.
5231 2021-03-15 Patrick Palka <ppalka@redhat.com>
5233 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
5235 (__max_size_type::operator++): Define.
5236 (__max_size_type::operator--): Likewise.
5237 (__max_size_type::operator<=>): Conditionally define (in place
5238 of the other comparison operators).
5239 (__max_diff_type::operator _Tp): Fix formatting.
5240 (__max_diff_type::operator++): Define.
5241 (__max_diff_type::operator--): Likewise.
5242 (__max_diff_type::operator<=>): Conditionally define (in place
5243 of the other comparison operators).
5244 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
5245 these operator overloads.
5247 2021-03-15 Caroline Tice <cmtice@google.com>
5250 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
5251 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
5252 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
5254 * src/Makefile.in: Regenerate.
5256 2021-03-11 Patrick Palka <ppalka@redhat.com>
5258 * src/c++17/floating_to_chars.cc: Simplify the file as if
5259 __SIZEOF_INT128__ is always defined.
5260 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
5261 a base-10 to_chars overload for the uint128_t class type.
5262 * src/c++17/uint128_t.h: New file.
5263 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
5264 execution FAIL on targets that have a large long double type
5267 2021-03-11 Patrick Palka <ppalka@redhat.com>
5269 * src/c++17/ryu/LOCAL_PATCHES: Update.
5270 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
5271 * src/c++17/ryu/generic_128.h: Likewise.
5272 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
5273 Use uint128_t instead of __uint128_t.
5274 (generic_binary_to_decimal): Likewise.
5276 2021-03-11 Patrick Palka <ppalka@redhat.com>
5278 * src/c++17/ryu/LOCAL_PATCHES: New file.
5280 2021-03-11 Patrick Palka <ppalka@redhat.com>
5282 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
5283 defined alias of unsigned __int128.
5284 (floating_type_traits_binary128::mantissa_t): Use uint128_t
5285 instead of unsigned __int128.
5286 (floating_type_traits<long double>::mantissa_t)
5287 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
5288 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
5289 and uint32_t explicit. Simplify the extraction of mantissa,
5290 exponent and sign bit.
5292 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5294 * include/std/barrier (barrier::arrival_token): New move-only
5295 class that encapsulates the underlying token value.
5297 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5299 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
5300 instead of unqualified() method.
5302 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5305 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
5306 Use acq_rel memory ordering.
5308 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5311 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
5312 helper function to check for permission denied errors.
5313 * src/filesystem/dir.cc (recursive_directory_iterator):
5315 * src/filesystem/dir-common.h (is_permission_denied_error): New
5318 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5321 * include/bits/random.h (normal_distribution): Use
5322 default-initializer for _M_saved and _M_saved_available.
5324 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
5326 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
5327 link with libatomic.
5328 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5329 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5330 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5331 * testsuite/30_threads/barrier/arrive.cc: Likewise.
5332 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5333 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5334 * testsuite/30_threads/barrier/completion.cc: Likewise.
5335 * testsuite/30_threads/latch/3.cc: Likewise.
5336 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
5337 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
5338 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5340 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5343 * include/bits/align.h: Include debug/assertions.h.
5344 * include/bits/codecvt.h: Include bits/c++config.h.
5345 * include/bits/enable_special_members.h: Likewise.
5346 * include/bits/erase_if.h: Likewise.
5347 * include/bits/functional_hash.h: Include <type_traits>.
5348 * include/bits/invoke.h: Include bits/move.h.
5349 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
5350 * include/bits/parse_numbers.h: Include <type_traits>.
5351 * include/bits/predefined_ops.h: Include bits/c++config.h.
5352 * include/bits/range_access.h: Include bits/stl_iterator.h.
5353 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
5354 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
5355 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
5356 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
5357 * include/bits/unique_lock.h: Include bits/std_mutex.h.
5358 * include/debug/assertions.h: Include bits/c++config.h.
5360 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5362 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
5363 (ranges::equal_to, ranges::not_equal_to): Do not constrain
5364 with __eq_builtin_ptr_cmp.
5365 (ranges::less, ranges::greater, ranges::less_equal)
5366 (ranges::greater_equal): Do not constrain with
5367 __less_builtin_ptr_cmp.
5368 * libsupc++/compare (compare_three_way): Do not constrain with
5369 __3way_builtin_ptr_cmp.
5370 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
5371 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
5372 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
5374 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5376 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
5377 C++20 calendar types.
5379 2021-03-06 Jakub Jelinek <jakub@redhat.com>
5382 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
5383 two _Nd which the compiler can pattern match the rotates.
5385 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
5388 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
5389 Make storage larger than required. Verify no write to the last
5391 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
5394 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5396 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5397 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5399 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5400 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5403 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5405 * include/experimental/bits/simd.h: Replace reserved _X, _B by
5407 * include/experimental/bits/simd_builtin.h: Likewise.
5408 * include/experimental/bits/simd_x86.h: Likewise.
5410 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
5413 * include/std/chrono (year_month_day::_M_days_since_epoch()):
5414 Convert chrono::month and chrono::day to unsigned before
5415 converting to uint32_t.
5417 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5419 * include/std/chrono (year_month_day::_S_from_days): Perform
5420 all calculations with type uint32_t.
5422 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5424 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
5425 * doc/html/manual/abi.html: Regenerate.
5427 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5430 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
5431 FILE instead of FILE.
5433 2021-02-25 Andreas Schwab <schwab@suse.de>
5435 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5436 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
5437 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5438 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5440 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5443 * include/std/chrono (year_month_day::_S_from_days): Cast long
5446 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5448 * include/std/utility (to_underlying): Define.
5449 * include/std/version (__cpp_lib_to_underlying): Define.
5450 * testsuite/20_util/to_underlying/1.cc: New test.
5451 * testsuite/20_util/to_underlying/version.cc: New test.
5453 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5456 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
5457 before value to be printed.
5459 2021-02-24 Patrick Palka <ppalka@redhat.com>
5461 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
5462 Relax the condition that guards the printf code path to accept
5463 F128_type as well as long double.
5465 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5467 * include/std/chrono (year_month_day_last:day): New
5470 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5472 * include/std/chrono (year::is_leap): New implementation.
5473 * testsuite/std/time/year/2.cc: New test.
5475 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5477 * include/std/chrono (year_month_day::_M_days_since_epoch):
5479 * testsuite/std/time/year_month_day/4.cc: New test.
5481 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5483 * include/std/chrono (year_month_day::_S_from_days): New
5485 * testsuite/std/time/year_month_day/3.cc: New test.
5487 2021-02-24 Patrick Palka <ppalka@redhat.com>
5490 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
5491 (test01): Simplify verifying the nearby values by using a
5492 2-iteration loop and a dedicated output buffer to check that the
5493 nearby values are different. Factor out the printf-based
5494 verification into a local function, and check that the leading
5495 hex digits agree before comparing to the output of printf. Also
5496 verify the output by round-tripping it through from_chars.
5498 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5501 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
5502 symbols for long double arguments mangled as 'g'.
5503 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
5504 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
5505 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
5506 Use -mabi=ibmlongdouble for floating_to_chars.cc.
5507 * src/c++17/Makefile.in: Regenerate.
5508 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
5509 New type defining type traits of IEEE binary128 format.
5510 (floating_type_traits<__float128>): Define specialization.
5511 (floating_type_traits<long double>): Define in terms of
5512 floating_type_traits_binary128 when appropriate.
5513 (floating_to_shortest_scientific): Handle __float128.
5514 (sprintf_ld): New function template for printing a long double
5515 or __ieee128 value using sprintf.
5516 (__floating_to_chars_shortest, __floating_to_chars_precision):
5518 (to_chars): Define overloads for __float128.
5520 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5522 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
5524 2021-02-23 Martin Sebor <msebor@redhat.com>
5527 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
5528 first argument is null.
5530 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5533 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
5536 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5539 * include/bits/char_traits.h (char_traits<char>::compare): For
5540 constexpr evaluation don't call
5541 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
5544 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5547 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
5549 2021-02-23 Patrick Palka <ppalka@redhat.com>
5552 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
5553 the high- and low-order parts from an IBM long double value
5554 in an endian-agnostic way.
5556 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
5558 * include/bits/atomic_wait.h (__thread_relax()): Call
5559 __thread_yield() not __gthread_yield().
5561 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
5563 * include/bits/atomic_wait.h (__thread_yield()): Check
5564 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
5565 (__thread_relax()): Use __thread_yield() instead of repeating
5566 the preprocessor checks for __gthread_yield.
5568 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
5570 * include/std/mutex (once_flag::_M_activate()): Add explicit
5571 return statement for passive case.
5572 (once_flag::_M_finish(bool)): Use reserved name for parameter.
5574 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
5577 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
5579 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5582 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
5584 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5586 * doc/xml/manual/status_cxx2014.xml: Document implementation
5587 specific properties of std::experimental::filesystem::rename.
5588 * doc/xml/manual/status_cxx2017.xml: Document implementation
5589 specific properties of std::filesystem::rename.
5590 * doc/html/*: Regenerate.
5591 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
5592 for directories on Windows.
5593 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
5594 MoveFileExW on Windows.
5595 * testsuite/27_io/filesystem/operations/rename.cc: New test.
5596 * testsuite/experimental/filesystem/operations/rename.cc: New test.
5598 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5600 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
5601 random number to the path.
5603 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5605 * include/experimental/internet (address_v6::to_string): Include
5607 * testsuite/experimental/net/internet/address/v6/members.cc:
5608 Test to_string() results.
5610 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5612 * include/experimental/internet (address_v6::any): Avoid using
5613 memcpy in constexpr function.
5614 (address_v6::loopback): Likewise.
5615 (make_address_v6): Fix missing return statements on error paths.
5616 * include/experimental/io_context: Avoid -Wdangling-else
5618 * testsuite/experimental/net/internet/address/v4/members.cc:
5619 Remove unused variables.
5620 * testsuite/experimental/net/internet/address/v6/members.cc:
5623 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5625 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
5626 Add unused attribute to parameter.
5627 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
5630 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5632 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
5633 if -fno-rtti is used.
5634 * testsuite/30_threads/async/forced_unwind.cc: Expect test
5635 to abort if -fno-rtti is used.
5637 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5639 * testsuite/util/testsuite_allocator.h (memory_resource):
5640 Remove requirement for RTTI and exceptions to be enabled.
5642 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5644 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
5645 static_cast when RTTI is disabled.
5646 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
5648 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
5650 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
5652 * testsuite/27_io/basic_stringstream/str/char/2.cc:
5654 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
5657 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5659 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
5660 as unused and only use dynamic_cast when RTTI is enabled.
5662 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5665 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
5666 Change int parameter to error_code, to match std::ios_failure.
5667 (__throw_ios_failure(const char*, int)): Construct error_code
5670 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
5672 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
5674 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
5675 macro instead of _GLIBCXX_EH_PTR_COMPAT.
5676 (operator==): Likewise.
5678 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
5681 * doc/xml/manual/status_cxx2011.xml: Document when support
5683 * doc/xml/manual/status_cxx2014.xml: Likewise.
5684 * doc/xml/manual/status_cxx2017.xml: Likewise.
5685 * doc/html/manual/status.html: Regenerate.
5687 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5690 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
5692 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5694 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
5695 (fs::remove): Use std::system_category() for error codes from
5697 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
5700 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5702 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
5703 in __MINGW32__ macro name.
5704 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
5705 * testsuite/27_io/filesystem/path/generation/proximate.cc:
5707 * testsuite/27_io/filesystem/path/generation/relative.cc:
5709 * testsuite/util/testsuite_fs.h: Likewise.
5711 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
5713 * include/bits/stl_tree.h
5714 (__has_is_transparent, __has_is_transparent_t): Move...
5715 * include/bits/stl_function.h: ...here.
5716 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
5717 (_Hashtable_base<>::_M_equals_tr): New.
5718 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
5719 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
5720 heterogeneous lookup.
5721 (_Hashtable<>::_M_find_before_node_tr): New.
5722 (_Hashtable<>::_M_find_node_tr): New.
5723 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
5724 unordered_map::contains<>, unordered_map::equal_range<>): New member function
5725 templates to perform heterogeneous lookup.
5726 (unordered_multimap::find<>, unordered_multimap::count<>,
5727 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
5728 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
5729 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
5730 (unordered_multiset::find<>, unordered_multiset::count<>,
5731 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
5732 * include/debug/unordered_map
5733 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
5734 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
5735 * include/debug/unordered_set
5736 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
5737 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
5738 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
5739 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
5740 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
5741 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
5743 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
5745 * include/bits/stl_deque.h
5746 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
5747 a null pointer test.
5749 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
5751 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
5752 test directory after making it writable again.
5753 * testsuite/experimental/filesystem/operations/remove_all.cc:
5756 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
5759 * include/std/coroutine (coroutine_handle<P>::from_address): Add
5762 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
5764 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
5765 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
5767 2021-02-09 Jakub Jelinek <jakub@redhat.com>
5770 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
5771 points to the characters moved by earlier _S_move, compute the source
5772 address using expression based on the __p pointer rather than __s
5775 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
5777 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
5778 Add comparison with same category and different values.
5779 * testsuite/19_diagnostics/error_code/operators/less.cc:
5780 Likewise. Fix comparison involving different categories.
5781 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
5783 * testsuite/19_diagnostics/error_condition/operators/less.cc:
5785 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
5788 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
5790 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
5791 calls with a single vaddv for aarch64.
5793 2021-02-03 Matthias Kretz <kretz@kde.org>
5795 * testsuite/Makefile.am: Warn about the workaround. Add
5796 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
5797 Improve initial user feedback from make check-simd.
5798 * testsuite/Makefile.in: Regenerated.
5800 2021-02-03 Matthias Kretz <kretz@kde.org>
5802 * include/experimental/bits/simd.h: Add __detail::_Minimum and
5803 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
5804 Add hmin and hmax overloads for simd and const_where_expression.
5805 * include/experimental/bits/simd_scalar.h
5806 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
5807 parameter const-ref to allow calling _S_reduce with an rvalue.
5808 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
5809 hmin and hmax. Since the compiler statically determined that all
5810 tests pass, repeat the test after a call to make_value_unknown.
5812 2021-02-03 Matthias Kretz <kretz@kde.org>
5814 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
5815 instruction pointer data member. Ensure that the `if (m_failed)`
5816 branch is always inlined into the calling code. The body of the
5817 conditional can still be a function call. Move the get_ip call
5818 into the verify ctor to simplify the ctor calls.
5819 (COMPARE): Don't mention the use of all_of for reduction of a
5820 simd_mask. It only distracts from the real issue.
5822 2021-02-03 Matthias Kretz <kretz@kde.org>
5824 * testsuite/experimental/simd/driver.sh: Abstract reading test
5825 options into read_src_option function. Read skip, only,
5826 expensive, and xfail via read_src_option. Add timeout and
5827 timeout-factor options and adjust timeout variable accordingly.
5828 * testsuite/experimental/simd/tests/loadstore.cc: Set
5831 2021-02-03 Matthias Kretz <kretz@kde.org>
5833 * testsuite/experimental/simd/driver.sh: When handling the pipe
5834 to log (and on verbose to stdout) count the lines. If it exceeds
5835 1000 log the issue and exit 125, which is then handled as a
5838 2021-02-03 Matthias Kretz <kretz@kde.org>
5840 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
5841 markup for long double on powerpc64*.
5843 2021-02-03 Matthias Kretz <kretz@kde.org>
5845 * include/experimental/bits/simd.h: Add __have_power10vec
5846 conditional on _ARCH_PWR10.
5847 * include/experimental/bits/simd_builtin.h: Forward declare
5848 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
5850 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
5851 _SuperImpl for optimizations and correctness.
5852 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
5853 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
5854 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
5855 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
5857 2021-02-03 Matthias Kretz <kretz@kde.org>
5859 * testsuite/experimental/simd/driver.sh: Remove executable on
5860 SIGINT. Process compiler and test executable output: In verbose
5861 mode print messages immediately, limited to 1000 lines and
5862 breaking long lines to below $COLUMNS (or 1024 if not set).
5863 Communicating the exit status of the compiler / test with the
5864 necessary pipe is done via a message through stdout/-in.
5866 2021-02-03 Matthias Kretz <kretz@kde.org>
5868 * testsuite/Makefile.am: Ensure .simd.summary is empty before
5869 collecting a new summary.
5870 * testsuite/Makefile.in: Regenerate.
5872 2021-02-03 Matthias Kretz <kretz@kde.org>
5874 * testsuite/experimental/simd/generate_makefile.sh: Use
5875 different variables internally than documented for user
5876 overrides. This makes internal append/prepend work as intended.
5878 2021-02-03 Matthias Kretz <kretz@kde.org>
5880 * testsuite/experimental/simd/driver.sh (verify_test): Print
5881 test output on run xfail. Do not repeat lines from the log that
5882 were already printed on stdout.
5883 (test_selector): Make the compiler flags pattern usable as a
5885 (toplevel): Trap on SIGINT and remove the log and sum files.
5886 Call timout with --foreground to quickly terminate on SIGINT.
5887 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
5888 targets via target patterns. Default DRIVEROPTS to -v for run
5889 targets. Remove log and sum files after completion of the run
5890 target (so that it's always recompiled).
5891 Place help text into text file for reasonable 'make help'
5894 2021-02-03 Matthias Kretz <kretz@kde.org>
5896 * include/experimental/bits/simd.h: Remove unnecessary static
5897 assertion. Allow sizeof(8) integer __intrinsic_type to enable
5898 the necessary mask type.
5900 2021-02-03 Matthias Kretz <kretz@kde.org>
5902 * include/experimental/bits/simd.h: Let __intrinsic_type<long
5903 double, N> be valid if sizeof(long double) == sizeof(double) and
5904 use a __vector double as member type.
5906 2021-02-03 Matthias Kretz <kretz@kde.org>
5908 * include/experimental/bits/simd.h (__is_intrinsic_type): New
5909 internal type trait. Alias for __is_vector_type on x86.
5910 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
5912 (__intrin_bitcast): Allow casting to & from vector & intrinsic
5914 (__intrinsic_type): Explicitly specialize for NEON intrinsic
5917 2021-02-03 Matthias Kretz <kretz@kde.org>
5919 * testsuite/experimental/simd/driver.sh: Implement skip, only,
5920 expensive, and xfail markers. They can select on type, ABI tag
5921 subset number, target-triplet, and compiler flags.
5922 * testsuite/experimental/simd/generate_makefile.sh: The summary
5923 now includes lines for unexpected passes and expected failures.
5924 If the skip or only markers are only conditional on the type, do
5925 not generate rules for those types.
5926 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
5927 for ABI tag subsets 1-9.
5928 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
5929 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
5930 * testsuite/experimental/simd/tests/casts.cc: Ditto.
5931 * testsuite/experimental/simd/tests/generator.cc: Ditto.
5932 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
5933 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
5934 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
5935 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
5936 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
5937 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
5938 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
5939 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
5940 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
5941 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
5942 * testsuite/experimental/simd/tests/operators.cc: Ditto.
5943 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
5944 * testsuite/experimental/simd/tests/simd.cc: Ditto.
5945 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
5946 * testsuite/experimental/simd/tests/splits.cc: Ditto.
5947 * testsuite/experimental/simd/tests/where.cc: Ditto.
5948 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
5949 addition replace "test only floattypes" marker by unconditional
5950 "float|double|ldouble" only marker.
5951 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
5952 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
5953 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5955 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
5956 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
5957 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
5958 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
5959 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
5960 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
5961 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
5962 addition, xfail on run because the reference data is missing.
5964 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
5966 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
5967 * doc/xml/manual/status_cxx2014.xml: Likewise.
5968 * doc/xml/manual/status_cxx2017.xml: Likewise.
5969 * doc/html/manual/status.html: Regenerate.
5971 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
5974 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
5975 Return 0 if both iterators are value-initialized.
5976 * testsuite/23_containers/deque/70303.cc: New test.
5977 * testsuite/23_containers/vector/70303.cc: New test.
5979 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
5981 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
5983 * doc/xml/manual/status_cxx2014.xml: Likewise.
5984 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
5985 std::from_chars and std::to_chars status. Fix formatting.
5986 * doc/html/manual/status.html: Regenerate.
5988 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
5990 * include/experimental/bits/numeric_traits.h: Update copyright
5992 * include/experimental/bits/simd.h: Likewise.
5993 * include/experimental/bits/simd_builtin.h: Likewise.
5994 * include/experimental/bits/simd_converter.h: Likewise.
5995 * include/experimental/bits/simd_detail.h: Likewise.
5996 * include/experimental/bits/simd_fixed_size.h: Likewise.
5997 * include/experimental/bits/simd_math.h: Likewise.
5998 * include/experimental/bits/simd_neon.h: Likewise.
5999 * include/experimental/bits/simd_ppc.h: Likewise.
6000 * include/experimental/bits/simd_scalar.h: Likewise.
6001 * include/experimental/bits/simd_x86.h: Likewise.
6002 * include/experimental/bits/simd_x86_conversions.h: Likewise.
6003 * include/experimental/simd: Likewise.
6004 * testsuite/experimental/simd/*: Likewise.
6006 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6008 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
6009 * doc/html/*: Regenerate.
6011 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6013 * testsuite/experimental/simd/generate_makefile.sh: Use printf
6014 instead of echo when printing escape characters.
6016 2021-01-27 Matthias Kretz <kretz@kde.org>
6018 * scripts/check_simd: New file. This script is called from the
6019 the check-simd target. It determines a set of compiler flags and
6020 simulator setups for calling generate_makefile.sh and passes the
6021 information back to the check-simd target, which recurses to the
6022 generated Makefiles.
6023 * scripts/create_testsuite_files: Remove files below simd/tests/
6024 from testsuite_files and place them in testsuite_files_simd.
6025 * testsuite/Makefile.am: Add testsuite_files_simd. Add
6027 * testsuite/Makefile.in: Regenerate.
6028 * testsuite/experimental/simd/driver.sh: New file. This script
6029 compiles and runs a given simd test, logging its output and
6030 status. It uses the timeout command to implement compile and
6032 * testsuite/experimental/simd/generate_makefile.sh: New file.
6033 This script generates a Makefile which uses driver.sh to compile
6034 and run the tests and collect the logs into a single log file.
6035 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
6037 * testsuite/experimental/simd/tests/algorithms.cc: New file.
6038 Tests min/max(simd, simd).
6039 * testsuite/experimental/simd/tests/bits/conversions.h: New
6040 file. Contains functions to support tests involving conversions.
6041 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
6042 Support functions make_mask and make_vec.
6043 * testsuite/experimental/simd/tests/bits/mathreference.h: New
6044 file. Support functions to supply precomputed math function
6046 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
6047 file. Support code for SFINAE testing.
6048 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
6049 * testsuite/experimental/simd/tests/bits/test_values.h: New
6050 file. Test functions to easily drive a test with simd objects
6051 initialized from a given list of values and a range of random
6053 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
6054 Support code to determine the ULP distance of simd objects.
6055 * testsuite/experimental/simd/tests/bits/verify.h: New file.
6056 Test framework for COMPARE'ing simd objects and instantiating
6057 the test templates with value_type and ABI tag.
6058 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
6060 * testsuite/experimental/simd/tests/casts.cc: New file. Test
6062 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
6063 Test floating-point classification functions.
6064 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
6066 * testsuite/experimental/simd/tests/generator.cc: New file. Test
6067 simd generator constructor.
6068 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
6069 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
6070 * testsuite/experimental/simd/tests/integer_operators.cc: New
6071 file. Test integer operators.
6072 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6073 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
6075 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
6076 (converting) simd loads and stores.
6077 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
6079 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
6080 Test simd_mask broadcasts.
6081 * testsuite/experimental/simd/tests/mask_conversions.cc: New
6082 file. Test simd_mask conversions.
6083 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
6084 file. Test simd_mask implicit conversions.
6085 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
6086 Test simd_mask loads and stores.
6087 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
6088 file. Test simd_mask operators convert as specified.
6089 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
6090 Test simd_mask compares, subscripts, and negation.
6091 * testsuite/experimental/simd/tests/mask_reductions.cc: New
6092 file. Test simd_mask reductions.
6093 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
6094 1-arg math functions on simd.
6095 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
6096 2-arg math functions on simd.
6097 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
6098 Test implicit conversions on simd binary operators behave as
6100 * testsuite/experimental/simd/tests/operators.cc: New file. Test
6101 simd compares, subscripts, not, unary minus, plus, minus,
6102 multiplies, divides, increment, and decrement.
6103 * testsuite/experimental/simd/tests/reductions.cc: New file.
6105 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
6107 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
6108 sanity checks of simd types.
6109 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
6110 sin(simd) and cos(simd).
6111 * testsuite/experimental/simd/tests/split_concat.cc: New file.
6112 Test split(simd) and concat(simd, simd).
6113 * testsuite/experimental/simd/tests/splits.cc: New file. Test
6115 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
6116 Test remaining trigonometric functions on simd.
6117 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
6118 file. Test trunc(simd), ceil(simd), and floor(simd).
6119 * testsuite/experimental/simd/tests/where.cc: New file. Test
6120 masked operations using where.
6122 2021-01-27 Matthias Kretz <kretz@kde.org>
6124 * doc/xml/manual/status_cxx2017.xml: Add implementation status
6125 of the Parallelism TS 2. Document implementation-defined types
6127 * include/Makefile.am: Add new headers.
6128 * include/Makefile.in: Regenerate.
6129 * include/experimental/simd: New file. New header for
6131 * include/experimental/bits/numeric_traits.h: New file.
6132 Implementation of P1841R1 using internal naming. Addition of
6133 missing IEC559 functionality query.
6134 * include/experimental/bits/simd.h: New file. Definition of the
6135 public simd interfaces and general implementation helpers.
6136 * include/experimental/bits/simd_builtin.h: New file.
6137 Implementation of the _VecBuiltin simd_abi.
6138 * include/experimental/bits/simd_converter.h: New file. Generic
6140 * include/experimental/bits/simd_detail.h: New file. Internal
6141 macros for the simd implementation.
6142 * include/experimental/bits/simd_fixed_size.h: New file. Simd
6143 fixed_size ABI specific implementations.
6144 * include/experimental/bits/simd_math.h: New file. Math
6146 * include/experimental/bits/simd_neon.h: New file. Simd NEON
6147 specific implementations.
6148 * include/experimental/bits/simd_ppc.h: New file. Implement bit
6149 shifts to avoid invalid results for integral types smaller than
6151 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
6152 ABI specific implementations.
6153 * include/experimental/bits/simd_x86.h: New file. Simd x86
6154 specific implementations.
6155 * include/experimental/bits/simd_x86_conversions.h: New file.
6156 x86 specific conversion optimizations. The conversion patterns
6157 work around missing conversion patterns in the compiler and
6158 should be removed as soon as PR85048 is resolved.
6159 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
6160 Test that all (not all fixed_size<N>, though) standard simd and
6161 simd_mask types are usable.
6162 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
6163 file. As above but with -ffast-math.
6164 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
6165 from the standard test loop. Instead use
6166 check_vect_support_and_set_flags to build simd tests with the
6167 relevant machine flags.
6169 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6172 * include/bits/string_view.tcc
6173 (basic_string_view::find(const CharT*, size_type, size_type)):
6176 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
6178 * include/bits/basic_string.h (basic_string::contains): New
6180 * include/std/string_view (basic_string_view::contains):
6182 * include/std/version (__cpp_lib_string_contains): Define.
6183 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
6184 Remove trailing whitespace.
6185 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
6187 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
6188 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
6189 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
6190 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
6191 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
6193 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
6195 * src/c++17/Makefile.in: Regenerate.
6197 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
6199 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
6200 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
6202 (const char* ctype<char>:: is): Same.
6204 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
6207 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
6208 write to a wide character stream if wide character support is
6209 disabled in the library.
6211 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
6213 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
6214 stringbuf not wstringbuf.
6216 2021-01-18 Jakub Jelinek <jakub@redhat.com>
6219 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
6220 Compile with -gno-as-loc-support.
6221 * src/c++11/Makefile.in: Regenerated.
6223 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
6225 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
6226 Add -fcf-protection=none to -march=i486.
6228 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
6230 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
6233 2021-01-14 Alexandre Oliva <oliva@adacore.com>
6235 * testsuite/30_threads/future/members/poll.cc: Calibrate
6238 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
6241 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
6242 (_Node_iterator()): Make default.
6243 (_Node_const_iterator()): Make default.
6244 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
6246 * include/debug/safe_iterator.h
6247 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
6248 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
6250 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
6251 _M_singular checks on input iterators.
6252 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
6254 * testsuite/23_containers/deque/debug/98466.cc: New test.
6255 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
6257 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
6260 * include/bits/fs_path.h (__throw_conversion_error): New
6261 function to throw or abort on character conversion errors.
6262 (__wstr_from_utf8): Move definition after filesystem_error has
6263 been defined. Use __throw_conversion_error.
6264 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
6265 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
6266 (path::u8string): Likewise.
6268 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
6270 * include/std/barrier: Update copyright years. Fix whitespace.
6271 * include/std/version: Fix whitespace.
6272 * testsuite/30_threads/barrier/1.cc: Update copyright years.
6273 * testsuite/30_threads/barrier/2.cc: Likewise.
6274 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6275 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6276 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6277 * testsuite/30_threads/barrier/completion.cc: Likewise.
6279 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
6281 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
6283 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
6286 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
6288 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
6290 2021-01-08 Olivier Hainque <hainque@adacore.com>
6292 * testsuite/20_util/bind/ref_neg.cc: Tweak the
6293 dg-prune-output regex for out-of-build-tree contexts.
6295 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
6297 * doc/doxygen/user.cfg.in: Add new header.
6298 * include/Makefile.am (std_headers): likewise.
6299 * include/Makefile.in: Regenerate.
6300 * include/precompiled/stdc++.h: Add new header.
6301 * include/std/barrier: New file.
6302 * include/std/version: Add __cpp_lib_barrier feature test macro.
6303 * testsuite/30_threads/barrier/1.cc: New test.
6304 * testsuite/30_threads/barrier/2.cc: Likewise.
6305 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6306 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6307 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6308 * testsuite/30_threads/barrier/completion.cc: Likewise.
6310 2021-01-07 Patrick Palka <ppalka@redhat.com>
6313 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
6314 instead of the non-standard nextupl and nextdownl.
6316 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
6318 * configure: Re-generate.
6320 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
6322 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
6324 2021-01-01 Jakub Jelinek <jakub@redhat.com>
6326 * ChangeLog-2020: Rotate ChangeLog. New file.
6329 Copyright (C) 2021 Free Software Foundation, Inc.
6331 Copying and distribution of this file, with or without modification,
6332 are permitted in any medium without royalty provided the copyright
6333 notice and this notice are preserved.