1 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/regex.h (basic_regex::multiline): Fix #if
6 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
8 * include/bits/regex.h (basic_regex::multiline): Define constant
10 * include/bits/regex_constants.h (regex_constants::multiline):
11 Define constant for C++17.
12 (regex_constants::__multiline): Define duplicate constant for
13 internal use in C++11 and C++14.
14 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
16 (_Executor::_M_is_line_terminator(_CharT)): New member function.
17 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
18 member functions to support multiline matches.
19 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
21 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
23 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
25 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
26 _S_validate to check flags.
27 * include/bits/regex_error.h (_S_grammar): New error code for
29 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
31 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
34 * include/bits/regex_error.h (regex_constants::_S_null): New
35 error code for internal use.
36 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
37 Check for null character.
38 * testsuite/28_regex/basic_regex/84110.cc: New test.
40 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
42 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
43 here from <bits/regex_compiler.h>.
44 (basic_regex::_M_compile): New function to compile an NFA from
45 a regular expression string.
46 (basic_regex::basic_regex): Use _M_compile instead of delegating
47 to other constructors.
48 (basic_regex::operator=(const basic_regex&)): Define as
50 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
51 (basic_regex::assign(const basic_regex&)): Use copy assignment.
52 (basic_regex::assign(basic_regex&&)): Use move assignment.
53 (basic_regex::assign(const C*, flag_type)): Use _M_compile
54 instead of constructing a temporary string.
55 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
56 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
57 Use _M_compile instead of constructing a temporary basic_regex.
58 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
59 constructing a temporary string for contiguous iterators of the
61 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
63 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
64 (__compile_nfa): Remove.
65 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
67 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
69 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
71 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
72 Return false for ETIMEDOUT and true otherwise.
74 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
76 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
77 to also match message with '__8' in it.
79 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
81 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
82 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
83 * include/bits/regex_compiler.tcc: Likewise.
84 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
85 * include/bits/regex_scanner.tcc: Likewise.
87 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
89 * include/bits/regex_compiler.tcc: Add line break in empty while
91 * include/bits/regex_executor.tcc: Avoid unused parameter
94 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
96 * include/bits/regex.h (basic_regex, swap): Add noexcept to
97 non-throwing functions.
98 * include/bits/regex_automaton.h (_State_base, _State)
99 (_NFA_base): Likewise.
100 * include/bits/regex_compiler.h (_Compiler): Likewise.
101 * include/bits/regex_error.h (regex_error::code()): Likewise.
102 * include/bits/regex_scanner.h (_Scanner): Likewise.
104 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
106 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
107 Define before first attempt to check it.
109 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
111 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
112 Do not check non-default constructible sequences when
113 _GLIBCXX_CONCEPT_CHECKS is defined.
114 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
116 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
118 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
120 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
122 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
125 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
127 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
128 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
130 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
132 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
134 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
136 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
138 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
140 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
142 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
144 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
146 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
148 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
150 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
152 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
154 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
156 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
158 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
160 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
162 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
165 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
167 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
168 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
169 Check result types of iterator operations.
170 (_Mutable_ForwardIteratorConcept): Check that iterator's
171 reference type is a reference to its value type.
172 (_Mutable_BidirectionalIteratorConcept): Do not require the
173 value type to be assignable.
174 (_Mutable_RandomAccessIteratorConcept): Likewise.
175 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
178 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
180 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
181 for type used as an iterator.
182 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
184 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
186 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
187 comparison function for priority_queue of type with no
188 relational operators.
189 * testsuite/20_util/is_swappable/value.h: Likewise.
190 * testsuite/24_iterators/output/concept.cc: Add operator< to
193 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
195 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
196 Use a function to preserve value category of the type.
197 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
198 reference as the second argument for _OutputIteratorConcept.
199 (copy_backward, move_backward): Use _OutputIteratorConcept
200 instead of _ConvertibleConcept.
202 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
204 * include/bits/stl_iterator.h (pointer_traits): Define partial
205 specialization for __normal_iterator.
206 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
208 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
210 * include/bits/move.h (forward(remove_reference_t<T>&&)):
211 Improve text of static_assert.
212 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
213 * testsuite/20_util/forward/f_neg.cc: Likewise.
215 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
218 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
219 to declarations, to match definitions.
221 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
223 * include/bits/range_access.h (cbegin, cend): Remove redundant
226 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
228 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
229 Remove dg-error lines for C++20-only errors.
231 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
233 * testsuite/19_diagnostics/headers/system_error/93151.cc:
236 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
238 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
239 Map Windows error codes to generic POSIX error numbers. Use
240 FormatMessage instead of strerror.
241 * testsuite/19_diagnostics/error_category/system_category.cc:
242 Adjust for new behaviour on Windows.
244 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
246 * src/c++11/system_error.cc (generic_error_category): Define
247 class and virtual functions as 'final'.
248 (generic_error_category::equivalent(int, const error_condition&)):
250 (system_error_category): Define class and virtual functions as
252 (system_error_category::equivalent(int, const error_condition&)):
254 (generic_category_instance, system_category_instance): Use
255 constinit union to make the objects immortal.
257 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
260 * src/c++11/system_error.cc
261 (system_error_category::default_error_condition): Add 0 to
263 * testsuite/19_diagnostics/error_category/102425.cc: New test.
265 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
267 * include/bits/fs_path.h (path::iterator): Add noexcept to all
268 member functions and friend functions.
269 (distance): Add noexcept.
270 (advance): Add noexcept and inline.
271 * include/experimental/bits/fs_path.h (path::iterator):
272 Add noexcept to all member functions.
274 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
277 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
278 missed in previous patch.
279 * testsuite/20_util/tuple/cons/102270.C: Moved to...
280 * testsuite/20_util/tuple/cons/102270.cc: ...here.
281 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
282 constexpr to constructor so it can be used for C++20 tests.
284 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
286 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
287 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
288 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
289 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
291 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
293 * src/Makefile.am (stamp-debug): Add all Makefiles as
295 * src/Makefile.in: Regenerate.
297 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
299 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
301 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
303 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
305 * doc/xml/manual/using.xml: Generalize to apply to more than
307 * doc/html/manual/using_macros.html: Regenerate.
309 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
311 * include/std/optional (nullptr_t): Make constructor noexcept.
313 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
315 * include/bits/fs_path.h (advance): Remove non-deducible
318 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
321 * include/std/tuple (_Head_base, _Tuple_impl): Add
322 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
323 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
324 * testsuite/20_util/tuple/cons/102270.C: New test.
326 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
329 * include/std/span (span(Range&&)): Add constraint to deduction
332 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
334 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
335 * src/c++98/Makefile.in: Regenerate.
337 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
339 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
340 (to_string): Add noexcept if the type width is 32 bits or less.
342 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
344 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
345 (__uniq_ptr_impl::_M_deleter): Add noexcept.
347 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
350 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
351 va and vb as arguments to wait/notify, remove unused bb local.
353 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
355 * crossconfig.m4: Check for TLS support on mingw.
356 * configure: Regenerate.
358 2021-09-13 Jason Merrill <jason@redhat.com>
360 * include/std/version: Define __cpp_lib_hardware_interference_size.
361 * libsupc++/new: Define hardware interference size variables.
363 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
365 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
366 Fix invalid hostname to only match the .invalid TLD.
368 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
370 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
372 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
375 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
377 * include/std/atomic: Tweak whitespace.
379 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
382 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
383 New function to check if a memory order is valid for the failure
384 case of compare exchange operations.
385 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
386 by using __is_valid_cmpexch_failure_order.
387 (__atomic_base<I>::compare_exchange_strong): Likewise.
388 (__atomic_base<P*>::compare_exchange_weak): Likewise.
389 (__atomic_base<P*>::compare_exchange_strong): Likewise.
390 (__atomic_impl::compare_exchange_weak): Add assertion.
391 (__atomic_impl::compare_exchange_strong): Likewise.
392 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
393 (atomic::compare_exchange_strong): Likewise.
395 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
397 * include/std/functional (invoke_r): Define.
398 * include/std/version (__cpp_lib_invoke_r): Define.
399 * testsuite/20_util/function_objects/invoke/version.cc: Check
400 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
401 * testsuite/20_util/function_objects/invoke/4.cc: New test.
403 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
406 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
407 Add valid range checks.
408 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
409 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
411 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
413 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
414 * configure: Regenerate.
416 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
418 * src/c++11/system_error.cc (error_category::~error_category()):
419 Remove noexcept-specifier.
420 (system_error::~system_error()): Likewise.
421 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
422 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
424 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
427 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
428 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
430 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
432 * include/experimental/internet (__make_resolver_error_code):
433 Handle EAI_SYSTEM errors.
434 (basic_resolver_results): Use __make_resolver_error_code. Use
435 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
437 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
439 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
440 Try other service if "http" fails.
442 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
444 * testsuite/17_intro/names.cc: Undefine some more names used
445 by Solaris system headers.
447 2021-08-30 Jason Merrill <jason@redhat.com>
450 * testsuite/30_threads/promise/requirements/lwg3466.cc:
451 Remove dg-prune-outputs.
453 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
455 * include/bits/alloc_traits.h (allocator_traits): Add explicit
456 specialization for allocator<void>. Improve doxygen comments.
457 * include/bits/allocator.h (allocator<void>): Restore for the
459 (allocator<void>::construct, allocator<void>::destroy): Remove.
460 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
461 Add default constructor and converting constructor.
463 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
465 * include/bits/stl_uninitialized.h: Fix typo in comment.
467 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
470 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
471 to avoid unnecessary current_path() call.
473 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
475 * include/bits/std_function.h (function::function(F&&)): Give
476 name to defaulted template parameter, to improve diagnostics.
477 Use markdown for more doxygen comments.
479 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
481 * include/bits/std_function.h (function): Adjust doxygen
483 * include/bits/unique_ptr.h (make_unique_for_overwrite):
484 Change parameter name to match doxygen comment.
486 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
488 * include/bits/std_function.h (_function_base::_Base_manager):
489 Replace _M_init_functor with a function template using a
490 forwarding reference, and a pair of _M_create function
491 templates. Reuse _M_create for the clone operation.
492 (function::_Decay_t): New alias template.
493 (function::_Callable): Simplify by using _Decay.
494 (function::function(F)): Change parameter to forwarding
495 reference, as per LWG 2447. Add noexcept-specifier. Simplify
497 (function::operator=(F&&)): Add noexcept-specifier.
498 * testsuite/20_util/function/cons/lwg2774.cc: New test.
499 * testsuite/20_util/function/cons/noexcept.cc: New test.
501 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
503 * include/bits/std_function.h (function::function(F)): Add
504 static assertions to check constructibility requirements.
506 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
509 * configure.ac: Check for O_NONBLOCK.
510 * configure: Regenerate.
511 * include/experimental/internet: Include <ws2tcpip.h> for
512 Windows. Use preprocessor conditions around more constants.
513 * include/experimental/socket: Use preprocessor conditions
514 around more constants.
515 * testsuite/experimental/net/internet/resolver/base.cc: Only use
516 constants when the corresponding C macro is defined.
517 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
518 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
519 Make preprocessor checks more fine-grained.
521 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
523 * testsuite/17_intro/names.cc: Check 'sz'.
525 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
527 * testsuite/17_intro/names.cc: Adjust for Windows.
529 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
531 * include/std/valarray: Uglify 'func' parameters.
532 * testsuite/17_intro/names.cc: Add 'func' to checks.
534 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
537 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
538 Define macro to check conditions for optimizing trivial cases.
539 (__check_constructible): New function to do static assert.
540 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
542 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
543 Adjust dg-error pattern.
544 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
545 C++17-specific checks from 89164_c++17.cc.
546 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
547 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
549 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
551 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
553 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
556 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
559 * include/ext/rope (rope::erase(size_type)): Remove broken
562 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
564 * doc/xml/manual/status_cxx2020.xml: Update table.
565 * doc/html/manual/status.html: Regenerate.
567 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
569 * include/std/type_traits (is_layout_compatible): Define.
570 (is_corresponding_member): Define.
571 * include/std/version (__cpp_lib_is_layout_compatible): Define.
572 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
574 * testsuite/20_util/is_layout_compatible/value.cc: New test.
575 * testsuite/20_util/is_layout_compatible/version.cc: New test.
576 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
578 * testsuite/23_containers/span/layout_compat.cc: Do not use real
579 std::is_layout_compatible trait if available.
581 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
583 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
584 explicit instantiation definitions.
586 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
588 * include/std/ranges (basic_istream_view): Add default template
590 * testsuite/std/ranges/istream_view.cc: Check it.
592 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
594 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
597 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
600 * testsuite/util/testsuite_fs.h (permissions_are_testable):
603 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
606 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
607 Use new __gnu_test::permissions_are_testable() function.
608 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
610 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
611 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
612 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
613 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
614 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
615 * testsuite/27_io/filesystem/operations/symlink_status.cc:
617 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
619 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
621 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
623 * testsuite/experimental/filesystem/operations/exists.cc:
625 * testsuite/experimental/filesystem/operations/is_empty.cc:
627 * testsuite/experimental/filesystem/operations/remove.cc:
629 * testsuite/experimental/filesystem/operations/remove_all.cc:
631 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
633 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
634 New function to guess whether testing permissions will work.
636 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
638 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
639 * doc/html/manual/status.html: Regenerate.
641 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
643 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
645 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
648 * include/std/charconv (__to_chars_i): Remove redundant check.
650 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
653 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
654 class' move constructor. Define as defaulted for versioned
656 * testsuite/20_util/tuple/cons/101960.cc: New test.
658 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
661 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
662 * doc/html/manual/status.html: Regenerate.
664 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
666 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
667 * include/bits/unique_ptr.h: Add @headerfile tags.
669 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
671 * src/filesystem/ops-common.h (filesystem::file_time): Improve
672 overflow check by using system_clock::duration::max().
674 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
676 * include/bits/stl_tree.h: Tweak whitespace.
678 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
680 * include/bits/unique_ptr.h (default_delete): Add @since tag.
681 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
682 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
683 @param, and @returns.
684 (_MakeUniq): Move to __detail namespace. Add alias template
687 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
689 * include/bits/stl_function.h: Improve doxygen comments.
691 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
693 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
694 processing for C++20 components and components that depend on
696 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
697 * include/std/type_traits: Improve doxygen comments for C++20
700 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
702 * include/ext/type_traits.h (__promote_2, __promote_3)
703 (__promote_4): Redfine as alias templates using __promoted_t.
704 * include/std/complex (__promote_2): Remove partial
705 specializations for std::complex.
707 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
709 * include/bits/stl_algo.h (min(initializer_list<T>))
710 (min(initializer_list<T>, Compare)): Call __min_element directly to
711 avoid redundant debug checks for valid ranges.
712 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
713 Likewise, for __max_element.
714 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
715 Likewise, for __minmax_element.
717 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
719 * include/debug/deque (deque(size_type, const T&, const A&)):
720 Prevent class template argument deduction and replace with a
722 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
724 * include/debug/list (list(size_type, const T&, const A&)):
726 * include/debug/vector (vector(size_type, const T&, const A&)):
729 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
731 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
732 'std::vector<bool>::reference' as type name, not _Bit_reference.
733 (build_libstdcxx_dictionary): Register printers for vector<bool>
734 types in debug mode too.
735 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
736 output for invalid _Bit_reference. Use vector<bool>::reference
737 instead of _Bit_reference.
738 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
740 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
742 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
745 2021-08-17 Luc Michel <lmichel@kalray.eu>
746 Marc Poulhies <mpoulhies@kalrayinc.com>
748 * testsuite/lib/gdb-test.exp (gdb_version_check)
749 (gdb_version_check_xmethods): Only check the GDB version for
750 local native targets.
752 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
753 Jonathan Wakely <jwakely@redhat.com>
755 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
757 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
760 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
762 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
763 construction from input iterators.
765 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
767 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
769 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
772 * include/bits/std_function.h (function(function&&)): Check for
773 non-empty parameter before doing any work.
775 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
777 * include/bits/cow_string.h (basic_string::contains): Do not
778 define for -std=gnu++20.
780 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
782 * include/bits/ranges_util.h (__not_same_as): Rename to
784 * include/std/ranges (__not_same_as): Likewise.
786 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
788 * include/std/utility (exchange): Add noexcept-specifier.
789 * testsuite/20_util/exchange/noexcept.cc: New test.
791 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
793 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
794 (build_libstdcxx_dictionary): Register printer for
795 std::error_code and std::error_condition.
796 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
798 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
801 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
803 (print_word): Use qualified-id to access it.
805 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
807 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
808 Install another copy of the GDB hook.
809 * python/Makefile.in: Regenerate.
811 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
814 * include/c_global/cmath (hypot): Use __promoted_t.
815 (lerp): Add new overload accepting any arithmetic types.
816 * include/ext/type_traits.h (__promoted_t): New alias template.
817 * testsuite/26_numerics/lerp.cc: Moved to...
818 * testsuite/26_numerics/lerp/1.cc: ...here.
819 * testsuite/26_numerics/lerp/constexpr.cc: New test.
820 * testsuite/26_numerics/lerp/version.cc: New test.
822 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
824 * testsuite/26_numerics/lerp.cc: Add header name to #error.
825 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
826 * testsuite/26_numerics/midpoint/version.cc: New test.
828 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
830 * include/experimental/random (experimental::randint): Add
833 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
835 * src/c++98/locale_init.cc: Require C++11.
836 * src/c++98/localename.cc: Likewise.
837 * src/c++98/misc-inst.cc: Require C++98.
839 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
842 * testsuite/experimental/random/randint.cc: Loop and retry if
843 reseed() produces the same sequence.
845 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
847 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
848 (is_pointer_interconvertible_base_of_v)
849 (is_pointer_interconvertible_base_of): Define for C++20.
850 * include/std/version (__cpp_lib_is_pointer_interconvertible):
852 * testsuite/23_containers/span/layout_compat.cc: Use correct
853 feature test macro for std::is_layout_compatible_v.
854 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
855 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
857 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
859 * include/bits/regex.h (basic_regex::transform_primary): Use
860 _GLIBCXX_STD_C::vector for local variable.
861 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
862 _GLIBCXX_STD_C::vector base class of match_results.
863 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
864 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
866 * include/bits/regex_compiler.h (_BracketMatcher): Use
867 _GLIBCXX_STD_C::vector for data members.
868 * include/bits/regex_executor.h (_Executor): Likewise.
869 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
871 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
873 * include/debug/safe_container.h
874 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
875 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
876 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
878 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
880 * testsuite/23_containers/unordered_map/cons/default.cc: Add
881 equality comparison operators to allocator.
882 * testsuite/23_containers/unordered_set/cons/default.cc:
885 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
887 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
888 dg-prune-output reason with 'builtin_unreachable'.
889 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
890 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
891 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
892 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
893 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
894 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
895 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
896 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
898 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
900 * testsuite/std/ranges/iota/max_size_type.cc: Set
901 dg-timeout-factor to 4.
903 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
905 * libsupc++/compare (compare_three_way, strong_order)
906 (weak_order, partial_order, compare_strong_order_fallback)
907 (compare_weak_order_fallback, compare_partial_order_fallback):
908 Move nodiscard attributes to correct location.
910 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
913 * include/bits/ranges_base.h (ranges::begin, ranges::end)
914 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
915 (ranges::empty, ranges::data): Move attribute after the
916 declarator-id instead of at the end of the declarator.
917 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
918 Move attributes back to the start of the function declarator,
919 but move the requires-clause to the end.
920 (common_iterator): Move attribute after the declarator-id.
921 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
922 from friend declaration that are not definitions.
923 * include/std/ranges (views::all, views::filter)
924 (views::transform, views::take, views::take_while,
925 views::drop) (views::drop_while, views::join,
926 views::lazy_split) (views::split, views::counted,
927 views::common, views::reverse) (views::elements): Move
928 attributes after the declarator-id.
930 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
932 * libsupc++/compare (partial_ordering, weak_ordering)
933 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
934 (compare_three_way, strong_order, weak_order, partial_order)
935 (compare_strong_order_fallback, compare_weak_order_fallback)
936 (compare_partial_order_fallback, __detail::__synth3way): Add
938 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
939 -Wno-unused-result to options.
941 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
944 * include/bits/ranges_base.h (ranges::begin, ranges::end)
945 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
946 (ranges::empty, ranges::data): Move attribute to the end of
948 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
949 (common_iterator): Likewise for non-member operator functions.
950 * include/std/ranges (views::all, views::filter)
951 (views::transform, views::take, views::take_while, views::drop)
952 (views::drop_while, views::join, views::lazy_split)
953 (views::split, views::counted, views::common, views::reverse)
954 (views::elements): Likewise.
955 * testsuite/std/ranges/access/101782.cc: New test.
957 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
959 * include/bits/forward_list.h: Add [[nodiscard]] to functions
960 with no side-effects.
961 * include/bits/stl_bvector.h: Likewise.
962 * include/bits/stl_deque.h: Likewise.
963 * include/bits/stl_list.h: Likewise.
964 * include/bits/stl_queue.h: Likewise.
965 * include/bits/stl_stack.h: Likewise.
966 * include/bits/stl_vector.h: Likewise.
967 * include/debug/deque: Likewise.
968 * include/debug/forward_list: Likewise.
969 * include/debug/list: Likewise.
970 * include/debug/safe_iterator.h: Likewise.
971 * include/debug/vector: Likewise.
972 * include/std/array: Likewise.
973 * testsuite/23_containers/array/creation/3_neg.cc: Use
975 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
977 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
978 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
979 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
980 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
982 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
984 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
985 Adjust dg-error line numbers.
986 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
988 * testsuite/23_containers/deque/debug/invalidation/4.cc:
990 * testsuite/23_containers/deque/types/1.cc: Use
992 * testsuite/23_containers/list/types/1.cc: Cast result to void.
993 * testsuite/23_containers/priority_queue/members/7161.cc:
995 * testsuite/23_containers/queue/members/7157.cc: Likewise.
996 * testsuite/23_containers/vector/59829.cc: Likewise.
997 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
999 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
1001 * testsuite/23_containers/vector/types/1.cc: Use
1004 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
1006 * include/bits/iterator_concepts.h (iter_move): Add
1008 * include/bits/range_access.h (begin, end, cbegin, cend)
1009 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
1010 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1011 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
1012 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1013 (ranges::empty, ranges::data, ranges::cdata): Likewise.
1014 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
1015 (back_insert_iterator, front_insert_iterator, insert_iterator)
1016 (move_iterator, move_sentinel, common_iterator)
1017 (counted_iterator): Likewise.
1018 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
1020 * include/bits/stream_iterator.h (istream_iterator)
1021 (ostream_iterartor): Likewise.
1022 * include/bits/streambuf_iterator.h (istreambuf_iterator)
1023 (ostreambuf_iterator): Likewise.
1024 * include/std/ranges (views::single, views::iota, views::all)
1025 (views::filter, views::transform, views::take, views::take_while)
1026 (views::drop, views::drop_while, views::join, views::lazy_split)
1027 (views::split, views::counted, views::common, views::reverse)
1028 (views::elements): Likewise.
1029 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
1030 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
1031 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
1033 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
1034 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
1036 * testsuite/21_strings/basic_string/range_access/char/1.cc:
1037 Cast result to void.
1038 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
1040 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1042 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1044 * testsuite/23_containers/array/range_access.cc: Likewise.
1045 * testsuite/23_containers/deque/range_access.cc: Likewise.
1046 * testsuite/23_containers/forward_list/range_access.cc:
1048 * testsuite/23_containers/list/range_access.cc: Likewise.
1049 * testsuite/23_containers/map/range_access.cc: Likewise.
1050 * testsuite/23_containers/multimap/range_access.cc: Likewise.
1051 * testsuite/23_containers/multiset/range_access.cc: Likewise.
1052 * testsuite/23_containers/set/range_access.cc: Likewise.
1053 * testsuite/23_containers/unordered_map/range_access.cc:
1055 * testsuite/23_containers/unordered_multimap/range_access.cc:
1057 * testsuite/23_containers/unordered_multiset/range_access.cc:
1059 * testsuite/23_containers/unordered_set/range_access.cc:
1061 * testsuite/23_containers/vector/range_access.cc: Likewise.
1062 * testsuite/24_iterators/customization_points/iter_move.cc:
1064 * testsuite/24_iterators/istream_iterator/sentinel.cc:
1066 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
1068 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
1069 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
1070 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
1071 * testsuite/24_iterators/range_access/range_access.cc:
1073 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1074 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
1075 * testsuite/28_regex/range_access.cc: Likewise.
1076 * testsuite/experimental/string_view/range_access/char/1.cc:
1078 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
1080 * testsuite/ext/vstring/range_access.cc: Likewise.
1081 * testsuite/std/ranges/adaptors/take.cc: Likewise.
1082 * testsuite/std/ranges/p2259.cc: Likewise.
1084 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1086 * include/bits/random.tcc (linear_congruential_engine): Do not
1087 define static constexpr members when they are implicitly inline.
1088 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
1089 (__ratio_add, __ratio_subtract): Likewise.
1090 * include/std/type_traits (integral_constant): Likewise.
1091 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1094 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1096 * testsuite/util/testsuite_common_types.h: Replace uses of
1097 tr1::unordered_map and tr1::unordered_set with their C++11
1099 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
1100 dg-error line number.
1101 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
1102 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
1104 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
1106 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
1108 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
1110 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
1113 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1115 * include/std/memory_resource (polymorphic_allocator::delete_object):
1116 Call destructor directly instead of using destroy.
1117 (allocator_traits<polymorphic_allocator<T>>): Define partial
1120 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1122 * testsuite/20_util/function_objects/binders/3113.cc: Remove
1123 trailing whitespace.
1124 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1125 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1126 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1128 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1129 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
1131 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1133 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1136 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1138 * doc/xml/manual/evolution.xml: Document deprecation.
1139 * doc/html/*: Regenerate.
1140 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
1141 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
1142 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
1144 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
1145 for C++11 and C++14 changes to std::random_shuffle and
1147 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
1148 use deprecated algorithms.
1149 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
1150 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
1151 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1153 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1156 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1158 * testsuite/23_containers/forward_list/operations/3.cc:
1159 Use lambda instead of std::bind2nd.
1160 * testsuite/20_util/function_objects/binders/3113.cc: Add
1161 options for testing deprecated features.
1162 * testsuite/20_util/pair/cons/99957.cc: Likewise.
1163 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1164 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1165 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1167 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
1168 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
1169 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
1170 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1171 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
1172 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
1173 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
1175 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
1177 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
1180 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1182 * include/bits/regex_executor.h (_State_info): Replace
1183 unique_ptr<bool[]> with array of bool.
1184 * include/bits/regex_executor.tcc: Likewise.
1185 * include/bits/regex_scanner.tcc: Replace std::strchr with
1187 * include/std/regex: Replace standard headers with smaller
1189 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
1190 <string.h> for strlen.
1191 * testsuite/28_regex/traits/char/lookup_collatename.cc:
1194 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1196 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
1197 RAII class template.
1198 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
1199 instead of unique_ptr.
1201 2021-08-02 Patrick Palka <ppalka@redhat.com>
1204 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
1205 Add missing std::move in return statement.
1206 (__partition_copy_fn::operator()): Rename templtae parameter
1207 _O2 to _Out2. Uglify function parameters out_true and out_false.
1208 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
1209 std::move to recursive call that unwraps a __normal_iterator
1211 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
1212 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
1214 2021-08-02 Patrick Palka <ppalka@redhat.com>
1217 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
1218 the const& overload unconstrained and return a const reference
1219 as per LWG 3533. Make unconditionally noexcept.
1220 (elements_view::base): Revert accidental r12-569 change.
1221 (elements_view::_Iterator::base): Make the const& overload
1222 unconstrained and return a const reference as per LWG 3533.
1223 Make unconditionally noexcept.
1225 2021-08-02 Patrick Palka <ppalka@redhat.com>
1228 * include/std/ranges (join_view::_Iterator::_Iterator): Add
1231 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
1234 * src/filesystem/ops-common.h (get_temp_directory_from_env):
1235 Add error_code parameter.
1236 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
1237 argument to get_temp_directory_from_env and check it.
1238 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1240 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
1242 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1243 Add dg-error for c++11_only target.
1245 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
1248 * configure.ac: Check for secure_getenv.
1249 * config.h.in: Regenerate.
1250 * configure: Regenerate.
1251 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
1252 helper function to obtain path from the environment.
1253 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
1254 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1255 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1256 Print messages if test cannot be run.
1257 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1258 Likewise. Fix incorrect condition. Use "TMP" to work with
1259 Windows as well as POSIX.
1261 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
1263 * src/c++17/memory_resource.cc: Use __exchange instead
1266 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1268 * include/experimental/optional (__throw_bad_optional_access):
1269 Replace GNU attribute with C++11 attribute.
1270 (optional::value, optional::value_or): Use if statements
1271 instead of conditional expressions.
1272 * include/std/optional (__throw_bad_optional_access)
1273 (optional::value, optional::value_or): Likewise.
1275 2021-07-27 Marek Polacek <polacek@redhat.com>
1279 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1281 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1284 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1286 * include/bits/cow_string.h: Consistently use tab for
1289 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1291 * include/Makefile.am: Add new header.
1292 * include/Makefile.in: Regenerate.
1293 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1294 (basic_string): Move definition of Copy-on-Write string to
1296 * include/bits/basic_string.tcc: Likewise.
1297 * include/bits/cow_string.h: New file.
1299 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1301 * include/std/algorithm: Do not include <utility>.
1302 * include/std/functional: Likewise.
1303 * include/std/regex: Include <bits/stl_pair.h> instead of
1305 * include/debug/map.h: Likewise.
1306 * include/debug/multimap.h: Likewise.
1307 * include/debug/multiset.h: Likewise.
1308 * include/debug/set.h: Likewise.
1309 * include/debug/vector: Likewise.
1310 * include/bits/fs_path.h: Likewise.
1311 * include/bits/unique_ptr.h: Do not include <utility>.
1312 * include/experimental/any: Likewise.
1313 * include/experimental/executor: Likewise.
1314 * include/experimental/memory: Likewise.
1315 * include/experimental/optional: Likewise.
1316 * include/experimental/socket: Use __exchange instead
1318 * src/filesystem/ops-common.h: Likewise.
1319 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
1320 errors to not use a hardcoded line number.
1321 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
1322 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
1323 Include <utility> for std::as_const.
1324 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
1326 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1328 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
1330 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
1331 Adjust dg-error line number.
1333 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1335 * include/Makefile.am: Add bits/utility.h header.
1336 * include/Makefile.in: Regenerate.
1337 * include/bits/utility.h: New file.
1338 * include/std/utility (tuple_size, tuple_element): Move
1340 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
1342 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
1343 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
1344 * include/bits/ranges_util.h: Include new header instead of
1346 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
1347 partial specializations for std::pair here.
1348 (get): Move overloads for std::pair here.
1349 * include/std/any: Include new header instead of <utility>.
1350 * include/std/array: Likewise.
1351 * include/std/memory_resource: Likewise.
1352 * include/std/optional: Likewise.
1353 * include/std/variant: Likewise.
1354 * include/std/tuple: Likewise.
1355 (__is_tuple_like_impl<tuple<T...>>): Move here.
1356 (get) Declare overloads for std::array.
1357 * include/std/version (__cpp_lib_tuples_by_type): Change type
1359 * testsuite/20_util/optional/84601.cc: Include <utility>.
1360 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
1362 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1363 Adjust dg-error line numbers.
1364 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
1365 * testsuite/std/ranges/access/cend.cc: Likewise.
1366 * testsuite/std/ranges/access/end.cc: Likewise.
1367 * testsuite/std/ranges/single_view.cc: Likewise.
1369 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
1371 * include/std/future: Include <bits/atomic_base.h> instead of
1374 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
1376 * include/bits/stl_relops.h: Update documentation comments.
1378 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1381 * include/bits/hashtable.h (_Hashtable): Replace mixin with
1382 _Enable_default_ctor. Construct it explicitly in all
1383 non-forwarding, non-defaulted constructors.
1384 * testsuite/23_containers/unordered_map/cons/default.cc: Check
1385 non-default constructors can be used.
1386 * testsuite/23_containers/unordered_set/cons/default.cc:
1389 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
1391 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
1393 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1396 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
1397 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
1398 (allocator::allocate, allocator::deallocate): Use new macros.
1400 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1403 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
1404 constructor parameter to reference and use addressof.
1405 * testsuite/util/testsuite_iterators.h: Define deleted operator&
1406 overloads for test iterators.
1408 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1410 * include/bits/std_function.h (_Function_base): Add
1411 default member initializers and define constructor as defaulted.
1412 (function::_M_invoker): Add default member initializer.
1414 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1417 * doc/xml/manual/debug_mode.xml: Update documentation about
1418 debug capability of std::array.
1419 * doc/html/*: Regenerate.
1420 * include/debug/array: New file.
1422 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
1425 * include/ext/rope (sequence_buffer): Add move constructor and
1426 move assignment operator.
1427 * testsuite/ext/rope/101542.cc: New test.
1429 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1432 * src/c++17/fs_ops.cc (fs::create_directories): Use status
1433 instead of symlink_status.
1434 * src/filesystem/ops.cc (fs::create_directories): Likewise.
1435 * testsuite/27_io/filesystem/operations/create_directories.cc:
1436 Check symlink to existing directory.
1437 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
1438 not test with symlinks on Windows.
1439 * testsuite/experimental/filesystem/operations/create_directories.cc:
1440 Check symlink to existing directory.
1441 * testsuite/experimental/filesystem/operations/create_directory.cc:
1442 Do not test with symlinks on Windows.
1444 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1447 * include/bits/hashtable.h (_Hashtable): Conditionally delete
1448 default constructor by deriving from _Enable_special_members.
1449 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
1450 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
1452 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1455 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
1456 * testsuite/27_io/filesystem/operations/create_directory.cc:
1457 Test creating directory with name of existing symlink to
1459 * testsuite/experimental/filesystem/operations/create_directory.cc:
1462 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1464 * include/std/tuple (get<I>): Add deleted overload for bad
1466 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1469 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1471 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
1472 Use __int_traits unconditionally.
1474 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1476 * include/bits/random.h (_Shift::__value): Use constexpr.
1477 (_Select_uint_least_t::type): Use using-declaration.
1479 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1482 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1484 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
1485 instead of diagnostic pragmas.
1486 * include/bits/functional_hash.h: Likewise.
1487 * include/bits/iterator_concepts.h (__is_signed_int128)
1488 (__is_unsigned_int128): Likewise.
1489 * include/bits/max_size_type.h (__max_size_type): Likewise.
1490 (numeric_limits<__max_size_type>): Likewise.
1491 * include/bits/std_abs.h (abs): Likewise.
1492 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
1493 * include/bits/uniform_int_dist.h (uniform_int_distribution):
1495 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
1497 * include/std/type_traits (__is_integral_helper<INT_N>)
1498 (__is_signed_integer, __is_unsigned_integer)
1499 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
1500 * include/std/limits (__INT_N): Add __extension__ keyword.
1501 * include/bits/random.h (_Select_uint_least_t)
1502 (random_device): Likewise.
1504 2021-07-16 Patrick Palka <ppalka@redhat.com>
1507 * include/std/ranges (_CachedPosition::_M_get): For non-forward
1508 ranges, just call __builtin_unreachable.
1509 * testsuite/std/ranges/istream_view.cc (test05): New test.
1511 2021-07-16 Patrick Palka <ppalka@redhat.com>
1514 * include/std/ranges (split_view::split_view): Use std::move.
1515 (split_view::_Iterator::_Iterator): Remove redundant
1516 default_initializable constraint.
1517 (split_view::_Sentinel::_Sentinel): Declare.
1518 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
1520 2021-07-16 Marek Polacek <polacek@redhat.com>
1522 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
1525 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1527 * include/bits/unique_ptr.h: Adjust doxygen markup.
1529 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1532 * include/std/type_traits: Adjust doxygen markup.
1534 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1536 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
1537 uses of non-standard integer types.
1538 * include/bits/functional_hash.h: Likewise.
1539 * include/bits/iterator_concepts.h: Likewise.
1540 * include/bits/max_size_type.h: Likewise.
1541 * include/bits/std_abs.h: Likewise.
1542 * include/bits/stl_algobase.h: Likewise.
1543 * include/bits/uniform_int_dist.h: Likewise.
1544 * include/ext/numeric_traits.h: Likewise.
1545 * include/std/type_traits: Likewise.
1547 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
1550 * include/std/tuple (tuple_element): Improve static_assert text.
1551 (__get_helper): Add deleted overload.
1552 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
1553 __get_helper directly.
1554 (__get_helper2): Remove.
1555 (__find_uniq_type_in_pack): New constexpr helper function.
1556 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
1558 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1560 * testsuite/20_util/tuple/element_access/101427.cc: New test.
1562 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
1565 * include/bits/c++config (__replacement_assert): Add noexcept.
1566 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
1567 instead of __replacement_assert.
1569 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
1571 * include/std/string_view (basic_string_view(It, End)): Add
1573 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
1574 Check noexcept-specifier. Also check construction without CTAD.
1576 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
1579 * include/std/string_view (ends_with): Use traits_type::compare
1582 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
1584 * include/std/string_view: Only include <bits/ranges_base.h>
1585 once, and only for C++20 and later.
1587 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
1590 * include/std/span (as_writable_bytes): Add requires-clause.
1591 * testsuite/23_containers/span/101411.cc: New test.
1593 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
1595 * include/std/mutex (__lock_impl): Check
1596 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
1598 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
1601 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
1602 Remove noexcept-specifier.
1603 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
1604 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
1607 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
1609 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
1610 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
1611 Add some more predefined macros.
1612 * include/bits/fs_fwd.h: Move @addtogroup commands inside
1613 namespaces. Add better documentation.
1614 * include/bits/fs_path.h: Likewise.
1615 * include/experimental/bits/fs_fwd.h: Likewise.
1616 * include/experimental/bits/fs_path.h: Likewise.
1617 * include/ext/throw_allocator.h: Fix typo and improve docs.
1618 * include/std/chrono: Move @addtogroup commands.
1619 * include/std/system_error: Move @addtogroup commands.
1620 * libsupc++/exception: Improve documentation.
1621 * libsupc++/exception.h: Add @since documentation.
1623 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
1626 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
1627 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
1628 (PREDEFINED): Add/fix some more macros that need to be expanded.
1629 * include/bits/random.h: Stop Doxygen from documenting internal
1630 implementation details.
1631 * include/bits/random.tcc: Likewise.
1632 * include/bits/this_thread_sleep.h: Fix @file name.
1633 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
1634 document internal implementation details.
1635 * include/experimental/bits/simd_detail.h: Do not document
1636 internal implementation details.
1637 * include/experimental/simd: Define Doxygen groups.
1638 * include/experimental/type_traits: Improve documentation for
1639 the header file. Define groups. Use @since commands.
1640 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
1641 declaration before undocumented region.
1642 * include/std/type_traits (true_type, false_type): Use using
1643 declaration instead of typedef.
1644 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
1645 (is_nothrow_invocable_r_v): Move definitions next to other C++17
1647 Do not document internal implementation details. Move misplaced
1648 group-end command. Define group for variable templates.
1649 * include/std/variant: Do not document internal implementation
1651 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1654 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
1656 * include/experimental/simd: Do not define anything pre-C++17.
1658 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
1660 * include/bits/random.tcc [__cpp_inline_variables]: Remove
1661 redundant definitions of static constexpr member variables.
1662 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1665 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1667 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
1668 explicit instantiation declarations.
1669 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
1670 explicit instantiation definitions.
1672 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1675 * testsuite/17_intro/names.cc: Fix #if condition for names used
1678 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1681 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
1682 Fail gracefully if element_type is incomplete.
1683 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
1684 the standard doesn't require this test to work for array types.
1685 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
1686 types can be used with array specialization.
1687 * testsuite/20_util/unique_ptr/101236.cc: New test.
1689 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1691 * doc/xml/manual/intro.xml: Document LWG 415 change.
1692 * doc/html/manual/bugs.html: Regenerate.
1693 * include/bits/istream.tcc (ws): Create sentry and catch
1695 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
1696 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
1698 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1700 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
1701 directly instead of using _M_write. Do setstate(__err) all
1702 outside the try-catch block.
1703 * include/std/ostream (basic_ostream::_M_write): Declare
1704 private. Use __ostream_insert. Do not define for the versioned
1707 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1709 * doc/xml/manual/intro.xml: Document LWG 581 change.
1710 * doc/html/manual/bugs.html: Regenerate.
1711 * include/bits/basic_ios.tcc: Whitespace.
1712 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
1714 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
1716 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
1718 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
1719 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
1722 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1724 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
1725 is set, not if eofbit is set.
1726 (tellp, seekp, seekp): Create sentry object. Do not set badbit
1728 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
1729 Adjust expected behaviour.
1730 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
1732 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
1734 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
1736 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
1737 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
1738 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
1739 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
1741 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1743 * include/std/syncstream (basic_syncbuf::swap()): Remove
1744 noexcept, as per LWG 3498.
1746 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1749 * testsuite/17_intro/names.cc: Undef more names for newlib and
1750 also for arm-none-linux-gnueabi.
1751 * testsuite/experimental/names.cc: Disable PCH.
1753 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
1755 * include/experimental/bits/simd.h (__bit_cast): Implement via
1756 __builtin_bit_cast #if available.
1757 (__proposed::simd_bit_cast): Add overloads for simd and
1758 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
1759 available), which return an object of the requested type with
1760 the same bits as the argument.
1761 * include/experimental/bits/simd_math.h: Use simd_bit_cast
1762 instead of __bit_cast to allow casts to fixed_size_simd.
1763 (copysign): Remove branch that was only required if __bit_cast
1764 cannot be constexpr.
1765 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
1766 from __bit_cast to __proposed::simd_bit_cast since the former
1767 will not cast fixed_size objects anymore.
1769 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1771 * include/experimental/bits/simd_math.h
1772 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
1773 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
1776 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1778 * include/experimental/bits/simd.h (__execute_on_index_sequence)
1779 (__execute_on_index_sequence_with_return)
1780 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
1783 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1785 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
1786 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
1789 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1791 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
1792 implementation doesn't require a _VecBltnBtmsk ABI tag, it
1793 requires either a 64-Byte input (in which case AVX512F must be
1794 available) or AVX512VL.
1796 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1798 * include/experimental/bits/simd_math.h: Undefine internal
1800 (frexp): Move #if to a more sensible position and reformat
1802 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
1803 duplicating the code here.
1804 (modf): Simplify condition.
1806 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1808 * include/experimental/bits/simd_math.h (fabs): Remove
1809 fabs(simd<integral>) overload.
1811 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1813 * include/experimental/bits/simd_converter.h
1814 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
1815 * include/experimental/bits/simd_fixed_size.h
1816 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
1817 arguments by const-ref.
1818 (_S_masked_unary): Pass _SimdTuple by const-ref.
1820 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1822 * include/experimental/bits/simd_fixed_size.h
1823 (_AbisInSimdTuple): Removed.
1825 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1827 * include/experimental/bits/simd.h: Add missing operator~
1828 overload for simd<floating-point> to __float_bitwise_operators.
1829 * include/experimental/bits/simd_builtin.h
1830 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
1831 implement complement for floating-point vectors.
1832 * include/experimental/bits/simd_fixed_size.h
1833 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
1834 copysign implementation of _SimdTuple members.
1835 * include/experimental/bits/simd_math.h (copysign): Call
1836 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
1837 generic copysign implementation using the new ~ operator.
1839 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
1841 * testsuite/experimental/simd/README.md: Fix typos.
1843 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
1845 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
1847 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
1848 conditional noexcept as per LWG 2762.
1849 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
1850 dereferencing cannot throw.
1851 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
1852 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
1853 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
1855 2021-06-23 Patrick Palka <ppalka@redhat.com>
1858 * testsuite/23_containers/multiset/cons/deduction.cc:
1859 Uncomment CTAD example that was rejected by this bug.
1860 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1862 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
1864 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
1867 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1869 * testsuite/experimental/simd/README.md: New file.
1871 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1873 * testsuite/experimental/simd/driver.sh: Rewrite output
1874 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
1875 to be used twice. Add -x and -o short options. Parse long
1876 options with = instead of separating space generically. Parce
1877 contracted short options. Make unrecognized options an error.
1878 If same-line output is active, trap on EXIT to increment the
1879 progress (only with --percentage), erase the line and print the
1881 * testsuite/experimental/simd/generate_makefile.sh: Initialize
1882 helper files for progress account keeping. Update help target
1883 for changes to DRIVEROPTS.
1885 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1887 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
1888 and associated warning.
1889 * testsuite/Makefile.in: Regenerate.
1891 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
1892 Jonathan Wakely <jwakely@redhat.com>
1893 Ulrich Drepper <drepper@redhat.com>
1895 * include/std/chrono (chrono::year::is_leap()): Optimize.
1897 2021-06-23 Patrick Palka <ppalka@redhat.com>
1900 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
1902 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1903 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1904 Mention one of the replaced examples is broken due to PR101174.
1905 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1906 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
1907 ambiguous CTAD examples.
1908 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1910 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1912 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
1914 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
1916 * include/std/mutex (__detail::__try_lock_impl): Rename
1917 parameter to avoid clashing with newlib's __lockable macro.
1918 (try_lock): Add 'inline' specifier.
1919 * testsuite/17_intro/names.cc: Add check for __lockable.
1920 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
1922 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1923 Matthias Kretz <m.kretz@gsi.de>
1925 * include/std/mutex (lock): Replace recursion with iteration
1926 when lockables all have the same type.
1927 (__detail::__try_lock_impl): Likewise. Pass lockables as
1928 parameters, instead of a tuple. Always lock the first one, and
1929 recurse for the rest.
1930 (__detail::__lock_impl): Adjust call to __try_lock_impl.
1931 (__detail::__try_to_lock): Remove.
1932 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
1933 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
1935 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
1937 * testsuite/30_threads/try_lock/5.cc: New test.
1939 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1941 * include/std/memory (declare_reachable, undeclare_reachable)
1942 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
1943 (pointer_safety): Only define for C++11 to C++20 inclusive.
1944 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
1946 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1948 * include/bits/random.h (seed_seq): Constrain initializer-list
1950 * include/bits/random.tcc (seed_seq): Add template parameter.
1951 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
1953 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
1956 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
1959 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
1960 Force _M_release() to wake all waiting threads.
1961 * testsuite/30_threads/semaphore/100806.cc: New test.
1963 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
1965 * include/std/mutex (__try_to_lock): Move to __detail namespace.
1966 (struct __try_lock_impl): Replace with ...
1967 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
1968 function templates to implement std::try_lock.
1969 (try_lock): Use new __try_lock_impl.
1970 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
1971 template to implement std::lock.
1972 (lock): Use __lock_impl.
1974 2021-06-21 Patrick Palka <ppalka@redhat.com>
1976 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1978 2021-06-20 Patrick Palka <ppalka@redhat.com>
1980 * include/std/ranges (__non_propagating_cache::operator bool):
1981 Define for split_view::begin().
1982 (split_view): Define as per P2210.
1983 (views::__detail::__can_split_view): Define.
1984 (views::_Split, views::split): Define.
1985 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
1987 * testsuite/std/ranges/adaptors/split.cc: New test.
1988 * testsuite/std/ranges/p2325.cc (test08a): New test.
1989 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
1991 2021-06-20 Patrick Palka <ppalka@redhat.com>
1993 * include/std/ranges: Rename views::split to views::lazy_split,
1994 split_view to lazy_split_view, etc. throughout.
1995 * testsuite/std/ranges/*: Likewise.
1996 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
1997 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
1999 2021-06-20 Patrick Palka <ppalka@redhat.com>
2001 * include/std/ranges (split_view::_OuterIter::__at_end):
2002 Check _M_trailing_empty.
2003 (split_view::_OuterIter::_M_trailing_empty): Define this
2005 (split_view::_OuterIter::operator++): Set _M_trailing_empty
2007 (split_view::_OuterIter::operator==): Compare
2009 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
2010 split parts instead of one.
2011 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
2013 2021-06-20 Patrick Palka <ppalka@redhat.com>
2015 * include/std/ranges (split_view::_InnerIter::base): Define as
2018 2021-06-19 Patrick Palka <ppalka@redhat.com>
2020 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
2021 Consider _Base instead of _Vp as per LWG 3555.
2022 (elements_view::_Iterator::_S_iter_concept): Likewise.
2024 2021-06-19 Patrick Palka <ppalka@redhat.com>
2026 * include/std/ranges (split_view::_OuterIter::value_type::begin):
2027 Remove the non-const overload, and remove the copyable constraint
2028 on the const overload as per LWG 3553.
2030 2021-06-19 Patrick Palka <ppalka@redhat.com>
2032 * include/bits/stl_iterator.h
2033 (__detail::__common_iter_use_postfix_proxy): Add
2034 move_constructible constraint as per LWG 3546.
2035 (common_iterator::__postfix_proxy): Adjust initializer of
2036 _M_keep as per LWG 3546.
2038 2021-06-18 Patrick Palka <ppalka@redhat.com>
2041 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
2042 to limit comparison complexity to 3*N/2.
2043 (__minmax_element_fn::operator()): Likewise.
2044 (shift_right): Avoid premature std::move of __result.
2045 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
2047 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
2050 2021-06-18 Patrick Palka <ppalka@redhat.com>
2052 * include/std/concepts (convertible_to): Just use declval as per
2055 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
2058 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
2059 incorrect static_assert with ones matching the 'Mandates'
2060 conditions in the standard.
2061 * testsuite/26_numerics/reduce/95833.cc: New test.
2063 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
2065 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
2066 diagnostic pragma to suppress -Wstringop-overread error.
2068 2021-06-18 Patrick Palka <ppalka@redhat.com>
2070 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
2071 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
2072 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
2073 * include/bits/ranges_util.h: ... here.
2074 * include/std/ranges (__detail::find, __detail::find_if)
2075 (__detail::find_if_not, __detail::mismatch): Remove.
2076 (filter_view): Use ranges::find_if instead.
2077 (drop_while_view): Use ranges::find_if_not instead.
2078 (split_view): Use ranges::find and ranges::mismatch instead.
2080 2021-06-18 Patrick Palka <ppalka@redhat.com>
2082 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
2083 default_initializable requirement.
2084 * include/bits/ranges_base.h (ranges::view): Likewise.
2085 * include/bits/ranges_util.h (subrange): Constrain the default
2087 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
2089 (front_insert_iterator): Likewise.
2090 (insert_iterator): Likewise. Remove NSDMIs.
2091 (common_iterator): Constrain the default ctor.
2092 (counted_iterator): Likewise.
2093 * include/bits/stream_iterator.h (ostream_iterator): Remove the
2095 * include/std/ranges (__detail::__box::operator=): Handle
2096 self-assignment in the primary template.
2097 (__detail::__box): In the partial specialization: adjust
2098 constraints as per P2325. Add specialized operator= for the
2099 case when the wrapped type is not copyable. Constrain the
2100 default ctor. Avoid list-initialization.
2101 (single_view): Constraint the default ctor.
2102 (iota_view): Relax semiregular constraint to copyable.
2103 Constrain the default ctor.
2104 (iota_view::_Iterator): Constraint the default ctor.
2105 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
2106 Remove redundant checks for empty _M_stream.
2107 (basic_istream_view::_Iterator): Likewise.
2108 (ref_view): Remove the default ctor. Remove NSDMIs.
2109 (ref_view::_Iterator): Constrain the default ctor.
2110 (__detail::__non_propagating_cache::operator=): Define overload
2111 for assigning from a value of the underlying type.
2112 (filter_view): Likewise.
2113 (filter_view::_Iterator): Likewise.
2114 (transform_view): Likewise.
2115 (transform_view::_Iterator): Likewise.
2116 (take_view): Likewise.
2117 (take_view::_Iterator): Likewise.
2118 (take_while_view): Likewise.
2119 (take_while_view::_Iterator): Likewise.
2120 (drop_while_view): Likewise.
2121 (drop_while_view::_Iterator): Likewise.
2122 (join_view): Likewise.
2123 (split_view::_OuterIter::__current): Adjust after changing the
2125 (split_view::_M_current): Wrap it in a __non_propagating_cache.
2126 (split_view::split_view): Constrain the default ctor.
2127 (common_view): Constrain the default ctor.
2128 (reverse_view): Likewise.
2129 (elements_view): Likewise.
2130 * include/std/span (enable_view<span<_ElementType, _Extent>>):
2131 Define this partial specialization to true unconditionally.
2132 * include/std/version (__cpp_lib_ranges): Adjust value.
2133 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
2134 Don't attempt to default construct a back_insert_iterator.
2135 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
2136 Don't attempt to default construct a front_insert_iterator.
2137 * testsuite/24_iterators/insert_iterator/constexpr.cc:
2138 Don't attempt to default construct an insert_iterator.
2139 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
2140 Remove this test for default constructibility of ostream_iterator.
2141 * testsuite/std/ranges/97600.cc: Don't attempt to default
2142 construct a basic_istream_view.
2143 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
2145 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
2146 (test02): Adjust now that __box is copyable-box not
2149 * testsuite/std/ranges/p2325.cc: New test.
2150 * testsuite/std/ranges/single_view.cc (test06): New test.
2151 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
2152 require default_initializable.
2154 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
2157 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
2158 define when is_constant_evaluated is available.
2159 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
2161 (__constant_string_p, __constant_array_p): Remove.
2162 (char_traits): Use is_constant_evaluated directly.
2163 * include/std/version (__cpp_lib_constexpr_char_traits)
2164 (__cpp_lib_constexpr_string): Only define when
2165 is_constant_evaluated is available.
2167 2021-06-17 Patrick Palka <ppalka@redhat.com>
2170 * include/std/ranges (__adaptor::_Partial): For the "simple"
2171 forwarding partial specializations, also require that
2172 the extra arguments are trivially copyable.
2173 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
2175 2021-06-17 Patrick Palka <ppalka@redhat.com>
2178 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
2179 template form of _S_has_simple_extra_args.
2180 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
2181 parameter pack. Try to treat _S_has_simple_extra_args as a
2182 variable template parameterized by _Args.
2183 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
2184 __adaptor_has_simple_extra_args.
2185 (views::_Take::_S_has_simple_extra_args): Templatize according
2186 to the type of the extra argument.
2187 (views::_Drop::_S_has_simple_extra_args): Likewise.
2188 (views::_Split::_S_has_simple_extra_args): Define.
2189 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
2190 Adjust after changes to _S_has_simple_extra_args mechanism.
2193 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
2195 * include/bits/iterator_concepts.h (__decay_copy): Name type.
2197 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
2199 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2200 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2201 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2202 (ranges::empty, ranges::data, ranges::cdata): Remove final
2203 keywords and deleted operator& overloads.
2204 * testsuite/24_iterators/customization_points/iter_move.cc: Use
2205 new is_customization_point_object function.
2206 * testsuite/24_iterators/customization_points/iter_swap.cc:
2208 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
2210 * testsuite/std/ranges/access/begin.cc: Likewise.
2211 * testsuite/std/ranges/access/cbegin.cc: Likewise.
2212 * testsuite/std/ranges/access/cdata.cc: Likewise.
2213 * testsuite/std/ranges/access/cend.cc: Likewise.
2214 * testsuite/std/ranges/access/crbegin.cc: Likewise.
2215 * testsuite/std/ranges/access/crend.cc: Likewise.
2216 * testsuite/std/ranges/access/data.cc: Likewise.
2217 * testsuite/std/ranges/access/empty.cc: Likewise.
2218 * testsuite/std/ranges/access/end.cc: Likewise.
2219 * testsuite/std/ranges/access/rbegin.cc: Likewise.
2220 * testsuite/std/ranges/access/rend.cc: Likewise.
2221 * testsuite/std/ranges/access/size.cc: Likewise.
2222 * testsuite/std/ranges/access/ssize.cc: Likewise.
2223 * testsuite/util/testsuite_iterators.h
2224 (is_customization_point_object): New function.
2226 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2228 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2229 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2230 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2231 (ranges::empty, ranges::data, ranges::cdata): Make types final.
2232 Add deleted operator& overloads.
2233 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
2235 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
2236 ill-formed & expressions with using-declarations. Add checks for
2237 other function objects.
2239 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2241 * include/bits/ranges_util.h (view_interface): Add noexcept to
2242 empty, operator bool, data and size members.
2243 (subrange): Add noexcept to constructors.
2244 * include/std/ranges (single_view, ref_view): Add noexcept to
2246 (views::single, views::all): Add noexcept.
2247 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
2248 * testsuite/std/ranges/single_view.cc: Likewise.
2250 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2252 * include/bits/ranges_util.h (subrange): Add __size_type typedef
2253 and use it to simplify declarations.
2254 (subrange(i, s, n)): Remove assertion.
2255 * testsuite/std/ranges/subrange/constexpr.cc: New test.
2257 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2259 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
2260 Replace with function object.
2261 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
2262 __decay_copy unqualified.
2263 * include/bits/ranges_base.h (__member_end, __adl_end):
2264 Likewise. Use __range_iter_t for type of ranges::begin.
2265 (__member_rend): Use correct value category for rbegin argument.
2266 (__member_data): Use __decay_copy unqualified.
2267 (__begin_data): Use __range_iter_t for type of ranges::begin.
2269 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2271 * include/bits/ranges_base.h (ranges::empty): Check whether
2272 conversion to bool can throw.
2273 * testsuite/std/ranges/access/empty.cc: Check for correct
2276 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2279 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
2280 use the type if it's a reference.
2281 * testsuite/20_util/common_reference/100894.cc: New test.
2283 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2285 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2286 Add dg-require-filesystem-ts directive.
2288 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2291 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
2292 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
2294 * testsuite/20_util/any/cons/101034.cc: New test.
2296 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2298 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
2299 -std=gnu++17 option.
2301 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2304 * libsupc++/compare (compare_partial_order_fallback): Add
2305 constraint using reversed parameter order, as per LWG 3465.
2306 * testsuite/18_support/comparisons/algorithms/fallback.cc:
2307 Adjust expected result.
2309 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2311 * libsupc++/compare (__decayed_same_as): New helper concept.
2312 (strong_order, weak_order, partial_order): Constrain with new
2313 concept instead of using static_assert.
2314 (compare_strong_order_fallback, compare_weak_order_fallback)
2315 (compare_partial_order_fallback): Likewise. Do not deduce return
2316 types. Remove redundant if-constexpr checks.
2317 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
2319 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2322 * include/std/tuple: Use reserved form of attribute name.
2323 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
2324 check for no_unique_address.
2325 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
2327 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
2330 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
2332 * include/bits/fs_path.h (operator==, operator<=>): Use new
2333 _S_compare function.
2334 (path::_S_compare): New function to call path::compare in a
2335 context where path::iterator is complete.
2336 * include/experimental/bits/fs_path.h (operator<, operator==):
2337 Define after path::iterator is complete.
2338 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
2340 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2343 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
2345 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
2346 test logic with constexpr check for is_always_lock_free.
2348 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
2351 * include/std/optional (optional::operator=(const optional<U>&)):
2352 Fix value category used in is_assignable check.
2353 * testsuite/20_util/optional/assignment/100982.cc: New test.
2355 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
2357 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
2358 * include/bits/iterator_concepts.h (indirectly_readable_traits):
2359 Add LWG issue number to comment.
2360 * include/std/memory_resource (polymorphic_allocator::release):
2362 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
2363 dg-warning for deprecation. Also check std::allocator<void>.
2365 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
2368 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
2369 Change parameter type from _Tp to _Tp*.
2370 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
2371 coverage of types tested.
2373 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
2375 * include/std/barrier (__tree_barrier::_M_arrive): Remove
2376 unnecessary hasher instantiation.
2378 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
2380 * include/experimental/propagate_const (swap): Constrain.
2381 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
2383 2021-06-07 Avi Kivity <avi@scylladb.com>
2386 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
2387 Add missing typename.
2389 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
2392 * include/std/optional (operator<=>(const optional<T>& const U&)):
2393 Add missing constraint and add workaround for template
2395 * testsuite/20_util/optional/relops/three_way.cc: Check that
2396 type without equality comparison cannot be compared when wrapped
2399 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
2402 * include/bits/ranges_base.h (_SSize): Return signed type.
2403 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
2405 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2407 * include/bits/ranges_base.h (_SSize): Return the result of
2408 ranges::size converted to the wider of make-signed-like-t<S> and
2409 ptrdiff_t, rather than the ranges different type.
2410 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
2411 for an iota_view that uses an integer class type for its
2414 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2417 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
2418 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
2420 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2423 * include/bits/iterator_concepts.h (__detail::__decay_copy)
2424 (__detail::__member_begin, __detail::__adl_begin): Move to
2425 namespace ranges::__cust_access.
2426 (__detail::__ranges_begin): Likewise, and rename to __begin.
2427 Remove redundant static assertion.
2428 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
2429 Use lvalue in noexcept specifier.
2430 (__as_const): Add non-deduced parameter for value category.
2431 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
2433 (__member_size, __adl_size, __member_empty, __size0_empty):
2434 (__eq_iter_empty, __adl_data): Use lvalue objects in
2436 (__sentinel_size): Likewise. Add check for conversion to
2438 (__member_data): Allow non-lvalue types to satisfy the concept,
2439 but use lvalue object in requirements.
2440 (_Size, _SSize): Remove forwarding to always use an lvalue.
2441 (_Data): Likewise. Add static assertion for arrays.
2442 * testsuite/std/ranges/access/cdata.cc: Adjust expected
2443 behaviour for rvalues. Add negative tests for ill-formed
2445 * testsuite/std/ranges/access/data.cc: Likewise.
2446 * testsuite/std/ranges/access/empty.cc: Adjust expected
2447 behaviour for rvalues.
2448 * testsuite/std/ranges/access/size.cc: Likewise.
2450 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
2452 * include/std/any (any::_Manager::_S_access): New static
2453 function to access the contained value.
2454 (any::emplace, __any_caster): Use _S_access member of the
2457 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2459 * doc/xml/manual/status_cxx2020.xml:
2460 * doc/html/*: Regenerate.
2461 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
2463 * include/std/version (__cpp_lib_generic_unordered_lookup):
2465 * testsuite/23_containers/unordered_map/operations/1.cc: Check
2467 * testsuite/23_containers/unordered_set/operations/1.cc:
2470 2021-06-03 Patrick Palka <ppalka@redhat.com>
2472 * include/bits/ranges_algo.h (__detail::__can_reread_output):
2473 Factor out this concept from ...
2474 (__unique_copy_fn::operator()): ... here. Use the concept
2476 * testsuite/std/ranges/range.cc: Remove now ill-formed use
2477 of range_value_t on an output_range.
2478 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2479 Define value_type, pointer and reference member types to void.
2481 2021-06-03 Patrick Palka <ppalka@redhat.com>
2484 * include/std/ranges (_RangeAdaptorClosure): Document
2485 _S_has_simple_call_op mechanism.
2486 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
2487 (__closure_has_simple_call_op): New concept.
2488 (__adaptor_has_simple_extra_args): Likewise.
2489 (_Partial<_Adaptor, _Args...>): New partial specialization.
2490 (_Partial<_Adaptor, _Arg>): Likewise.
2491 (_Pipe<_Lhs, _Rhs>): Likewise.
2492 (views::_All::_S_has_simple_call_op): Define to true.
2493 (views::_Filter::_S_has_simple_extra_args): Likewise.
2494 (views::_Transform::_S_has_simple_extra_args): Likewise.
2495 (views::_Take::_S_has_simple_extra_args): Likewise.
2496 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
2497 (views::_Drop::_S_has_simple_extra_args): Likewise.
2498 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
2499 (views::_Join::_S_has_simple_call_op): Likewise.
2500 (views::_Split): Document why we don't define
2501 _S_has_simple_extra_args to true for this adaptor.
2502 (views::_Common::_S_has_simple_call_op): Define to true.
2503 (views::_Reverse::_S_has_simple_call_op): Likewise.
2504 (views::_Elements::_S_has_simple_call_op): Likewise.
2505 * testsuite/std/ranges/adaptors/100577.cc: New test.
2507 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2511 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
2512 Value-initialize subobject.
2513 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
2515 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
2518 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2521 * testsuite/23_containers/unordered_map/96088.cc: Adjust
2522 expected number of allocations.
2523 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2525 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2527 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
2528 * doc/xml/manual/status_cxxtr1.xml: Likewise.
2529 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
2530 * doc/html/*: Regenerate.
2532 2021-06-01 Patrick Palka <ppalka@redhat.com>
2535 * testsuite/23_containers/deque/allocator/default_init.cc,
2536 testsuite/23_containers/forward_list/allocator/default_init.cc,
2537 testsuite/23_containers/list/allocator/default_init.cc,
2538 testsuite/23_containers/map/allocator/default_init.cc,
2539 testsuite/23_containers/set/allocator/default_init.cc,
2540 testsuite/23_containers/vector/allocator/default_init.cc,
2541 testsuite/23_containers/vector/bool/allocator/default_init.cc:
2544 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2546 * testsuite/23_containers/unordered_map/96088.cc: Change
2547 effective target to c++17.
2548 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2550 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2552 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
2553 isblank for C++11 and later.
2555 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2558 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
2559 Fix return value for no-op case.
2560 * testsuite/24_iterators/range_operations/advance.cc: Test
2561 return values of three-argument overload.
2563 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2566 * python/Makefile.am: Use archive name for printer hook if no
2567 dynamic library name is available.
2568 * python/Makefile.in: Regenerate.
2570 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
2572 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
2573 Compilers for Linux: Compatibility with GNU Compilers" article.
2574 * doc/html/manual/abi.html: Regenerate.
2576 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
2578 * include/debug/formatter.h
2579 (_Error_formatter::_Parameter::_Named): New.
2580 (_Error_formatter::_Parameter::_Type): Inherit latter.
2581 (_Error_formatter::_Parameter::_M_integer): Likewise.
2582 (_Error_formatter::_Parameter::_M_string): Likewise.
2583 * src/c++11/debug.cc: Include <cstring>.
2584 (_Print_func_t): New.
2585 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
2586 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
2587 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
2588 (print_type): Rename in...
2589 (print_type_info): ...this. Use pretty_print.
2590 (print_address, print_integer): New.
2591 (print_named_name, print_iterator_constness, print_iterator_state): New.
2592 (print_iterator_seq_type): New.
2593 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
2594 (print_field): Use latters.
2595 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
2596 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
2597 Change signature to...
2598 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
2599 ...this and adapt. Remove intermediate buffer to render input string.
2600 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
2602 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
2605 * include/bits/ranges_base.h (advance, distance, next, prev):
2606 Replace function templates with function objects.
2607 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
2608 Adjust for changes to function objects.
2609 * testsuite/std/ranges/adaptors/elements.cc: Add using
2610 declarations for names from namespace ranges.
2611 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
2612 * testsuite/24_iterators/range_operations/100768.cc: New test.
2614 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
2617 * include/bits/hashtable_policy.h (_Select2nd): New.
2618 (_NodeBuilder<>): New.
2619 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
2620 (_AllocNode<>::operator()): Likewise.
2621 * include/bits/hashtable.h
2622 (_Hashtable<>::__node_builder_t): New.
2623 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
2625 (_Hashtable<>::_S_forward_key): New.
2626 (_Hashtable<>::_M_insert): Use latter.
2627 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
2628 Instantiate node first, compute hash code second.
2629 * testsuite/23_containers/unordered_map/96088.cc: New test.
2630 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
2631 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
2632 * testsuite/23_containers/unordered_set/96088.cc: New test.
2633 * testsuite/util/replacement_memory_operators.h
2634 (counter::_M_increment): New.
2635 (counter::_M_decrement): New.
2636 (counter::reset()): New.
2638 2021-05-24 Patrick Palka <ppalka@redhat.com>
2641 * include/std/ranges (__detail::__non_propagating_cache): Move
2642 definition up to before that of _CachedPosition. Make base
2643 class _Optional_base protected instead of private. Add const
2644 overload for operator*.
2645 (__detail::_CachedPosition): Rewrite the partial specialization
2646 for forward ranges as a derived class of __non_propagating_cache.
2647 Remove the size constraint on the partial specialization for
2648 random access ranges. Add copy/move/copy-assignment/move-assignment
2649 members to the offset partial specialization for random
2650 access ranges that propagate the cached value but additionally
2651 invalidate it in the source object on move.
2652 * testsuite/std/ranges/adaptors/100479.cc: New test.
2654 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
2656 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
2657 call to ranges::next.
2658 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
2659 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
2661 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
2664 2021-05-21 Patrick Palka <ppalka@redhat.com>
2667 * include/std/ranges (drop_while_view::begin): Assert the
2668 precondition added by LWG 3490.
2670 2021-05-21 Patrick Palka <ppalka@redhat.com>
2673 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
2674 Split out this member function from ...
2675 (iota_view::_Sentinel::operator-): ... here, for sake of access
2677 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
2679 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
2681 * include/bits/random.tcc (__representable_as_double)
2682 (__p1_representable_as_double): Add "" to static asserts.
2684 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
2687 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
2688 (__glibcxx_constexpr_assert): ... this.
2689 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
2690 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
2691 or __glibcxx_assert_impl.
2692 (__glibcxx_assert_2): Remove
2693 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
2694 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
2695 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
2696 Adjust expected error.
2697 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
2699 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
2702 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
2704 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
2706 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
2708 * testsuite/23_containers/span/back_neg.cc: Likewise.
2709 * testsuite/23_containers/span/front_neg.cc: Likewise.
2710 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
2712 2021-05-20 Patrick Palka <ppalka@redhat.com>
2715 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
2716 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
2717 (reverse_iterator::reference): Likewise, but with iter_reference_t.
2718 (reverse_iterator::value_type): Likewise, but with iter_value_t.
2719 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
2720 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
2722 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
2725 * include/std/charconv (to_chars): Hide the overloads for
2726 floating-point types for 16 bit targets.
2727 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
2728 * testsuite/20_util/to_chars/double.cc: Run this test only on
2730 * testsuite/20_util/to_chars/float.cc: Likewise.
2731 * testsuite/20_util/to_chars/long_double.cc: Likewise.
2733 2021-05-18 Patrick Palka <ppalka@redhat.com>
2736 * include/std/ranges (elements_view::_Sentinel::operator-): Use
2737 _M_distance_from in the other operator- overload too.
2738 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
2740 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
2742 * testsuite/lib/prune.exp: Add note about 'dg-note'.
2744 2021-05-18 Patrick Palka <ppalka@redhat.com>
2747 * include/std/ranges (__box::__box): Use non-list-initialization
2748 in member initializer list of in-place constructor of the
2749 partial specialization for semiregular types.
2750 (__box::operator->): Use std::__addressof.
2751 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
2753 * testsuite/std/ranges/single_view.cc (test04): New test.
2755 2021-05-18 Patrick Palka <ppalka@redhat.com>
2758 * include/std/ranges (reverse_view::_S_needs_cached_begin):
2759 Set to true if the underlying non-common random-access range
2760 doesn't have a sized sentinel.
2762 2021-05-18 Patrick Palka <ppalka@redhat.com>
2765 * include/std/ranges (elements_view::_Iterator): Also befriend
2767 (elements_view::_Sentinel::_M_equal): Templatize.
2768 (elements_view::_Sentinel::_M_distance_from): Split out from ...
2769 (elements_view::_Sentinel::operator-): ... here. Depend on
2770 _Base2 instead of _Base in the return type.
2771 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
2774 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
2776 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
2777 until value change observed.
2778 (__waiter_base::_M_laundered): New member.
2779 (__waiter_base::_M_notify): Check _M_laundered to determine
2780 whether to wake one or all.
2781 (__detail::__atomic_compare): Return true if call to
2782 __builtin_memcmp() == 0.
2783 (__waiter_base::_S_do_spin_v): Adjust predicate.
2784 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
2787 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
2790 * include/experimental/bits/fs_path.h (__is_constructible_from):
2791 Test construction from a const lvalue, not an rvalue.
2792 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
2793 * testsuite/experimental/filesystem/path/construct/100630.cc:
2796 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
2799 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
2800 Declare (but do not define) partial specialization.
2801 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
2803 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
2805 * include/std/thread (jthread::_S_create): Fix static assert
2807 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
2808 * testsuite/30_threads/jthread/jthread.cc: Do not require
2809 pthread effective target.
2810 * testsuite/30_threads/jthread/2.cc: Moved to...
2811 * testsuite/30_threads/jthread/version.cc: ...here.
2813 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
2815 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
2816 * doc/Makefile.in: Regenerate.
2817 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
2819 * scripts/run_doxygen (print_usage): Always print to stdout and
2821 (fail): New function for exiting on error.
2822 (parse_options): Handle --latex_cmd. Do not treat --help the
2823 same as errors. Simplify handling of required arguments.
2825 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
2827 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
2828 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
2829 warnings. Replace bitwise AND with logical AND in loop
2831 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
2832 Replace bitwise AND with logical AND in loop condition.
2833 * testsuite/util/pstl/test_utils.h: Remove unused parameter
2836 2021-05-11 Patrick Palka <ppalka@redhat.com>
2838 * src/c++17/ryu/LOCAL_PATCHES: Update.
2839 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
2840 Remove declarations for never-defined functions.
2841 * testsuite/20_util/to_chars/4.cc: New test.
2843 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
2845 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
2846 alternative for macro.
2847 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
2849 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
2852 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
2854 * include/bits/allocator.h (allocator<void>) [C++20]: Add
2855 missing noexcept to constructor. Restore missing POCMA and
2856 is_always_equal_traits.
2857 [C++17]: Make construct and destroy members private and
2858 declare allocator_traits as a friend.
2859 * include/bits/memoryfwd.h (allocator_traits): Declare.
2860 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
2861 Add nodiscard attribute. Add static assertion for LWG 3307.
2862 * include/ext/new_allocator.h (new_allocator::allocate): Add
2863 static assertion for LWG 3307.
2864 * testsuite/20_util/allocator/void.cc: Check that converting
2865 constructor is noexcept. Check for propagation traits and
2866 size_type and difference_type. Check that pointer and
2867 const_pointer are gone in C++20.
2869 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2871 * include/std/stop_token: Remove TODO comment.
2873 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2875 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
2876 Initialize a non-reference deleter from an rvalue, as per LWG
2878 (__shared_ptr::_UniqCompatible): Add missing constraint.
2879 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
2880 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
2883 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2885 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
2886 -std=gnu++17 from dg-options directive.
2887 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
2889 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
2891 * testsuite/17_intro/headers/c++2017/operator_names.cc:
2893 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
2894 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
2895 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
2897 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
2898 * testsuite/18_support/byte/81076.cc: Likewise.
2899 * testsuite/18_support/byte/global_neg.cc: Likewise.
2900 * testsuite/18_support/byte/ops.cc: Likewise.
2901 * testsuite/18_support/byte/requirements.cc: Likewise.
2902 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
2903 * testsuite/18_support/launder/1.cc: Likewise.
2904 * testsuite/18_support/launder/nodiscard.cc: Likewise.
2905 * testsuite/18_support/launder/requirements.cc: Likewise.
2906 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
2907 * testsuite/18_support/new_aligned.cc: Likewise.
2908 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
2910 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
2912 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
2913 * testsuite/20_util/addressof/requirements/constexpr.cc:
2915 * testsuite/20_util/as_const/1.cc: Likewise.
2916 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
2917 * testsuite/20_util/bind/83427.cc: Likewise.
2918 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2919 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
2920 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
2922 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2924 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
2925 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
2927 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
2928 * testsuite/20_util/from_chars/requirements.cc: Likewise.
2929 * testsuite/20_util/function/91456.cc: Likewise.
2930 * testsuite/20_util/function/cons/deduction.cc: Likewise.
2931 * testsuite/20_util/function_objects/83607.cc: Likewise.
2932 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
2933 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
2934 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
2935 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
2936 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
2938 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
2940 * testsuite/20_util/has_unique_object_representations/value.cc:
2942 * testsuite/20_util/hash/nullptr.cc: Likewise.
2943 * testsuite/20_util/in_place/requirements.cc: Likewise.
2944 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
2945 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2947 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
2949 * testsuite/20_util/is_aggregate/value.cc: Likewise.
2950 * testsuite/20_util/is_invocable/83395.cc: Likewise.
2951 * testsuite/20_util/is_invocable/91456.cc: Likewise.
2952 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
2954 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
2956 * testsuite/20_util/is_invocable/value.cc: Likewise.
2957 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
2958 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
2959 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
2960 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
2962 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
2963 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
2964 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
2966 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2968 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2969 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
2971 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2973 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
2975 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
2977 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
2979 * testsuite/20_util/is_swappable/value.cc: Likewise.
2980 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
2982 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
2984 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
2985 * testsuite/20_util/logical_traits/83134.cc: Likewise.
2986 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
2988 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
2990 * testsuite/20_util/logical_traits/value.cc: Likewise.
2991 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
2992 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
2993 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
2995 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
2996 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
2997 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
2998 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
2999 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
3001 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
3003 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
3004 * testsuite/20_util/to_chars/3.cc: Likewise.
3005 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
3006 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
3007 * testsuite/20_util/to_chars/requirements.cc: Likewise.
3008 * testsuite/20_util/tuple/78939.cc: Likewise.
3009 * testsuite/20_util/tuple/apply/1.cc: Likewise.
3010 * testsuite/20_util/tuple/apply/2.cc: Likewise.
3011 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
3012 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
3013 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
3014 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
3015 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
3016 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
3017 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
3019 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
3020 * testsuite/20_util/void_t/1.cc: Likewise.
3021 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
3022 * testsuite/24_iterators/container_access.cc: Likewise.
3023 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
3025 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
3027 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
3029 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
3031 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
3032 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
3034 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
3035 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
3037 * testsuite/26_numerics/lcm/1.cc: Likewise.
3038 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
3039 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
3040 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
3042 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
3044 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
3046 * testsuite/27_io/types/4.cc: Likewise.
3047 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
3048 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
3049 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3051 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3053 * testsuite/20_util/function_objects/searchers.cc: Remove
3054 -std=gnu++17 from dg-options directive.
3055 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
3057 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3059 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
3061 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
3063 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
3065 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
3067 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
3069 * testsuite/25_algorithms/clamp/1.cc: Likewise.
3070 * testsuite/25_algorithms/clamp/2.cc: Likewise.
3071 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
3072 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
3074 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
3076 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
3077 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
3079 * testsuite/25_algorithms/sample/1.cc: Likewise.
3080 * testsuite/25_algorithms/sample/2.cc: Likewise.
3081 * testsuite/25_algorithms/sample/3.cc: Likewise.
3082 * testsuite/25_algorithms/sample/81221.cc: Likewise.
3083 * testsuite/25_algorithms/search/searcher.cc: Likewise.
3084 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
3085 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
3086 * testsuite/26_numerics/reduce/1.cc: Likewise.
3087 * testsuite/26_numerics/reduce/2.cc: Likewise.
3088 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
3089 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
3090 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
3092 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3094 * testsuite/23_containers/array/cons/deduction.cc: Remove
3095 -std=gnu++17 from dg-options directive.
3096 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
3097 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
3099 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
3101 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
3103 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
3104 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
3106 * testsuite/23_containers/forward_list/cons/deduction.cc:
3108 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
3110 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
3111 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
3113 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
3114 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
3115 * testsuite/23_containers/map/modifiers/insert/83226.cc:
3117 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
3119 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
3120 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
3122 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3123 * testsuite/23_containers/multimap/modifiers/extract.cc:
3125 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
3126 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3127 * testsuite/23_containers/multiset/modifiers/extract.cc:
3129 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
3130 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
3131 * testsuite/23_containers/queue/deduction.cc: Likewise.
3132 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
3134 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3135 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
3136 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
3137 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
3138 * testsuite/23_containers/stack/deduction.cc: Likewise.
3139 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
3141 * testsuite/23_containers/unordered_map/cons/deduction.cc:
3143 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
3145 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
3147 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
3149 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
3151 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3153 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
3155 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
3157 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3159 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
3161 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
3163 * testsuite/23_containers/unordered_set/cons/deduction.cc:
3165 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
3167 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
3169 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
3171 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
3172 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
3173 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
3176 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3178 * testsuite/21_strings/basic_string/79162.cc: Remove
3179 -std=gnu++17 from dg-options directive.
3180 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
3181 * testsuite/21_strings/basic_string/cons/char/79162.cc:
3183 * testsuite/21_strings/basic_string/cons/char/86138.cc:
3185 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
3186 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
3188 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
3190 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
3191 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
3193 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
3195 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
3196 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
3198 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
3200 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
3201 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
3202 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
3203 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
3205 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
3207 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
3209 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
3211 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
3213 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
3215 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
3217 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
3219 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
3221 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
3223 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
3225 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
3227 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
3229 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
3231 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
3233 * testsuite/21_strings/basic_string/operators/char/5.cc:
3235 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
3237 * testsuite/21_strings/basic_string_view/capacity/1.cc:
3239 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
3241 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
3243 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
3245 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
3247 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
3249 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
3251 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
3253 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
3255 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
3257 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
3259 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
3261 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3263 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
3265 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3267 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
3269 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
3271 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
3273 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3275 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3277 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3279 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3281 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
3283 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3285 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
3287 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
3289 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3291 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
3292 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
3294 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
3296 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
3298 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
3300 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
3302 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
3304 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
3306 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
3308 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
3310 * testsuite/21_strings/basic_string_view/literals/types.cc:
3312 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
3314 * testsuite/21_strings/basic_string_view/literals/values.cc:
3316 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3318 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3320 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3322 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3324 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
3326 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
3328 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
3330 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
3332 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
3334 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
3336 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
3338 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
3340 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
3342 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
3344 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
3346 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
3348 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
3350 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
3352 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3354 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3356 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
3358 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
3360 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
3362 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
3364 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
3366 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
3368 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
3370 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
3372 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
3374 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
3376 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
3378 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
3380 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
3382 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
3384 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
3386 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
3388 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
3390 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3392 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
3394 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3396 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
3398 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
3400 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
3402 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
3404 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
3406 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3408 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3410 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3412 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3414 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3416 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3418 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
3420 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3422 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
3424 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
3426 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
3427 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
3428 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
3430 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
3432 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3434 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
3435 from dg-options directive.
3436 * testsuite/20_util/memory_resource/2.cc: Likewise.
3437 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
3438 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
3440 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
3442 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
3444 * testsuite/20_util/monotonic_buffer_resource/release.cc:
3446 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
3448 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
3449 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
3451 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3452 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
3453 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
3455 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
3457 * testsuite/20_util/synchronized_pool_resource/cons.cc:
3459 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
3461 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
3463 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
3465 * testsuite/20_util/synchronized_pool_resource/options.cc:
3467 * testsuite/20_util/synchronized_pool_resource/release.cc:
3469 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
3471 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
3473 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
3475 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
3477 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
3479 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
3481 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
3483 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3485 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3486 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
3488 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3490 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
3492 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3493 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
3494 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3495 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
3496 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3497 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
3499 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3500 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
3502 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3503 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
3504 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3506 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
3508 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3510 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
3512 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3514 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
3516 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3518 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
3520 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3521 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
3523 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3525 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3527 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
3529 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
3530 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
3531 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
3532 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
3533 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
3534 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
3535 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
3536 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
3538 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
3540 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
3541 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
3542 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
3544 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
3545 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
3547 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
3548 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
3549 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
3550 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
3552 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3554 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
3555 dg-options directive.
3556 * testsuite/20_util/any/assign/2.cc: Likewise.
3557 * testsuite/20_util/any/assign/emplace.cc: Likewise.
3558 * testsuite/20_util/any/assign/exception.cc: Likewise.
3559 * testsuite/20_util/any/assign/self.cc: Likewise.
3560 * testsuite/20_util/any/cons/1.cc: Likewise.
3561 * testsuite/20_util/any/cons/2.cc: Likewise.
3562 * testsuite/20_util/any/cons/90415.cc: Likewise.
3563 * testsuite/20_util/any/cons/92156.cc: Likewise.
3564 * testsuite/20_util/any/cons/aligned.cc: Likewise.
3565 * testsuite/20_util/any/cons/explicit.cc: Likewise.
3566 * testsuite/20_util/any/cons/in_place.cc: Likewise.
3567 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
3568 * testsuite/20_util/any/make_any.cc: Likewise.
3569 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3570 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
3571 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
3572 * testsuite/20_util/any/misc/swap.cc: Likewise.
3573 * testsuite/20_util/any/modifiers/1.cc: Likewise.
3574 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
3575 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
3576 * testsuite/20_util/any/observers/type.cc: Likewise.
3577 * testsuite/20_util/any/requirements.cc: Likewise.
3578 * testsuite/20_util/any/typedefs.cc: Likewise.
3579 * testsuite/20_util/optional/77288.cc: Likewise.
3580 * testsuite/20_util/optional/84601.cc: Likewise.
3581 * testsuite/20_util/optional/assignment/1.cc: Likewise.
3582 * testsuite/20_util/optional/assignment/2.cc: Likewise.
3583 * testsuite/20_util/optional/assignment/3.cc: Likewise.
3584 * testsuite/20_util/optional/assignment/4.cc: Likewise.
3585 * testsuite/20_util/optional/assignment/5.cc: Likewise.
3586 * testsuite/20_util/optional/assignment/6.cc: Likewise.
3587 * testsuite/20_util/optional/assignment/7.cc: Likewise.
3588 * testsuite/20_util/optional/assignment/8.cc: Likewise.
3589 * testsuite/20_util/optional/assignment/9.cc: Likewise.
3590 * testsuite/20_util/optional/bad_access.cc: Likewise.
3591 * testsuite/20_util/optional/cons/77727.cc: Likewise.
3592 * testsuite/20_util/optional/cons/85642.cc: Likewise.
3593 * testsuite/20_util/optional/cons/copy.cc: Likewise.
3594 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
3595 * testsuite/20_util/optional/cons/default.cc: Likewise.
3596 * testsuite/20_util/optional/cons/move.cc: Likewise.
3597 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
3598 * testsuite/20_util/optional/cons/value.cc: Likewise.
3599 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
3600 * testsuite/20_util/optional/constexpr/cons/default.cc:
3602 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
3603 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
3604 * testsuite/20_util/optional/constexpr/make_optional.cc:
3606 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
3607 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
3608 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
3609 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
3610 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
3611 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
3612 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
3613 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
3614 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
3615 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
3616 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
3617 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
3618 * testsuite/20_util/optional/hash.cc: Likewise.
3619 * testsuite/20_util/optional/in_place.cc: Likewise.
3620 * testsuite/20_util/optional/make_optional.cc: Likewise.
3621 * testsuite/20_util/optional/nullopt.cc: Likewise.
3622 * testsuite/20_util/optional/observers/1.cc: Likewise.
3623 * testsuite/20_util/optional/observers/2.cc: Likewise.
3624 * testsuite/20_util/optional/observers/3.cc: Likewise.
3625 * testsuite/20_util/optional/observers/4.cc: Likewise.
3626 * testsuite/20_util/optional/observers/5.cc: Likewise.
3627 * testsuite/20_util/optional/observers/6.cc: Likewise.
3628 * testsuite/20_util/optional/relops/1.cc: Likewise.
3629 * testsuite/20_util/optional/relops/2.cc: Likewise.
3630 * testsuite/20_util/optional/relops/3.cc: Likewise.
3631 * testsuite/20_util/optional/relops/4.cc: Likewise.
3632 * testsuite/20_util/optional/relops/5.cc: Likewise.
3633 * testsuite/20_util/optional/relops/6.cc: Likewise.
3634 * testsuite/20_util/optional/relops/7.cc: Likewise.
3635 * testsuite/20_util/optional/requirements.cc: Likewise.
3636 * testsuite/20_util/optional/swap/1.cc: Likewise.
3637 * testsuite/20_util/optional/swap/2.cc: Likewise.
3638 * testsuite/20_util/optional/typedefs.cc: Likewise.
3639 * testsuite/20_util/variant/80165.cc: Likewise.
3640 * testsuite/20_util/variant/85183.cc: Likewise.
3641 * testsuite/20_util/variant/86874.cc: Likewise.
3642 * testsuite/20_util/variant/87431.cc: Likewise.
3643 * testsuite/20_util/variant/87619.cc: Likewise.
3644 * testsuite/20_util/variant/91807.cc: Likewise.
3645 * testsuite/20_util/variant/any.cc: Likewise.
3646 * testsuite/20_util/variant/compile.cc: Likewise.
3647 * testsuite/20_util/variant/deduction.cc: Likewise.
3648 * testsuite/20_util/variant/exception_safety.cc: Likewise.
3649 * testsuite/20_util/variant/hash.cc: Likewise.
3650 * testsuite/20_util/variant/index_type.cc: Likewise.
3651 * testsuite/20_util/variant/relops/89851.cc: Likewise.
3652 * testsuite/20_util/variant/relops/90008.cc: Likewise.
3653 * testsuite/20_util/variant/run.cc: Likewise.
3654 * testsuite/20_util/variant/visit.cc: Likewise.
3656 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3658 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
3659 -std=gnu++17 from dg-options directive.
3660 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
3661 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
3662 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
3663 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
3664 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
3665 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
3666 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
3667 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
3669 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
3670 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
3671 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
3672 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
3673 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
3674 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
3676 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
3677 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
3679 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3681 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
3682 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
3683 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
3684 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
3685 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
3686 * testsuite/27_io/filesystem/operations/create_directories.cc:
3688 * testsuite/27_io/filesystem/operations/create_directory.cc:
3690 * testsuite/27_io/filesystem/operations/create_symlink.cc:
3692 * testsuite/27_io/filesystem/operations/current_path.cc:
3694 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
3695 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3696 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
3697 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3698 * testsuite/27_io/filesystem/operations/last_write_time.cc:
3700 * testsuite/27_io/filesystem/operations/permissions.cc:
3702 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
3703 * testsuite/27_io/filesystem/operations/read_symlink.cc:
3705 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
3706 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
3707 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
3708 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
3709 * testsuite/27_io/filesystem/operations/resize_file.cc:
3711 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
3712 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3713 * testsuite/27_io/filesystem/operations/symlink_status.cc:
3715 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3717 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
3719 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
3720 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
3721 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
3722 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3723 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
3724 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
3725 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
3726 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
3727 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
3728 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
3729 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
3730 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
3731 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
3732 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
3733 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
3734 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
3735 * testsuite/27_io/filesystem/path/construct/default.cc:
3737 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
3738 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
3739 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
3740 * testsuite/27_io/filesystem/path/construct/string_view.cc:
3742 * testsuite/27_io/filesystem/path/decompose/extension.cc:
3744 * testsuite/27_io/filesystem/path/decompose/filename.cc:
3746 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
3748 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
3750 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
3752 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
3754 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
3756 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
3757 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
3759 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
3760 * testsuite/27_io/filesystem/path/generation/normal.cc:
3762 * testsuite/27_io/filesystem/path/generation/normal2.cc:
3764 * testsuite/27_io/filesystem/path/generation/proximate.cc:
3766 * testsuite/27_io/filesystem/path/generation/relative.cc:
3768 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
3769 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
3771 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
3772 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
3773 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3774 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
3775 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
3776 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
3777 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
3779 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
3781 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
3783 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
3785 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
3786 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
3787 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
3789 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
3790 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
3791 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
3792 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3794 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
3795 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
3796 * testsuite/27_io/filesystem/path/query/has_extension.cc:
3798 * testsuite/27_io/filesystem/path/query/has_filename.cc:
3800 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
3802 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
3804 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
3806 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
3808 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
3810 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
3811 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
3813 * testsuite/27_io/filesystem/path/query/is_relative.cc:
3815 * testsuite/experimental/filesystem/path/construct/string_view.cc:
3818 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3820 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
3821 Remove -std=gnu++17 from dg-options.
3822 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
3824 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
3826 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
3828 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
3829 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
3831 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
3833 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
3835 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
3837 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
3839 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
3841 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
3843 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
3845 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
3847 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
3849 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
3851 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
3853 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
3855 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
3857 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
3859 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
3861 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
3863 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
3865 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
3867 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
3869 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
3871 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
3873 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
3875 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
3877 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3879 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
3881 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
3883 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
3885 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
3887 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
3889 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
3891 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
3893 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
3895 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3897 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
3899 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
3900 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
3902 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
3904 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
3906 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
3908 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
3910 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
3911 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
3912 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
3913 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
3914 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
3915 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
3916 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
3917 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
3919 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
3920 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
3921 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
3923 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
3926 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3928 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
3929 for additional errors in C++20.
3930 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3932 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3933 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3935 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3937 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
3938 clash with std::any.
3940 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
3942 * include/std/istream (__rvalue_stream_extraction_t): Replace
3943 use of __rval_streamable.
3944 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
3945 (__rval_streamable): Remove.
3946 (_Require_derived_from_ios_base, __derived_from_ios_base): New
3947 helper for checking constraints.
3948 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
3949 reference to the wrong subclause of the standard.
3950 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
3952 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
3954 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
3956 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
3958 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
3961 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3963 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
3964 Improve static_assert messages.
3965 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
3966 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
3968 2021-05-06 Patrick Palka <ppalka@redhat.com>
3970 * include/std/ranges (filter_view::_Iterator::base): Make the
3971 const& overload unconstrained and return a const reference as
3972 per LWG 3533. Make unconditionally noexcept.
3973 (transform_view::_Iterator::base): Likewise.
3974 (elements_view::_Iterator::base): Likewise.
3976 2021-05-06 Patrick Palka <ppalka@redhat.com>
3978 * include/bits/stl_iterator.h (move_iterator::base): Make the
3979 const& overload unconstrained and return a const reference as
3980 per LWG 3391. Make unconditionally noexcept.
3981 (counted_iterator::base): Likewise.
3982 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
3983 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
3984 has_member_base concept to decay-copy the result of base().
3986 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3988 * include/std/type_traits (remove_cvref_t): Define in terms of
3990 * testsuite/20_util/remove_cvref/value.cc: Check alias.
3992 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3995 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3997 * include/std/charconv (__from_chars_alnum): Pass unsigned
3998 char to std::isdigit.
4000 2021-05-05 Patrick Palka <ppalka@redhat.com>
4002 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
4003 Remove constraints on this partial specialization.
4004 * include/std/ranges (enable_borrowed_range<iota_view>):
4007 2021-05-05 Patrick Palka <ppalka@redhat.com>
4009 * include/std/ranges (transform_view::_Iterator::iter_swap):
4010 Remove as per LWG 3520.
4011 (join_view::_Iterator::iter_swap): Add indirectly_swappable
4012 constraint as per LWG 3517.
4014 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
4016 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
4018 * testsuite/20_util/function_objects/invoke/version.cc: New test.
4020 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
4022 * include/std/charconv (__from_chars_alnum): Pass unsigned
4023 char to std::isdigit.
4025 2021-05-05 Corentin Gay <gay@adacore.com>
4027 * acinclude.m4: Add VxWorks-specific case for the
4028 configuration of ctypes.
4029 * configure: Regenerate.
4030 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
4032 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
4033 * config/os/vxworks/ctype_configure_char.cc: Likewise.
4034 * config/os/vxworks/ctype_inline.h: Likewise.
4035 * testsuite/28_regex/traits/char/isctype.cc: Defines
4036 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
4037 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
4039 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4041 * include/std/future (promise::set_value): Check for existence
4042 of shared state before dereferncing it.
4043 (promise::set_exception, promise::set_value_at_thread_exit)
4044 (promise::set_exception_at_thread_exit): Likewise.
4045 (promise<R&>::set_value, promise<R&>::set_exception)
4046 (promise<R&>::set_value_at_thread_exit)
4047 (promise<R&>::set_exception_at_thread_exit): Likewise.
4048 (promise<void>::set_value, promise<void>::set_exception)
4049 (promise<void>::set_value_at_thread_exit)
4050 (promise<void>::set_exception_at_thread_exit): Likewise.
4051 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
4052 Remove unused variable.
4054 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4056 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
4057 Do not do arithmetic on null pointer.
4059 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4061 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
4062 (find_key_pointer(key_const_reference, false_type))
4063 (find_key_pointer(key_const_reference, true_type)): Do not
4064 dereference null pointer.
4066 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4068 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
4070 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
4071 non-zero value to null pointer.
4072 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
4073 Use past-the-end iterator for result.
4074 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
4075 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
4077 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4080 * include/std/variant (__get_t): New alias template yielding the
4081 return type of std::get<N> on a variant.
4082 (__visit_result_t): New alias template yielding the result of
4084 (__same_types): Move into namespace __detail::__variant.
4085 (__check_visitor_results): Likewise. Use __invoke_result_t and
4087 (__check_visitor_result): Remove.
4088 (visit): Use __visit_result_t for return type.
4089 * testsuite/20_util/variant/100384.cc: New test.
4091 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4093 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
4094 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
4095 * config.h.in: Regenerate.
4096 * configure: Regenerate.
4097 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
4098 * include/bits/random.h (_Select_uint_least_t<s, 1>):
4099 Use __SIZEOF_INT128__ to decide whether to use __int128.
4100 * include/std/charconv (__to_chars_unsigned_type): Likewise.
4102 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
4104 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
4105 * doc/html/manual/facets.html: Regenerate.
4107 2021-04-30 Patrick Palka <ppalka@redhat.com>
4109 * include/std/ranges (__detail::__non_propating_cache): Define
4111 (join_view): Remove constraints on the value and reference types
4112 of the wrapped iterator type as per P2328.
4113 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
4114 (join_view::_Iterator::operator++): Likewise.
4115 (join_view::_M_inner): Use __non_propating_cache as per P2328.
4116 Remove now-redundant use of __maybe_present_t.
4117 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
4120 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4122 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
4123 Only define for C++17 and later.
4124 * include/std/version (__cpp_lib_semaphore): Fix condition
4125 to match the one in <semaphore>.
4127 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4129 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
4130 * config.h.in: Regenerate.
4131 * configure: Regenerate.
4132 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
4133 * include/bits/postypes.h: Remove include of <stdint.h> and
4134 definition/undefinition of the __STDC_LIMIT_MACROS and
4135 __STDC_CONSTANT_MACROS macros.
4136 (streamoff): Use __INT64_TYPE__ if defined.
4138 2021-04-30 Patrick Palka <ppalka@redhat.com>
4140 * include/std/ranges (split_view::_InnerIter::operator++):
4141 Depend on _Base instead of _Vp directly, as per LWG 3532.
4143 2021-04-30 Patrick Palka <ppalka@redhat.com>
4145 * include/bits/ranges_util.h (subrange::subrange): Avoid
4146 list-initialization in delegating constructor.
4147 * include/std/ranges (single_view): Replace implicit guide
4148 with explicit deduction guide that decays its argument.
4149 (_Single::operator()): Avoid CTAD when constructing the
4151 (_Iota::operator()): Avoid list-initialization.
4152 (__detail::__can_filter_view, _Filter::operator()): Likewise.
4153 (__detail::__can_transform_view, _Transform::operator()): Likewise.
4154 (take_view::begin): Likewise.
4155 (__detail::__can_take_view, _Take::operator()): Likewise.
4156 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
4157 (__detail::__can_drop_view, _Drop::operator()): Likewise.
4158 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
4159 (split_view::split_view): Use views::single when initializing
4161 (__detail::__can_split_view, _Split::operator()): Avoid
4162 list-initialization.
4163 (_Counted::operator()): Likewise.
4164 * testsuite/std/ranges/p2367.cc: New test.
4166 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4169 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
4171 * include/bits/basic_string.tcc (basic_string::swap)
4172 (basic_string::assign): Likewise.
4173 * include/bits/deque.tcc (deque::operator=(const deque&)):
4175 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
4177 * include/bits/vector.tcc (vector::operator=(const vector&)):
4180 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4182 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
4184 * include/std/ostream (operator<<(Ostream&&, const x&)):
4186 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
4187 Adjust dg-error pattern.
4188 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
4190 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
4191 is_extractable trait to replace std::__is_extractable. Make it
4192 work with rvalue streams as well as lvalues, to replace f() and
4193 g() helper functions.
4194 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
4196 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
4197 Define is_insertable trait to replace std::__is_insertable. Make
4198 it work with rvalue streams as well as lvalues, to replace f()
4199 and g() helper functions.
4200 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
4202 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
4203 errors from new constraints.
4204 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
4205 which are no longer expected to compile.
4206 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
4207 Verify LWG 1203 changes.
4209 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4212 * include/experimental/socket (__basic_socket_impl::set_option)
4213 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
4214 Just set error code.
4215 * testsuite/experimental/net/socket/socket_base.cc: CHeck
4216 for <sys/socket.h> not <socket.h>.
4218 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4223 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
4224 Use new effective-target keyword.
4225 * testsuite/experimental/net/internet/address/v4/cons.cc:
4227 * testsuite/experimental/net/internet/address/v4/creation.cc:
4229 * testsuite/experimental/net/internet/address/v4/members.cc:
4231 * testsuite/experimental/net/internet/address/v6/members.cc:
4233 * testsuite/experimental/net/internet/resolver/base.cc:
4235 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
4237 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
4239 * testsuite/experimental/net/internet/socket/opt.cc:
4241 * testsuite/experimental/net/internet/tcp.cc:
4243 * testsuite/experimental/net/internet/udp.cc:
4245 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
4246 New proc to check net_ts_ip et.
4248 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4251 * testsuite/20_util/pair/requirements/structural.cc: New test.
4253 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4255 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
4256 new definitions for constructors and assignment operators using
4257 concepts for constraints.
4258 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
4260 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
4261 expected error messages to also match C++20 errors.
4263 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4266 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
4267 Combine and replace with ...
4268 (_PCC::_DeprConsPair): New SFINAE helper function.
4269 (pair): Merge preprocessor blocks so that all C++03 members
4270 are defined together at the end.
4271 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
4272 Replace _T1 and _T2 parameters with __null_ptr_constant and
4274 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
4275 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
4276 * testsuite/20_util/pair/cons/99957.cc: New test.
4278 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4280 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
4281 * include/std/version (__cpp_lib_constexpr_string): Define.
4282 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4283 Check for __cpp_lib_constexpr_string.
4284 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
4286 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
4288 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4290 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
4291 dealing with errors. Use '@' to prevent shell command being
4293 * doc/Makefile.in: Regenerate.
4295 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4298 * include/bits/std_thread.h (thread::hardware_concurrency): Add
4299 missing noexcept to inline definition for non-gthreads targets.
4301 2021-04-28 Patrick Palka <ppalka@redhat.com>
4307 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
4308 the __value_comp lambda an explicit bool return type.
4309 (__is_permutation_fn::operator()): Give the __proj_scan local
4310 variable auto&& return type. Give the __comp_scan lambda an
4311 explicit bool return type.
4312 (__remove_fn::operator()): Give the __pred lambda an explicit
4314 (__partition_fn::operator()): Don't std::move __first twice
4315 when returning an empty subrange.
4316 (__min_fn::operator()): Don't std::move __comp.
4317 (__max_fn::operator()): Likewise.
4318 (__minmax_fn::operator()): Likewise.
4320 2021-04-27 Patrick Palka <ppalka@redhat.com>
4323 * include/std/ranges (join_view::_Iterator::operator++): Correct
4324 the return type of the lambda to avoid returning a copy of
4325 _M_parent->_M_inner.
4326 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
4328 2021-04-27 Jakub Jelinek <jakub@redhat.com>
4331 2021-04-22 Jakub Jelinek <jakub@redhat.com>
4334 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4336 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4339 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4341 * include/experimental/internet (address_v6::bytes_type): Adjust
4343 (basic_endpoint): Define _M_is_v6() to put all checks for
4344 AF_INET6 in one place.
4345 (basic_endpoint::resize): Simplify.
4346 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
4347 (operator!=(const tcp&, const tcp&)): Likewise.
4348 (operator==(const udp&, const udp&)): Likewise.
4349 (operator!=(const udp&, const udp&)): Likewise.
4350 * testsuite/experimental/net/internet/tcp.cc: New test.
4351 * testsuite/experimental/net/internet/udp.cc: New test.
4353 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4356 * include/experimental/internet (resolver_errc, resolver_category())
4357 (make_error_code, make_error_condition): Define unconditionally,
4358 only make enumerators and use of gai_strerror depend on the
4359 availability of <netdb.h>.
4360 (address_v4::to_string): Use correct constant for string length.
4361 (address_v4::to_string, address_v6::to_string): Define
4362 unconditionally, throw if unsupported.
4363 (make_address_v4, make_address_v6): Define unconditionally.
4364 Return an error if unsupported.
4365 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
4367 * testsuite/experimental/net/internet/socket/opt.cc: Check for
4368 <netinet/in.h> and <netinet/tcp.h> before using types from
4371 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4374 * include/experimental/internet (resolver_base::flags):
4375 Define overloaded operators as hidden friends.
4376 * include/experimental/socket (socket_base::message_flags):
4379 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4381 * include/experimental/internet (tcp::no_delay, v6_only)
4382 (unicast::hops, multicast::hops, multicast::enable_loopback):
4383 Change access of base class and static data members. Add
4384 using-declaration for __socket_crtp::operator=(_Tp).
4385 (multicast::__mcastopt): New type.
4386 (multicast::join_group, multicast::leave_group): Derive from
4387 __mcastopt for common implementation.
4388 * include/experimental/socket: Add comment.
4389 * testsuite/experimental/net/internet/socket/opt.cc: New test.
4390 * testsuite/experimental/net/socket/socket_base.cc: Check for
4391 protected constructor/destructor of socket_base. Check for
4392 explicit constructors of socket option classes.
4394 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4396 * include/experimental/bits/net.h (__socket_base): Add
4397 bool template parameter to allow BooleanSocketOption and
4398 IntegerSocketOption to have different __socket_base<int>
4400 (__socket_base<bool>): Adjust base class.
4401 (__socket_base<int>): Add partial specialization.
4402 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
4403 * include/experimental/socket (socket_base::broadcast)
4404 (socket_base::debug, socket_base::do_not_route)
4405 (socket_base::keep_alive, socket_base::linger)
4406 (socket_base::out_of_band_inline)
4407 (socket_base::receive_buffer_size)
4408 (socket_base::receive_low_watermark)
4409 (socket_base::reuse_address, socket_base::send_buffer_size)
4410 (socket_base::send_low_watermark): Add using-declaration for
4411 __socket_crtp::operator=(_Tp).
4412 * testsuite/experimental/net/socket/socket_base.cc: Check
4413 properties of socket option types.
4415 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4417 * include/experimental/internet (resolver_base::flags): Remove
4418 enumerators. Initialize constants directly with desired values.
4419 Make all operators constexpr and noexcept.
4420 * testsuite/experimental/net/internet/resolver/base.cc: Use
4421 __gnu_test::test_bitmask_values for bitmask type. Check
4422 construction and destruction is protected.
4424 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4426 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
4428 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4431 * include/experimental/internet (net::ip::make_error_code)
4432 (net::ip::make_error_condition, net::ip::make_network_v4)
4433 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
4435 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
4437 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
4438 (add_options_for_libatomic): Use atomic_link_flags.
4440 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4443 * include/experimental/io_context (io_context): Define
4444 dummy_pollfd type so that most member functions still compile
4445 without <poll.h> and struct pollfd.
4447 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4449 * include/experimental/io_context (io_context::async_wait): Add
4451 * include/experimental/socket (basic_socket::async_connect):
4452 Cast wait_type constant to int.
4453 (basic_datagram_socket::async_receive): Likewise.
4454 (basic_datagram_socket::async_receive_from): Likewise.
4455 (basic_datagram_socket::async_send): Likewise.
4456 (basic_datagram_socket::async_send_to): Likewise.
4457 (basic_stream_socket::async_receive): Likewise.
4458 (basic_stream_socket::async_send): Likewise. Use io_context
4459 parameter directly, instead of via an executor.
4460 (basic_socket_acceptor::async_accept): Likewise.
4462 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4464 * include/experimental/socket (socket_base::shutdown_type):
4465 (socket_base::wait_type, socket_base::message_flags):
4466 Remove enumerators. Initialize constants directly with desired
4468 (socket_base::message_flags): Make all operators constexpr and
4470 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
4472 * testsuite/experimental/net/socket/socket_base.cc: New test.
4474 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
4476 * config/os/aix/atomicity.h: Delete.
4478 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4480 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
4481 Handle system_clock as well as steady_clock.
4482 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
4483 * testsuite/30_threads/semaphore/try_acquire_until.cc:
4486 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4488 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
4489 options for libatomic.
4491 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4493 * config/os/gnu-linux/os_defines.h: Fix type in comment.
4495 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4498 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
4499 is not an array type.
4500 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
4501 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
4503 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
4505 * include/bits/atomic_wait.h: Always notify waiters in the
4506 case of 'bare' address notification.
4508 2021-04-22 Jakub Jelinek <jakub@redhat.com>
4511 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4513 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4516 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4519 * include/bits/semaphore_base.h: Remove #error.
4520 * include/std/semaphore: Do not define anything unless one of
4521 the implementations is available.
4523 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
4525 * include/bits/semaphore_base.h: Always reload __old in
4526 __atomic_semaphore::_S_do_try_acquire().
4527 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4530 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
4531 Jonathan Wakely <jwakely@redhat.com>
4534 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
4535 * python/Makefile.in: Regenerate.
4537 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
4539 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
4540 member to __platform_wait.
4542 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
4544 * include/std/latch: Replace tab characters in license text.
4545 * include/std/semaphore: Likewise.
4547 2021-04-21 Jakub Jelinek <jakub@redhat.com>
4550 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
4551 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
4552 * configure: Regenerated.
4553 * config.h.in: Regenerated.
4555 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
4557 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
4558 test for targets not using futexes for semaphores.
4559 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
4560 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4561 Disable for all targets.
4563 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
4565 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
4566 * include/Makefile.in: Regenerate.
4567 * include/bits/this_thread_sleep.h: New file.
4568 * include/bits/atomic_base.h: Adjust all calls
4569 to __atomic_wait/__atomic_notify for new call signatures.
4570 * include/bits/atomic_timed_wait.h: Extensive rewrite.
4571 * include/bits/atomic_wait.h: Likewise.
4572 * include/bits/semaphore_base.h: Adjust all calls
4573 to __atomic_wait/__atomic_notify for new call signatures.
4574 * include/std/atomic: Likewise.
4575 * include/std/barrier: Likewise.
4576 * include/std/latch: Likewise.
4577 * include/std/semaphore: Likewise.
4578 * include/std/thread (this_thread::sleep_for)
4579 (this_thread::sleep_until): Move to new header.
4580 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
4582 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
4583 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
4584 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
4585 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
4586 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
4587 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
4589 2021-04-20 Patrick Palka <ppalka@redhat.com>
4592 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
4594 (move_iterator): Derive from the above in C++20 in order to
4595 conditionally define iterator_category as per P2259.
4596 (move_iterator::__base_cat): No longer used, so remove.
4597 (move_iterator::iterator_category): Remove in C++20.
4598 (__detail::__common_iter_use_postfix_proxy): Define.
4599 (common_iterator::_Proxy): Rename to ...
4600 (common_iterator:__arrow_proxy): ... this.
4601 (common_iterator::__postfix_proxy): Define as per P2259.
4602 (common_iterator::operator->): Adjust.
4603 (common_iterator::operator++): Adjust as per P2259.
4604 (iterator_traits<common_iterator>::_S_iter_cat): Define.
4605 (iterator_traits<common_iterator>::iterator_category): Change as
4607 (__detail::__counted_iter_value_type): Define.
4608 (__detail::__counted_iter_concept): Define.
4609 (__detail::__counted_iter_cat): Define.
4610 (counted_iterator): Derive from the above three classes in order
4611 to conditionally define value_type, iterator_concept and
4612 iterator category respectively as per P2259.
4613 (counted_iterator::operator->): Define as per P2259.
4614 (incrementable_traits<counted_iterator>): Remove as per P2259.
4615 (iterator_traits<counted_iterator>): Adjust as per P2259.
4616 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
4617 (iota_view::_Iterator): Derive from the above in order to
4618 conditionally define iterator_category as per P2259.
4619 (iota_view::_S_iter_cat): Rename to ...
4620 (iota_view::_S_iter_concept): ... this.
4621 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
4622 (iota_view::iterator_category): Remove.
4623 (__detail::__filter_view_iter_cat): Define.
4624 (filter_view::_Iterator): Derive from the above in order to
4625 conditionally define iterator_category as per P2259.
4626 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
4627 (filter_view::_Iterator::iterator_category): Remove.
4628 (transform_view::_Base): Define.
4629 (transform_view::__iter_cat): Define.
4630 (transform_view::_Iterator): Derive from the above in order to
4631 conditionally define iterator_category as per P2259.
4632 (transform_view::_Iterator::_Base): Just alias
4633 transform_view::_Base.
4634 (transform_view::_Iterator::_S_iter_cat): Move to struct
4635 transform_view::__iter_cat.
4636 (transform_view::_Iterator::iterator_category): Remove.
4637 (transform_view::_Sentinel::_Base): Just alias
4638 transform_view::_Base.
4639 (join_view::_Base): Define.
4640 (join_view::_Outer_iter): Define.
4641 (join_view::_Inner_iter): Define.
4642 (join_view::_S_ref_is_glvalue): Define.
4643 (join_view::__iter_cat): Define.
4644 (join_view::_Iterator): Derive from it in order to conditionally
4645 define iterator_category as per P2259.
4646 (join_view::_Iterator::_Base): Just alias join_view::_Base.
4647 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
4648 join_view::_S_ref_is_glvalue.
4649 (join_view::_Iterator::_S_iter_cat): Move to struct
4650 transform_view::__iter_cat.
4651 (join_view::_Iterator::_Outer_iter): Just alias
4652 join_view::_Outer_iter.
4653 (join_view::_Iterator::_Inner_iter): Just alias
4654 join_view::_Inner_iter.
4655 (join_view::_Iterator::iterator_category): Remove.
4656 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
4657 (__detail::__split_view_outer_iter_cat): Define.
4658 (__detail::__split_view_inner_iter_cat): Define.
4659 (split_view::_Base): Define.
4660 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
4661 in order to conditionally define iterator_category as per P2259.
4662 (split_view::_Outer_iter::iterator_category): Remove.
4663 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
4664 in order to conditionally define iterator_category as per P2259.
4665 (split_view::_Inner_iter::_S_iter_cat): Move to
4666 __split_view_inner_iter_cat.
4667 (split_view::_Inner_iter::iterator_category): Remove.
4668 (elements_view::_Base): Define.
4669 (elements_view::__iter_cat): Define.
4670 (elements_view::_Iterator): Derive from the above in order to
4671 conditionall define iterator_category as per P2259.
4672 (elements_view::_Iterator::_Base): Just alias
4673 elements_view::_Base.
4674 (elements_view::_Iterator::_S_iter_concept)
4675 (elements_view::_Iterator::iterator_concept): Define as per
4677 (elements_view::_Iterator::iterator_category): Remove.
4678 (elements_view::_Sentinel::_Base): Just alias
4679 elements_view::_Base.
4680 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
4681 Adjust constraints on iterator_traits<counted_iterator>.
4682 * testsuite/std/ranges/p2259.cc: New test.
4684 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
4687 * include/std/charconv (__cpp_lib_to_chars): Define
4689 * include/std/version (__cpp_lib_to_chars): Likewise..
4690 * testsuite/20_util/from_chars/4.cc: Only check feature test
4691 macro, not _GLIBCXX_HAVE_USELOCALE.
4692 * testsuite/20_util/from_chars/5.cc: Likewise.
4693 * testsuite/20_util/from_chars/6.cc: Likewise.
4694 * testsuite/20_util/to_chars/long_double.cc: Likewise.
4696 2021-04-20 Jakub Jelinek <jakub@redhat.com>
4698 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
4699 versions with _IEEE128_ substring are found, set ieee_version_found
4700 to true. Ignore missing symbols with _IEEE128_ in version name if
4701 !ieee_version_found. Use i->first as version_name instead of
4702 i->second.version_name if the latter is empty.
4703 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4705 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
4707 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
4710 2021-04-17 Jakub Jelinek <jakub@redhat.com>
4712 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
4713 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
4715 2021-04-17 Jakub Jelinek <jakub@redhat.com>
4717 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
4718 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
4719 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
4720 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
4721 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
4722 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4724 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
4726 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
4727 add libatomic options for 32-bit sparc*-*-linux-gnu.
4729 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
4732 * libsupc++/Makefile.am: Add atomicity.cc here.
4733 * src/c++98/Makefile.am: Remove it from here.
4734 * libsupc++/Makefile.in: Regenerate.
4735 * src/c++98/Makefile.in: Regenerate.
4736 * testsuite/18_support/exception_ptr/96657.cc: New test.
4738 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
4741 * include/std/bit: Only include <ext/numeric_traits.h> for
4742 hosted build, use <limits> otherwise.
4744 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
4746 * doc/xml/manual/backwards_compatibility.xml: Remove porting
4747 notes for libg++ and libstdc++-v2, and bibliography.
4748 * doc/html/*: Regenerated.
4750 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
4753 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
4754 Remove helper concept.
4755 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
4756 deduction guides, as per LWG 3404.
4757 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
4758 template argument deduction fails.
4760 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
4762 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
4763 Adjust expected error for C++20 mode.
4764 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
4767 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
4770 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
4771 standard headers and XFAIL for effective-target c++20.
4773 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
4776 * include/debug/helper_functions.h (__can_advance(_InputIterator,
4777 const std::pair<_Diff, _Distance_precision>&, int)): New.
4778 (__can_advance(const _Safe_iterator<>&,
4779 const std::pair<_Diff, _Distance_precision>&, int)): New.
4780 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
4782 (__glibcxx_check_can_increment_range): Adapt to use latter.
4783 (__glibcxx_check_can_decrement_range): Likewise.
4784 * include/debug/safe_iterator.h
4785 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4787 (__can_advance(const _Safe_iterator<>&,
4788 const std::pair<_Diff, _Distance_precision>&, int)): New.
4789 * include/debug/safe_iterator.tcc
4790 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4792 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
4793 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
4795 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
4796 (__copy_move_backward_a): Likewise.
4797 (__equal_aux): Likewise.
4798 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
4799 const std::pair<_Diff, _Distance_precision>&, int)): New.
4800 (__can_advance(const std::move_iterator<>&,
4801 const std::pair<_Diff, _Distance_precision>&, int)): New.
4802 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
4804 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
4807 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
4808 to be a valid constexpr function in C++11.
4809 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
4811 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
4813 * include/bits/fs_fwd.h: Fix doxygen group command.
4814 * include/bits/streambuf_iterator.h: Likewise.
4815 * include/bits/uses_allocator_args.h: Likewise.
4816 * include/std/memory: Likewise.
4817 * include/tr1/complex: Likewise.
4819 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4821 * include/bits/basic_string.h: Tweak doxygen comment.
4823 2021-04-08 Patrick Palka <ppalka@redhat.com>
4825 * include/std/ranges (__detail::find): Define.
4826 (split_view::_OuterIter::operator++): Apply proposed resolution
4828 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
4830 2021-04-08 Patrick Palka <ppalka@redhat.com>
4832 * include/std/ranges (__detail::find_if): Simplify.
4833 (__detail::find_if_not): Likewise.
4834 (__detail::min): Remove.
4835 (__detail::mismatch): Simplify.
4836 (take_view::size): Use std::min instead of __detail::min.
4838 2021-04-08 Patrick Palka <ppalka@redhat.com>
4840 * include/std/ranges (__detail::__returnable_element): New
4842 (elements_view): Use this concept in its constraints. Add
4843 missing private access specifier.
4844 (elements_view::_S_get_element): Define as per LWG 3502.
4845 (elements_view::operator*, elements_view::operator[]): Use
4847 (elements_view::operator++): Remove unnecessary constraint
4849 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
4851 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4853 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
4854 out-of-memory error in log file.
4855 * doc/Makefile.in: Regenerate.
4857 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4859 * configure: Regenerate.
4861 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4863 * include/bits/random.h: Fix doxygen group commands.
4864 * include/bits/regex_constants.h: Likewise.
4865 * include/tr1/random.h: Likewise.
4867 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4869 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
4870 New function to determine noexcept-specifier for move
4872 (_Hashtable): Use _S_nothrow_move() on move constructors.
4873 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
4874 Correct static assertion message.
4875 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
4877 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
4879 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
4882 2021-04-08 Patrick Palka <ppalka@redhat.com>
4885 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
4886 on targets without a large long double. XFAIL the execution on
4887 targets with a non-conforming printf.
4889 2021-04-08 Patrick Palka <ppalka@redhat.com>
4892 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
4893 (__adaptor::__adaptor_invocable): New concept.
4894 (__adaptor::__adaptor_partial_app_viable): New concept.
4895 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
4896 non-template base class.
4897 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
4899 (__adaptor::_Partial): New class template that represents
4900 partial application of a range adaptor non-closure.
4901 (__adaptor::__pipe_invocable): New concept.
4902 (__adaptor::_Pipe): New class template.
4903 (__detail::__can_ref_view): New concept.
4904 (__detail::__can_subrange): New concept.
4905 (all): Replace the lambda here with ...
4906 (_All): ... this functor. Add appropriate constraints.
4907 (__detail::__can_filter_view): New concept.
4908 (filter, _Filter): As in all/_All.
4909 (__detail::__can_transform): New concept.
4910 (transform, _Transform): As in all/_All.
4911 (__detail::__can_take_view): New concept.
4912 (take, _Take): As in all/_All.
4913 (__detail::__can_take_while_view): New concept.
4914 (take_while, _TakeWhile): As in all/_All.
4915 (__detail::__can_drop_view): New concept.
4916 (drop, _Drop): As in all/_All.
4917 (__detail::__can_drop_while_view): New concept.
4918 (drop_while, _DropWhile): As in all/_All.
4919 (__detail::__can_join_view): New concept.
4920 (join, _Join): As in all/_All.
4921 (__detail::__can_split_view): New concept.
4922 (split, _Split): As in all/_All. Rename template parameter
4924 (__detail::__already_common): New concept.
4925 (__detail::__can_common_view): New concept.
4926 (common, _Common): As in all/_All.
4927 (__detail::__can_reverse_view): New concept.
4928 (reverse, _Reverse): As in all/_All.
4929 (__detail::__can_elements_view): New concept.
4930 (elements, _Elements): As in all/_All.
4931 (keys, values): Adjust.
4932 * testsuite/std/ranges/adaptors/99433.cc: New test.
4933 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
4934 adding empty range adaptor closure objects to a pipeline doesn't
4935 increase the size of the pipeline.
4937 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
4938 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
4939 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
4940 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
4941 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
4942 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
4943 * testsuite/std/ranges/adaptors/p2281.cc: New test.
4944 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
4945 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
4948 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
4949 expected error message.
4950 (test02): Likewise. Extend test.
4951 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
4952 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
4953 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
4956 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4958 * include/std/string_view: Adjust Doxygen @file comment.
4960 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4962 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
4963 specialization to not match incomplete enum types. Use a
4964 requires-expression instead of instantiating is_convertible.
4965 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
4966 * testsuite/20_util/is_scoped_enum/value.cc: Check with
4967 incomplete types and opaque-enum-declarations.
4969 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
4972 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
4973 non-const member on _M_pathname, to avoid copy-on-write.
4974 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4975 Check construction from strings that might be shared.
4977 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4979 * include/bits/move.h (forward, move, move_if_noexcept)
4980 (addressof): Add _GLIBCXX_NODISCARD.
4981 * include/bits/ranges_cmp.h (identity::operator()): Add
4982 nodiscard attribute.
4983 * include/c_global/cstddef (to_integer): Likewise.
4984 * include/std/bit (bit_cast): Likewise.
4985 * include/std/utility (as_const, to_underlying): Likewise.
4987 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4989 * include/bits/move.h (forward): Change static_assert message
4990 to be unambiguous about what must be true.
4991 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
4992 * testsuite/20_util/forward/f_neg.cc: Likewise.
4994 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4996 * include/bits/alloc_traits.h: Use markdown for code font.
4997 * include/bits/basic_string.h: Fix @param names.
4998 * include/bits/max_size_type.h: Remove period after @file.
4999 * include/bits/regex.h: Fix duplicate @retval names, and rename.
5000 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
5001 group open to match existing group close.
5002 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
5005 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5007 * include/bits/atomic_base.h: Fix doxygen group close.
5008 * include/bits/basic_ios.h: Likewise.
5009 * include/bits/forward_list.h: Likewise.
5010 * include/bits/fs_dir.h: Likewise.
5011 * include/bits/fs_ops.h: Likewise.
5012 * include/bits/fs_path.h: Likewise.
5013 * include/bits/functional_hash.h: Likewise.
5014 * include/bits/gslice.h: Likewise.
5015 * include/bits/gslice_array.h: Likewise.
5016 * include/bits/hashtable_policy.h: Likewise.
5017 * include/bits/indirect_array.h: Likewise.
5018 * include/bits/locale_classes.h: Likewise.
5019 * include/bits/locale_facets.h: Likewise.
5020 * include/bits/locale_facets_nonio.h: Likewise.
5021 * include/bits/mask_array.h: Likewise.
5022 * include/bits/refwrap.h: Likewise.
5023 * include/bits/regex.h: Likewise.
5024 * include/bits/regex_automaton.h: Likewise.
5025 * include/bits/regex_compiler.h: Likewise.
5026 * include/bits/regex_constants.h: Likewise.
5027 * include/bits/regex_error.h: Likewise.
5028 * include/bits/regex_executor.h: Likewise.
5029 * include/bits/regex_scanner.h: Likewise.
5030 * include/bits/shared_ptr.h: Likewise.
5031 * include/bits/shared_ptr_atomic.h: Likewise.
5032 * include/bits/shared_ptr_base.h: Likewise.
5033 * include/bits/slice_array.h: Likewise.
5034 * include/bits/specfun.h: Likewise.
5035 * include/bits/std_function.h: Likewise.
5036 * include/bits/std_mutex.h: Likewise.
5037 * include/bits/stl_deque.h: Likewise.
5038 * include/bits/stl_iterator.h: Likewise.
5039 * include/bits/stl_iterator_base_types.h: Likewise.
5040 * include/bits/stl_map.h: Likewise.
5041 * include/bits/stl_multimap.h: Likewise.
5042 * include/bits/stl_multiset.h: Likewise.
5043 * include/bits/stl_numeric.h: Likewise.
5044 * include/bits/stl_pair.h: Likewise.
5045 * include/bits/stl_set.h: Likewise.
5046 * include/bits/stl_uninitialized.h: Likewise.
5047 * include/bits/stream_iterator.h: Likewise.
5048 * include/bits/streambuf_iterator.h: Likewise.
5049 * include/bits/unique_ptr.h: Likewise.
5050 * include/bits/unordered_map.h: Likewise.
5051 * include/bits/unordered_set.h: Likewise.
5052 * include/decimal/decimal: Likewise.
5053 * include/experimental/any: Likewise.
5054 * include/experimental/array: Likewise.
5055 * include/experimental/bits/fs_dir.h: Likewise.
5056 * include/experimental/bits/fs_fwd.h: Likewise.
5057 * include/experimental/bits/fs_ops.h: Likewise.
5058 * include/experimental/bits/fs_path.h: Likewise.
5059 * include/experimental/buffer: Likewise.
5060 * include/experimental/internet: Likewise.
5061 * include/experimental/optional: Likewise.
5062 * include/experimental/propagate_const: Likewise.
5063 * include/experimental/socket: Likewise.
5064 * include/ext/pb_ds/assoc_container.hpp: Likewise.
5065 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
5067 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
5068 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
5069 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
5070 * include/ext/pb_ds/exception.hpp: Likewise.
5071 * include/ext/pb_ds/priority_queue.hpp: Likewise.
5072 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
5073 * include/ext/random: Likewise.
5074 * include/std/any: Likewise.
5075 * include/std/atomic: Likewise.
5076 * include/std/bitset: Likewise.
5077 * include/std/chrono: Likewise.
5078 * include/std/complex: Likewise.
5079 * include/std/condition_variable: Likewise.
5080 * include/std/fstream: Likewise.
5081 * include/std/future: Likewise.
5082 * include/std/iostream: Likewise.
5083 * include/std/istream: Likewise.
5084 * include/std/mutex: Likewise.
5085 * include/std/numeric: Likewise.
5086 * include/std/ostream: Likewise.
5087 * include/std/ratio: Likewise.
5088 * include/std/shared_mutex: Likewise.
5089 * include/std/stdexcept: Likewise.
5090 * include/std/streambuf: Likewise.
5091 * include/std/system_error: Likewise.
5092 * include/std/thread: Likewise.
5093 * include/std/valarray: Likewise.
5094 * include/std/variant: Likewise.
5095 * include/tr1/cmath: Likewise.
5096 * include/tr1/regex: Likewise.
5097 * include/tr2/dynamic_bitset: Likewise.
5098 * libsupc++/atomic_lockfree_defines.h: Likewise.
5099 * libsupc++/exception: Likewise.
5100 * libsupc++/exception.h: Likewise.
5101 * libsupc++/exception_ptr.h: Likewise.
5102 * libsupc++/nested_exception.h: Likewise.
5104 2021-03-31 Alexandre Oliva <oliva@adacore.com>
5106 * testsuite/30_threads/future/members/poll.cc: Use faster
5107 after-ready call in the calibration loop.
5109 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
5111 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
5112 * doc/html/manual/status.html: Regenerate.
5114 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
5116 * include/debug/forward_list
5117 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
5118 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
5119 call to safe container allocator aware move constructor.
5120 * include/debug/vector (vector(vector&&, const allocator_type&)):
5121 Fix noexcept qualification.
5122 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
5123 Add allocator-extended move constructor noexceot qualification check.
5124 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
5126 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
5128 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
5130 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
5131 New helper functions and callback.
5132 (random_device::_M_init): Add 'prng' and 'all' enumerators.
5133 Replace switch with fallthrough with a series of 'if' statements.
5134 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
5136 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
5138 (random_device::_M_getval): Check for callback unconditionally
5139 and always pass _M_file pointer.
5140 * testsuite/26_numerics/random/random_device/85494.cc: Remove
5141 effective-target check. Use new random_device_available helper.
5142 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
5143 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
5144 Remove effective-target check.
5145 * testsuite/26_numerics/random/random_device/cons/default.cc:
5147 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
5148 new random_device_available helper. Test "prng" token.
5149 * testsuite/util/testsuite_random.h (random_device_available):
5150 New helper function.
5152 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
5154 * include/debug/string
5155 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
5156 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
5157 (basic_string<>::erase): Adapt to take __const_iterator.
5158 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
5159 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
5160 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
5161 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
5162 (__gnu_debug::u16string, __gnu_debug::u32string): New.
5163 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
5164 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
5165 * testsuite/util/exception/safety.h
5166 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
5167 (insert_base<__gnu_debug::basic_string<>>): Likewise.
5168 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
5169 New partial specialization.
5170 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
5171 * testsuite/21_strings/basic_string/requirements/citerators.cc:
5172 Add test on __gnu_debug::string.
5173 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
5174 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
5175 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
5177 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
5179 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
5181 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
5183 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
5185 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
5187 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
5189 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
5191 2021-03-25 Jakub Jelinek <jakub@redhat.com>
5194 * testsuite/18_support/source_location/consteval.cc (main): Adjust
5195 expected column numbers.
5196 * testsuite/18_support/source_location/1.cc (main): Likewise.
5198 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
5200 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
5202 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
5204 * testsuite/util/exception/safety.h (setup_base::generate):
5205 Support seeding random engine.
5206 (erase_point, erase_range): Adjust range of random numbers to
5207 ensure dereferenceable iterators are used where required.
5208 (generation_prohibited::run): Do not try to erase from empty
5210 * testsuite/util/testsuite_containergen.h (test_containers):
5211 Support seeding random engine.
5213 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
5215 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
5216 line with a check that uses the const being/end overloads.
5218 2021-03-23 Moritz Sichert <sichert@in.tum.de>
5220 * include/std/ranges (reverse_view::begin, reverse_view::end):
5221 Qualify make_reverse_iterator calls to avoid ADL.
5222 * testsuite/std/ranges/adaptors/reverse.cc: Test that
5223 views::reverse works when make_reverse_iterator is defined
5224 in an associated namespace.
5226 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
5228 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
5229 Do not define when compiling with Clang.
5231 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
5233 * include/std/string_view (basic_string_view(Range&&)): Define new
5234 constructor and deduction guide.
5235 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
5236 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
5238 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
5240 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
5241 Add missing 'noexcept' as per LWG 2280.
5242 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
5243 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
5244 * testsuite/24_iterators/range_access/range_access.cc: Check for
5245 expected noexcept specifiers. Check result types of generic
5246 std::begin and std::end overloads.
5247 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
5248 Check for expected noexcept specifiers.
5249 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
5252 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
5254 * include/std/type_traits (is_scoped_enum): Define.
5255 * include/std/version (__cpp_lib_is_scoped_enum): Define.
5256 * testsuite/20_util/is_scoped_enum/value.cc: New test.
5257 * testsuite/20_util/is_scoped_enum/version.cc: New test.
5259 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
5262 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
5263 std::once_flag symbols.
5264 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
5265 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
5266 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5268 * config/abi/pre/gnu.ver: Likewise.
5269 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5270 (struct __once_flag_compat): Remove.
5271 (_ZNSt9once_flag11_M_activateEv): Remove.
5272 (_ZNSt9once_flag9_M_finishEb): Remove.
5274 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
5277 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
5278 Revert to pthread_once_t implementation.
5279 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
5280 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5281 (struct __once_flag_compat): New type matching the reverted
5282 implementation of once_flag using futexes.
5283 (once_flag::_M_activate): Remove, replace with ...
5284 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
5285 (once_flag::_M_finish): Remove, replace with ...
5286 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
5287 * testsuite/30_threads/call_once/66146.cc: Removed.
5289 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
5291 * testsuite/17_intro/names.cc: Exclude j from the list
5292 of test symbols for Darwin.
5294 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
5296 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
5297 to_chars and from_chars for long double.
5299 2021-03-15 Patrick Palka <ppalka@redhat.com>
5301 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
5303 (__max_size_type::operator++): Define.
5304 (__max_size_type::operator--): Likewise.
5305 (__max_size_type::operator<=>): Conditionally define (in place
5306 of the other comparison operators).
5307 (__max_diff_type::operator _Tp): Fix formatting.
5308 (__max_diff_type::operator++): Define.
5309 (__max_diff_type::operator--): Likewise.
5310 (__max_diff_type::operator<=>): Conditionally define (in place
5311 of the other comparison operators).
5312 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
5313 these operator overloads.
5315 2021-03-15 Caroline Tice <cmtice@google.com>
5318 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
5319 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
5320 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
5322 * src/Makefile.in: Regenerate.
5324 2021-03-11 Patrick Palka <ppalka@redhat.com>
5326 * src/c++17/floating_to_chars.cc: Simplify the file as if
5327 __SIZEOF_INT128__ is always defined.
5328 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
5329 a base-10 to_chars overload for the uint128_t class type.
5330 * src/c++17/uint128_t.h: New file.
5331 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
5332 execution FAIL on targets that have a large long double type
5335 2021-03-11 Patrick Palka <ppalka@redhat.com>
5337 * src/c++17/ryu/LOCAL_PATCHES: Update.
5338 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
5339 * src/c++17/ryu/generic_128.h: Likewise.
5340 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
5341 Use uint128_t instead of __uint128_t.
5342 (generic_binary_to_decimal): Likewise.
5344 2021-03-11 Patrick Palka <ppalka@redhat.com>
5346 * src/c++17/ryu/LOCAL_PATCHES: New file.
5348 2021-03-11 Patrick Palka <ppalka@redhat.com>
5350 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
5351 defined alias of unsigned __int128.
5352 (floating_type_traits_binary128::mantissa_t): Use uint128_t
5353 instead of unsigned __int128.
5354 (floating_type_traits<long double>::mantissa_t)
5355 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
5356 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
5357 and uint32_t explicit. Simplify the extraction of mantissa,
5358 exponent and sign bit.
5360 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5362 * include/std/barrier (barrier::arrival_token): New move-only
5363 class that encapsulates the underlying token value.
5365 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5367 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
5368 instead of unqualified() method.
5370 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5373 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
5374 Use acq_rel memory ordering.
5376 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5379 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
5380 helper function to check for permission denied errors.
5381 * src/filesystem/dir.cc (recursive_directory_iterator):
5383 * src/filesystem/dir-common.h (is_permission_denied_error): New
5386 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5389 * include/bits/random.h (normal_distribution): Use
5390 default-initializer for _M_saved and _M_saved_available.
5392 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
5394 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
5395 link with libatomic.
5396 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5397 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5398 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5399 * testsuite/30_threads/barrier/arrive.cc: Likewise.
5400 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5401 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5402 * testsuite/30_threads/barrier/completion.cc: Likewise.
5403 * testsuite/30_threads/latch/3.cc: Likewise.
5404 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
5405 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
5406 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5408 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5411 * include/bits/align.h: Include debug/assertions.h.
5412 * include/bits/codecvt.h: Include bits/c++config.h.
5413 * include/bits/enable_special_members.h: Likewise.
5414 * include/bits/erase_if.h: Likewise.
5415 * include/bits/functional_hash.h: Include <type_traits>.
5416 * include/bits/invoke.h: Include bits/move.h.
5417 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
5418 * include/bits/parse_numbers.h: Include <type_traits>.
5419 * include/bits/predefined_ops.h: Include bits/c++config.h.
5420 * include/bits/range_access.h: Include bits/stl_iterator.h.
5421 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
5422 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
5423 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
5424 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
5425 * include/bits/unique_lock.h: Include bits/std_mutex.h.
5426 * include/debug/assertions.h: Include bits/c++config.h.
5428 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5430 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
5431 (ranges::equal_to, ranges::not_equal_to): Do not constrain
5432 with __eq_builtin_ptr_cmp.
5433 (ranges::less, ranges::greater, ranges::less_equal)
5434 (ranges::greater_equal): Do not constrain with
5435 __less_builtin_ptr_cmp.
5436 * libsupc++/compare (compare_three_way): Do not constrain with
5437 __3way_builtin_ptr_cmp.
5438 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
5439 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
5440 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
5442 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5444 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
5445 C++20 calendar types.
5447 2021-03-06 Jakub Jelinek <jakub@redhat.com>
5450 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
5451 two _Nd which the compiler can pattern match the rotates.
5453 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
5456 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
5457 Make storage larger than required. Verify no write to the last
5459 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
5462 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5464 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5465 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5467 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5468 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5471 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5473 * include/experimental/bits/simd.h: Replace reserved _X, _B by
5475 * include/experimental/bits/simd_builtin.h: Likewise.
5476 * include/experimental/bits/simd_x86.h: Likewise.
5478 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
5481 * include/std/chrono (year_month_day::_M_days_since_epoch()):
5482 Convert chrono::month and chrono::day to unsigned before
5483 converting to uint32_t.
5485 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5487 * include/std/chrono (year_month_day::_S_from_days): Perform
5488 all calculations with type uint32_t.
5490 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5492 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
5493 * doc/html/manual/abi.html: Regenerate.
5495 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5498 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
5499 FILE instead of FILE.
5501 2021-02-25 Andreas Schwab <schwab@suse.de>
5503 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5504 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
5505 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5506 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5508 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5511 * include/std/chrono (year_month_day::_S_from_days): Cast long
5514 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5516 * include/std/utility (to_underlying): Define.
5517 * include/std/version (__cpp_lib_to_underlying): Define.
5518 * testsuite/20_util/to_underlying/1.cc: New test.
5519 * testsuite/20_util/to_underlying/version.cc: New test.
5521 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5524 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
5525 before value to be printed.
5527 2021-02-24 Patrick Palka <ppalka@redhat.com>
5529 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
5530 Relax the condition that guards the printf code path to accept
5531 F128_type as well as long double.
5533 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5535 * include/std/chrono (year_month_day_last:day): New
5538 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5540 * include/std/chrono (year::is_leap): New implementation.
5541 * testsuite/std/time/year/2.cc: New test.
5543 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5545 * include/std/chrono (year_month_day::_M_days_since_epoch):
5547 * testsuite/std/time/year_month_day/4.cc: New test.
5549 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5551 * include/std/chrono (year_month_day::_S_from_days): New
5553 * testsuite/std/time/year_month_day/3.cc: New test.
5555 2021-02-24 Patrick Palka <ppalka@redhat.com>
5558 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
5559 (test01): Simplify verifying the nearby values by using a
5560 2-iteration loop and a dedicated output buffer to check that the
5561 nearby values are different. Factor out the printf-based
5562 verification into a local function, and check that the leading
5563 hex digits agree before comparing to the output of printf. Also
5564 verify the output by round-tripping it through from_chars.
5566 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5569 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
5570 symbols for long double arguments mangled as 'g'.
5571 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
5572 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
5573 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
5574 Use -mabi=ibmlongdouble for floating_to_chars.cc.
5575 * src/c++17/Makefile.in: Regenerate.
5576 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
5577 New type defining type traits of IEEE binary128 format.
5578 (floating_type_traits<__float128>): Define specialization.
5579 (floating_type_traits<long double>): Define in terms of
5580 floating_type_traits_binary128 when appropriate.
5581 (floating_to_shortest_scientific): Handle __float128.
5582 (sprintf_ld): New function template for printing a long double
5583 or __ieee128 value using sprintf.
5584 (__floating_to_chars_shortest, __floating_to_chars_precision):
5586 (to_chars): Define overloads for __float128.
5588 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5590 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
5592 2021-02-23 Martin Sebor <msebor@redhat.com>
5595 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
5596 first argument is null.
5598 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5601 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
5604 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5607 * include/bits/char_traits.h (char_traits<char>::compare): For
5608 constexpr evaluation don't call
5609 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
5612 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5615 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
5617 2021-02-23 Patrick Palka <ppalka@redhat.com>
5620 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
5621 the high- and low-order parts from an IBM long double value
5622 in an endian-agnostic way.
5624 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
5626 * include/bits/atomic_wait.h (__thread_relax()): Call
5627 __thread_yield() not __gthread_yield().
5629 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
5631 * include/bits/atomic_wait.h (__thread_yield()): Check
5632 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
5633 (__thread_relax()): Use __thread_yield() instead of repeating
5634 the preprocessor checks for __gthread_yield.
5636 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
5638 * include/std/mutex (once_flag::_M_activate()): Add explicit
5639 return statement for passive case.
5640 (once_flag::_M_finish(bool)): Use reserved name for parameter.
5642 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
5645 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
5647 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5650 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
5652 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5654 * doc/xml/manual/status_cxx2014.xml: Document implementation
5655 specific properties of std::experimental::filesystem::rename.
5656 * doc/xml/manual/status_cxx2017.xml: Document implementation
5657 specific properties of std::filesystem::rename.
5658 * doc/html/*: Regenerate.
5659 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
5660 for directories on Windows.
5661 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
5662 MoveFileExW on Windows.
5663 * testsuite/27_io/filesystem/operations/rename.cc: New test.
5664 * testsuite/experimental/filesystem/operations/rename.cc: New test.
5666 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5668 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
5669 random number to the path.
5671 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5673 * include/experimental/internet (address_v6::to_string): Include
5675 * testsuite/experimental/net/internet/address/v6/members.cc:
5676 Test to_string() results.
5678 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5680 * include/experimental/internet (address_v6::any): Avoid using
5681 memcpy in constexpr function.
5682 (address_v6::loopback): Likewise.
5683 (make_address_v6): Fix missing return statements on error paths.
5684 * include/experimental/io_context: Avoid -Wdangling-else
5686 * testsuite/experimental/net/internet/address/v4/members.cc:
5687 Remove unused variables.
5688 * testsuite/experimental/net/internet/address/v6/members.cc:
5691 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5693 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
5694 Add unused attribute to parameter.
5695 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
5698 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5700 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
5701 if -fno-rtti is used.
5702 * testsuite/30_threads/async/forced_unwind.cc: Expect test
5703 to abort if -fno-rtti is used.
5705 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5707 * testsuite/util/testsuite_allocator.h (memory_resource):
5708 Remove requirement for RTTI and exceptions to be enabled.
5710 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5712 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
5713 static_cast when RTTI is disabled.
5714 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
5716 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
5718 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
5720 * testsuite/27_io/basic_stringstream/str/char/2.cc:
5722 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
5725 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5727 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
5728 as unused and only use dynamic_cast when RTTI is enabled.
5730 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5733 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
5734 Change int parameter to error_code, to match std::ios_failure.
5735 (__throw_ios_failure(const char*, int)): Construct error_code
5738 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
5740 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
5742 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
5743 macro instead of _GLIBCXX_EH_PTR_COMPAT.
5744 (operator==): Likewise.
5746 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
5749 * doc/xml/manual/status_cxx2011.xml: Document when support
5751 * doc/xml/manual/status_cxx2014.xml: Likewise.
5752 * doc/xml/manual/status_cxx2017.xml: Likewise.
5753 * doc/html/manual/status.html: Regenerate.
5755 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5758 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
5760 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5762 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
5763 (fs::remove): Use std::system_category() for error codes from
5765 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
5768 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5770 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
5771 in __MINGW32__ macro name.
5772 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
5773 * testsuite/27_io/filesystem/path/generation/proximate.cc:
5775 * testsuite/27_io/filesystem/path/generation/relative.cc:
5777 * testsuite/util/testsuite_fs.h: Likewise.
5779 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
5781 * include/bits/stl_tree.h
5782 (__has_is_transparent, __has_is_transparent_t): Move...
5783 * include/bits/stl_function.h: ...here.
5784 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
5785 (_Hashtable_base<>::_M_equals_tr): New.
5786 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
5787 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
5788 heterogeneous lookup.
5789 (_Hashtable<>::_M_find_before_node_tr): New.
5790 (_Hashtable<>::_M_find_node_tr): New.
5791 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
5792 unordered_map::contains<>, unordered_map::equal_range<>): New member function
5793 templates to perform heterogeneous lookup.
5794 (unordered_multimap::find<>, unordered_multimap::count<>,
5795 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
5796 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
5797 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
5798 (unordered_multiset::find<>, unordered_multiset::count<>,
5799 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
5800 * include/debug/unordered_map
5801 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
5802 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
5803 * include/debug/unordered_set
5804 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
5805 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
5806 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
5807 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
5808 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
5809 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
5811 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
5813 * include/bits/stl_deque.h
5814 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
5815 a null pointer test.
5817 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
5819 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
5820 test directory after making it writable again.
5821 * testsuite/experimental/filesystem/operations/remove_all.cc:
5824 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
5827 * include/std/coroutine (coroutine_handle<P>::from_address): Add
5830 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
5832 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
5833 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
5835 2021-02-09 Jakub Jelinek <jakub@redhat.com>
5838 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
5839 points to the characters moved by earlier _S_move, compute the source
5840 address using expression based on the __p pointer rather than __s
5843 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
5845 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
5846 Add comparison with same category and different values.
5847 * testsuite/19_diagnostics/error_code/operators/less.cc:
5848 Likewise. Fix comparison involving different categories.
5849 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
5851 * testsuite/19_diagnostics/error_condition/operators/less.cc:
5853 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
5856 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
5858 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
5859 calls with a single vaddv for aarch64.
5861 2021-02-03 Matthias Kretz <kretz@kde.org>
5863 * testsuite/Makefile.am: Warn about the workaround. Add
5864 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
5865 Improve initial user feedback from make check-simd.
5866 * testsuite/Makefile.in: Regenerated.
5868 2021-02-03 Matthias Kretz <kretz@kde.org>
5870 * include/experimental/bits/simd.h: Add __detail::_Minimum and
5871 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
5872 Add hmin and hmax overloads for simd and const_where_expression.
5873 * include/experimental/bits/simd_scalar.h
5874 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
5875 parameter const-ref to allow calling _S_reduce with an rvalue.
5876 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
5877 hmin and hmax. Since the compiler statically determined that all
5878 tests pass, repeat the test after a call to make_value_unknown.
5880 2021-02-03 Matthias Kretz <kretz@kde.org>
5882 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
5883 instruction pointer data member. Ensure that the `if (m_failed)`
5884 branch is always inlined into the calling code. The body of the
5885 conditional can still be a function call. Move the get_ip call
5886 into the verify ctor to simplify the ctor calls.
5887 (COMPARE): Don't mention the use of all_of for reduction of a
5888 simd_mask. It only distracts from the real issue.
5890 2021-02-03 Matthias Kretz <kretz@kde.org>
5892 * testsuite/experimental/simd/driver.sh: Abstract reading test
5893 options into read_src_option function. Read skip, only,
5894 expensive, and xfail via read_src_option. Add timeout and
5895 timeout-factor options and adjust timeout variable accordingly.
5896 * testsuite/experimental/simd/tests/loadstore.cc: Set
5899 2021-02-03 Matthias Kretz <kretz@kde.org>
5901 * testsuite/experimental/simd/driver.sh: When handling the pipe
5902 to log (and on verbose to stdout) count the lines. If it exceeds
5903 1000 log the issue and exit 125, which is then handled as a
5906 2021-02-03 Matthias Kretz <kretz@kde.org>
5908 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
5909 markup for long double on powerpc64*.
5911 2021-02-03 Matthias Kretz <kretz@kde.org>
5913 * include/experimental/bits/simd.h: Add __have_power10vec
5914 conditional on _ARCH_PWR10.
5915 * include/experimental/bits/simd_builtin.h: Forward declare
5916 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
5918 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
5919 _SuperImpl for optimizations and correctness.
5920 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
5921 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
5922 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
5923 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
5925 2021-02-03 Matthias Kretz <kretz@kde.org>
5927 * testsuite/experimental/simd/driver.sh: Remove executable on
5928 SIGINT. Process compiler and test executable output: In verbose
5929 mode print messages immediately, limited to 1000 lines and
5930 breaking long lines to below $COLUMNS (or 1024 if not set).
5931 Communicating the exit status of the compiler / test with the
5932 necessary pipe is done via a message through stdout/-in.
5934 2021-02-03 Matthias Kretz <kretz@kde.org>
5936 * testsuite/Makefile.am: Ensure .simd.summary is empty before
5937 collecting a new summary.
5938 * testsuite/Makefile.in: Regenerate.
5940 2021-02-03 Matthias Kretz <kretz@kde.org>
5942 * testsuite/experimental/simd/generate_makefile.sh: Use
5943 different variables internally than documented for user
5944 overrides. This makes internal append/prepend work as intended.
5946 2021-02-03 Matthias Kretz <kretz@kde.org>
5948 * testsuite/experimental/simd/driver.sh (verify_test): Print
5949 test output on run xfail. Do not repeat lines from the log that
5950 were already printed on stdout.
5951 (test_selector): Make the compiler flags pattern usable as a
5953 (toplevel): Trap on SIGINT and remove the log and sum files.
5954 Call timout with --foreground to quickly terminate on SIGINT.
5955 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
5956 targets via target patterns. Default DRIVEROPTS to -v for run
5957 targets. Remove log and sum files after completion of the run
5958 target (so that it's always recompiled).
5959 Place help text into text file for reasonable 'make help'
5962 2021-02-03 Matthias Kretz <kretz@kde.org>
5964 * include/experimental/bits/simd.h: Remove unnecessary static
5965 assertion. Allow sizeof(8) integer __intrinsic_type to enable
5966 the necessary mask type.
5968 2021-02-03 Matthias Kretz <kretz@kde.org>
5970 * include/experimental/bits/simd.h: Let __intrinsic_type<long
5971 double, N> be valid if sizeof(long double) == sizeof(double) and
5972 use a __vector double as member type.
5974 2021-02-03 Matthias Kretz <kretz@kde.org>
5976 * include/experimental/bits/simd.h (__is_intrinsic_type): New
5977 internal type trait. Alias for __is_vector_type on x86.
5978 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
5980 (__intrin_bitcast): Allow casting to & from vector & intrinsic
5982 (__intrinsic_type): Explicitly specialize for NEON intrinsic
5985 2021-02-03 Matthias Kretz <kretz@kde.org>
5987 * testsuite/experimental/simd/driver.sh: Implement skip, only,
5988 expensive, and xfail markers. They can select on type, ABI tag
5989 subset number, target-triplet, and compiler flags.
5990 * testsuite/experimental/simd/generate_makefile.sh: The summary
5991 now includes lines for unexpected passes and expected failures.
5992 If the skip or only markers are only conditional on the type, do
5993 not generate rules for those types.
5994 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
5995 for ABI tag subsets 1-9.
5996 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
5997 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
5998 * testsuite/experimental/simd/tests/casts.cc: Ditto.
5999 * testsuite/experimental/simd/tests/generator.cc: Ditto.
6000 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
6001 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
6002 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
6003 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
6004 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
6005 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
6006 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
6007 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
6008 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
6009 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
6010 * testsuite/experimental/simd/tests/operators.cc: Ditto.
6011 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
6012 * testsuite/experimental/simd/tests/simd.cc: Ditto.
6013 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
6014 * testsuite/experimental/simd/tests/splits.cc: Ditto.
6015 * testsuite/experimental/simd/tests/where.cc: Ditto.
6016 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
6017 addition replace "test only floattypes" marker by unconditional
6018 "float|double|ldouble" only marker.
6019 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
6020 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
6021 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6023 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
6024 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
6025 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
6026 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
6027 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
6028 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
6029 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
6030 addition, xfail on run because the reference data is missing.
6032 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
6034 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
6035 * doc/xml/manual/status_cxx2014.xml: Likewise.
6036 * doc/xml/manual/status_cxx2017.xml: Likewise.
6037 * doc/html/manual/status.html: Regenerate.
6039 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
6042 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
6043 Return 0 if both iterators are value-initialized.
6044 * testsuite/23_containers/deque/70303.cc: New test.
6045 * testsuite/23_containers/vector/70303.cc: New test.
6047 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
6049 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
6051 * doc/xml/manual/status_cxx2014.xml: Likewise.
6052 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
6053 std::from_chars and std::to_chars status. Fix formatting.
6054 * doc/html/manual/status.html: Regenerate.
6056 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
6058 * include/experimental/bits/numeric_traits.h: Update copyright
6060 * include/experimental/bits/simd.h: Likewise.
6061 * include/experimental/bits/simd_builtin.h: Likewise.
6062 * include/experimental/bits/simd_converter.h: Likewise.
6063 * include/experimental/bits/simd_detail.h: Likewise.
6064 * include/experimental/bits/simd_fixed_size.h: Likewise.
6065 * include/experimental/bits/simd_math.h: Likewise.
6066 * include/experimental/bits/simd_neon.h: Likewise.
6067 * include/experimental/bits/simd_ppc.h: Likewise.
6068 * include/experimental/bits/simd_scalar.h: Likewise.
6069 * include/experimental/bits/simd_x86.h: Likewise.
6070 * include/experimental/bits/simd_x86_conversions.h: Likewise.
6071 * include/experimental/simd: Likewise.
6072 * testsuite/experimental/simd/*: Likewise.
6074 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6076 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
6077 * doc/html/*: Regenerate.
6079 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6081 * testsuite/experimental/simd/generate_makefile.sh: Use printf
6082 instead of echo when printing escape characters.
6084 2021-01-27 Matthias Kretz <kretz@kde.org>
6086 * scripts/check_simd: New file. This script is called from the
6087 the check-simd target. It determines a set of compiler flags and
6088 simulator setups for calling generate_makefile.sh and passes the
6089 information back to the check-simd target, which recurses to the
6090 generated Makefiles.
6091 * scripts/create_testsuite_files: Remove files below simd/tests/
6092 from testsuite_files and place them in testsuite_files_simd.
6093 * testsuite/Makefile.am: Add testsuite_files_simd. Add
6095 * testsuite/Makefile.in: Regenerate.
6096 * testsuite/experimental/simd/driver.sh: New file. This script
6097 compiles and runs a given simd test, logging its output and
6098 status. It uses the timeout command to implement compile and
6100 * testsuite/experimental/simd/generate_makefile.sh: New file.
6101 This script generates a Makefile which uses driver.sh to compile
6102 and run the tests and collect the logs into a single log file.
6103 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
6105 * testsuite/experimental/simd/tests/algorithms.cc: New file.
6106 Tests min/max(simd, simd).
6107 * testsuite/experimental/simd/tests/bits/conversions.h: New
6108 file. Contains functions to support tests involving conversions.
6109 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
6110 Support functions make_mask and make_vec.
6111 * testsuite/experimental/simd/tests/bits/mathreference.h: New
6112 file. Support functions to supply precomputed math function
6114 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
6115 file. Support code for SFINAE testing.
6116 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
6117 * testsuite/experimental/simd/tests/bits/test_values.h: New
6118 file. Test functions to easily drive a test with simd objects
6119 initialized from a given list of values and a range of random
6121 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
6122 Support code to determine the ULP distance of simd objects.
6123 * testsuite/experimental/simd/tests/bits/verify.h: New file.
6124 Test framework for COMPARE'ing simd objects and instantiating
6125 the test templates with value_type and ABI tag.
6126 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
6128 * testsuite/experimental/simd/tests/casts.cc: New file. Test
6130 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
6131 Test floating-point classification functions.
6132 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
6134 * testsuite/experimental/simd/tests/generator.cc: New file. Test
6135 simd generator constructor.
6136 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
6137 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
6138 * testsuite/experimental/simd/tests/integer_operators.cc: New
6139 file. Test integer operators.
6140 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6141 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
6143 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
6144 (converting) simd loads and stores.
6145 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
6147 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
6148 Test simd_mask broadcasts.
6149 * testsuite/experimental/simd/tests/mask_conversions.cc: New
6150 file. Test simd_mask conversions.
6151 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
6152 file. Test simd_mask implicit conversions.
6153 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
6154 Test simd_mask loads and stores.
6155 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
6156 file. Test simd_mask operators convert as specified.
6157 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
6158 Test simd_mask compares, subscripts, and negation.
6159 * testsuite/experimental/simd/tests/mask_reductions.cc: New
6160 file. Test simd_mask reductions.
6161 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
6162 1-arg math functions on simd.
6163 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
6164 2-arg math functions on simd.
6165 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
6166 Test implicit conversions on simd binary operators behave as
6168 * testsuite/experimental/simd/tests/operators.cc: New file. Test
6169 simd compares, subscripts, not, unary minus, plus, minus,
6170 multiplies, divides, increment, and decrement.
6171 * testsuite/experimental/simd/tests/reductions.cc: New file.
6173 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
6175 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
6176 sanity checks of simd types.
6177 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
6178 sin(simd) and cos(simd).
6179 * testsuite/experimental/simd/tests/split_concat.cc: New file.
6180 Test split(simd) and concat(simd, simd).
6181 * testsuite/experimental/simd/tests/splits.cc: New file. Test
6183 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
6184 Test remaining trigonometric functions on simd.
6185 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
6186 file. Test trunc(simd), ceil(simd), and floor(simd).
6187 * testsuite/experimental/simd/tests/where.cc: New file. Test
6188 masked operations using where.
6190 2021-01-27 Matthias Kretz <kretz@kde.org>
6192 * doc/xml/manual/status_cxx2017.xml: Add implementation status
6193 of the Parallelism TS 2. Document implementation-defined types
6195 * include/Makefile.am: Add new headers.
6196 * include/Makefile.in: Regenerate.
6197 * include/experimental/simd: New file. New header for
6199 * include/experimental/bits/numeric_traits.h: New file.
6200 Implementation of P1841R1 using internal naming. Addition of
6201 missing IEC559 functionality query.
6202 * include/experimental/bits/simd.h: New file. Definition of the
6203 public simd interfaces and general implementation helpers.
6204 * include/experimental/bits/simd_builtin.h: New file.
6205 Implementation of the _VecBuiltin simd_abi.
6206 * include/experimental/bits/simd_converter.h: New file. Generic
6208 * include/experimental/bits/simd_detail.h: New file. Internal
6209 macros for the simd implementation.
6210 * include/experimental/bits/simd_fixed_size.h: New file. Simd
6211 fixed_size ABI specific implementations.
6212 * include/experimental/bits/simd_math.h: New file. Math
6214 * include/experimental/bits/simd_neon.h: New file. Simd NEON
6215 specific implementations.
6216 * include/experimental/bits/simd_ppc.h: New file. Implement bit
6217 shifts to avoid invalid results for integral types smaller than
6219 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
6220 ABI specific implementations.
6221 * include/experimental/bits/simd_x86.h: New file. Simd x86
6222 specific implementations.
6223 * include/experimental/bits/simd_x86_conversions.h: New file.
6224 x86 specific conversion optimizations. The conversion patterns
6225 work around missing conversion patterns in the compiler and
6226 should be removed as soon as PR85048 is resolved.
6227 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
6228 Test that all (not all fixed_size<N>, though) standard simd and
6229 simd_mask types are usable.
6230 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
6231 file. As above but with -ffast-math.
6232 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
6233 from the standard test loop. Instead use
6234 check_vect_support_and_set_flags to build simd tests with the
6235 relevant machine flags.
6237 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6240 * include/bits/string_view.tcc
6241 (basic_string_view::find(const CharT*, size_type, size_type)):
6244 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
6246 * include/bits/basic_string.h (basic_string::contains): New
6248 * include/std/string_view (basic_string_view::contains):
6250 * include/std/version (__cpp_lib_string_contains): Define.
6251 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
6252 Remove trailing whitespace.
6253 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
6255 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
6256 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
6257 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
6258 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
6259 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
6261 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
6263 * src/c++17/Makefile.in: Regenerate.
6265 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
6267 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
6268 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
6270 (const char* ctype<char>:: is): Same.
6272 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
6275 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
6276 write to a wide character stream if wide character support is
6277 disabled in the library.
6279 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
6281 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
6282 stringbuf not wstringbuf.
6284 2021-01-18 Jakub Jelinek <jakub@redhat.com>
6287 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
6288 Compile with -gno-as-loc-support.
6289 * src/c++11/Makefile.in: Regenerated.
6291 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
6293 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
6294 Add -fcf-protection=none to -march=i486.
6296 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
6298 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
6301 2021-01-14 Alexandre Oliva <oliva@adacore.com>
6303 * testsuite/30_threads/future/members/poll.cc: Calibrate
6306 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
6309 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
6310 (_Node_iterator()): Make default.
6311 (_Node_const_iterator()): Make default.
6312 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
6314 * include/debug/safe_iterator.h
6315 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
6316 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
6318 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
6319 _M_singular checks on input iterators.
6320 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
6322 * testsuite/23_containers/deque/debug/98466.cc: New test.
6323 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
6325 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
6328 * include/bits/fs_path.h (__throw_conversion_error): New
6329 function to throw or abort on character conversion errors.
6330 (__wstr_from_utf8): Move definition after filesystem_error has
6331 been defined. Use __throw_conversion_error.
6332 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
6333 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
6334 (path::u8string): Likewise.
6336 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
6338 * include/std/barrier: Update copyright years. Fix whitespace.
6339 * include/std/version: Fix whitespace.
6340 * testsuite/30_threads/barrier/1.cc: Update copyright years.
6341 * testsuite/30_threads/barrier/2.cc: Likewise.
6342 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6343 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6344 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6345 * testsuite/30_threads/barrier/completion.cc: Likewise.
6347 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
6349 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
6351 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
6354 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
6356 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
6358 2021-01-08 Olivier Hainque <hainque@adacore.com>
6360 * testsuite/20_util/bind/ref_neg.cc: Tweak the
6361 dg-prune-output regex for out-of-build-tree contexts.
6363 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
6365 * doc/doxygen/user.cfg.in: Add new header.
6366 * include/Makefile.am (std_headers): likewise.
6367 * include/Makefile.in: Regenerate.
6368 * include/precompiled/stdc++.h: Add new header.
6369 * include/std/barrier: New file.
6370 * include/std/version: Add __cpp_lib_barrier feature test macro.
6371 * testsuite/30_threads/barrier/1.cc: New test.
6372 * testsuite/30_threads/barrier/2.cc: Likewise.
6373 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6374 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6375 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6376 * testsuite/30_threads/barrier/completion.cc: Likewise.
6378 2021-01-07 Patrick Palka <ppalka@redhat.com>
6381 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
6382 instead of the non-standard nextupl and nextdownl.
6384 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
6386 * configure: Re-generate.
6388 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
6390 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
6392 2021-01-01 Jakub Jelinek <jakub@redhat.com>
6394 * ChangeLog-2020: Rotate ChangeLog. New file.
6397 Copyright (C) 2021 Free Software Foundation, Inc.
6399 Copying and distribution of this file, with or without modification,
6400 are permitted in any medium without royalty provided the copyright
6401 notice and this notice are preserved.