1 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/regex.h (basic_regex::multiline): Define constant
5 * include/bits/regex_constants.h (regex_constants::multiline):
6 Define constant for C++17.
7 (regex_constants::__multiline): Define duplicate constant for
8 internal use in C++11 and C++14.
9 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
11 (_Executor::_M_is_line_terminator(_CharT)): New member function.
12 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
13 member functions to support multiline matches.
14 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
16 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
18 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
20 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
21 _S_validate to check flags.
22 * include/bits/regex_error.h (_S_grammar): New error code for
24 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
26 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
29 * include/bits/regex_error.h (regex_constants::_S_null): New
30 error code for internal use.
31 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
32 Check for null character.
33 * testsuite/28_regex/basic_regex/84110.cc: New test.
35 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
37 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
38 here from <bits/regex_compiler.h>.
39 (basic_regex::_M_compile): New function to compile an NFA from
40 a regular expression string.
41 (basic_regex::basic_regex): Use _M_compile instead of delegating
42 to other constructors.
43 (basic_regex::operator=(const basic_regex&)): Define as
45 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
46 (basic_regex::assign(const basic_regex&)): Use copy assignment.
47 (basic_regex::assign(basic_regex&&)): Use move assignment.
48 (basic_regex::assign(const C*, flag_type)): Use _M_compile
49 instead of constructing a temporary string.
50 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
51 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
52 Use _M_compile instead of constructing a temporary basic_regex.
53 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
54 constructing a temporary string for contiguous iterators of the
56 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
58 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
59 (__compile_nfa): Remove.
60 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
62 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
64 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
66 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
67 Return false for ETIMEDOUT and true otherwise.
69 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
71 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
72 to also match message with '__8' in it.
74 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
76 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
77 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
78 * include/bits/regex_compiler.tcc: Likewise.
79 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
80 * include/bits/regex_scanner.tcc: Likewise.
82 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
84 * include/bits/regex_compiler.tcc: Add line break in empty while
86 * include/bits/regex_executor.tcc: Avoid unused parameter
89 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
91 * include/bits/regex.h (basic_regex, swap): Add noexcept to
92 non-throwing functions.
93 * include/bits/regex_automaton.h (_State_base, _State)
94 (_NFA_base): Likewise.
95 * include/bits/regex_compiler.h (_Compiler): Likewise.
96 * include/bits/regex_error.h (regex_error::code()): Likewise.
97 * include/bits/regex_scanner.h (_Scanner): Likewise.
99 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
101 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
102 Define before first attempt to check it.
104 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
106 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
107 Do not check non-default constructible sequences when
108 _GLIBCXX_CONCEPT_CHECKS is defined.
109 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
111 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
113 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
115 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
117 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
120 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
122 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
123 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
125 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
127 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
129 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
131 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
133 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
135 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
137 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
139 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
141 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
143 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
145 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
147 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
149 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
151 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
153 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
155 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
157 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
160 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
162 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
163 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
164 Check result types of iterator operations.
165 (_Mutable_ForwardIteratorConcept): Check that iterator's
166 reference type is a reference to its value type.
167 (_Mutable_BidirectionalIteratorConcept): Do not require the
168 value type to be assignable.
169 (_Mutable_RandomAccessIteratorConcept): Likewise.
170 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
173 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
175 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
176 for type used as an iterator.
177 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
179 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
181 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
182 comparison function for priority_queue of type with no
183 relational operators.
184 * testsuite/20_util/is_swappable/value.h: Likewise.
185 * testsuite/24_iterators/output/concept.cc: Add operator< to
188 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
190 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
191 Use a function to preserve value category of the type.
192 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
193 reference as the second argument for _OutputIteratorConcept.
194 (copy_backward, move_backward): Use _OutputIteratorConcept
195 instead of _ConvertibleConcept.
197 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
199 * include/bits/stl_iterator.h (pointer_traits): Define partial
200 specialization for __normal_iterator.
201 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
203 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
205 * include/bits/move.h (forward(remove_reference_t<T>&&)):
206 Improve text of static_assert.
207 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
208 * testsuite/20_util/forward/f_neg.cc: Likewise.
210 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
213 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
214 to declarations, to match definitions.
216 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
218 * include/bits/range_access.h (cbegin, cend): Remove redundant
221 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
223 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
224 Remove dg-error lines for C++20-only errors.
226 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
228 * testsuite/19_diagnostics/headers/system_error/93151.cc:
231 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
233 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
234 Map Windows error codes to generic POSIX error numbers. Use
235 FormatMessage instead of strerror.
236 * testsuite/19_diagnostics/error_category/system_category.cc:
237 Adjust for new behaviour on Windows.
239 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
241 * src/c++11/system_error.cc (generic_error_category): Define
242 class and virtual functions as 'final'.
243 (generic_error_category::equivalent(int, const error_condition&)):
245 (system_error_category): Define class and virtual functions as
247 (system_error_category::equivalent(int, const error_condition&)):
249 (generic_category_instance, system_category_instance): Use
250 constinit union to make the objects immortal.
252 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
255 * src/c++11/system_error.cc
256 (system_error_category::default_error_condition): Add 0 to
258 * testsuite/19_diagnostics/error_category/102425.cc: New test.
260 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
262 * include/bits/fs_path.h (path::iterator): Add noexcept to all
263 member functions and friend functions.
264 (distance): Add noexcept.
265 (advance): Add noexcept and inline.
266 * include/experimental/bits/fs_path.h (path::iterator):
267 Add noexcept to all member functions.
269 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
272 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
273 missed in previous patch.
274 * testsuite/20_util/tuple/cons/102270.C: Moved to...
275 * testsuite/20_util/tuple/cons/102270.cc: ...here.
276 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
277 constexpr to constructor so it can be used for C++20 tests.
279 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
281 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
282 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
283 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
284 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
286 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
288 * src/Makefile.am (stamp-debug): Add all Makefiles as
290 * src/Makefile.in: Regenerate.
292 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
294 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
296 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
298 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
300 * doc/xml/manual/using.xml: Generalize to apply to more than
302 * doc/html/manual/using_macros.html: Regenerate.
304 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
306 * include/std/optional (nullptr_t): Make constructor noexcept.
308 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
310 * include/bits/fs_path.h (advance): Remove non-deducible
313 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
316 * include/std/tuple (_Head_base, _Tuple_impl): Add
317 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
318 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
319 * testsuite/20_util/tuple/cons/102270.C: New test.
321 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
324 * include/std/span (span(Range&&)): Add constraint to deduction
327 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
329 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
330 * src/c++98/Makefile.in: Regenerate.
332 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
334 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
335 (to_string): Add noexcept if the type width is 32 bits or less.
337 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
339 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
340 (__uniq_ptr_impl::_M_deleter): Add noexcept.
342 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
345 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
346 va and vb as arguments to wait/notify, remove unused bb local.
348 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
350 * crossconfig.m4: Check for TLS support on mingw.
351 * configure: Regenerate.
353 2021-09-13 Jason Merrill <jason@redhat.com>
355 * include/std/version: Define __cpp_lib_hardware_interference_size.
356 * libsupc++/new: Define hardware interference size variables.
358 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
360 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
361 Fix invalid hostname to only match the .invalid TLD.
363 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
365 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
367 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
370 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
372 * include/std/atomic: Tweak whitespace.
374 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
377 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
378 New function to check if a memory order is valid for the failure
379 case of compare exchange operations.
380 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
381 by using __is_valid_cmpexch_failure_order.
382 (__atomic_base<I>::compare_exchange_strong): Likewise.
383 (__atomic_base<P*>::compare_exchange_weak): Likewise.
384 (__atomic_base<P*>::compare_exchange_strong): Likewise.
385 (__atomic_impl::compare_exchange_weak): Add assertion.
386 (__atomic_impl::compare_exchange_strong): Likewise.
387 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
388 (atomic::compare_exchange_strong): Likewise.
390 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
392 * include/std/functional (invoke_r): Define.
393 * include/std/version (__cpp_lib_invoke_r): Define.
394 * testsuite/20_util/function_objects/invoke/version.cc: Check
395 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
396 * testsuite/20_util/function_objects/invoke/4.cc: New test.
398 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
401 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
402 Add valid range checks.
403 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
404 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
406 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
408 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
409 * configure: Regenerate.
411 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
413 * src/c++11/system_error.cc (error_category::~error_category()):
414 Remove noexcept-specifier.
415 (system_error::~system_error()): Likewise.
416 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
417 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
419 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
422 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
423 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
425 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
427 * include/experimental/internet (__make_resolver_error_code):
428 Handle EAI_SYSTEM errors.
429 (basic_resolver_results): Use __make_resolver_error_code. Use
430 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
432 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
434 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
435 Try other service if "http" fails.
437 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
439 * testsuite/17_intro/names.cc: Undefine some more names used
440 by Solaris system headers.
442 2021-08-30 Jason Merrill <jason@redhat.com>
445 * testsuite/30_threads/promise/requirements/lwg3466.cc:
446 Remove dg-prune-outputs.
448 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
450 * include/bits/alloc_traits.h (allocator_traits): Add explicit
451 specialization for allocator<void>. Improve doxygen comments.
452 * include/bits/allocator.h (allocator<void>): Restore for the
454 (allocator<void>::construct, allocator<void>::destroy): Remove.
455 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
456 Add default constructor and converting constructor.
458 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
460 * include/bits/stl_uninitialized.h: Fix typo in comment.
462 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
465 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
466 to avoid unnecessary current_path() call.
468 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
470 * include/bits/std_function.h (function::function(F&&)): Give
471 name to defaulted template parameter, to improve diagnostics.
472 Use markdown for more doxygen comments.
474 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
476 * include/bits/std_function.h (function): Adjust doxygen
478 * include/bits/unique_ptr.h (make_unique_for_overwrite):
479 Change parameter name to match doxygen comment.
481 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
483 * include/bits/std_function.h (_function_base::_Base_manager):
484 Replace _M_init_functor with a function template using a
485 forwarding reference, and a pair of _M_create function
486 templates. Reuse _M_create for the clone operation.
487 (function::_Decay_t): New alias template.
488 (function::_Callable): Simplify by using _Decay.
489 (function::function(F)): Change parameter to forwarding
490 reference, as per LWG 2447. Add noexcept-specifier. Simplify
492 (function::operator=(F&&)): Add noexcept-specifier.
493 * testsuite/20_util/function/cons/lwg2774.cc: New test.
494 * testsuite/20_util/function/cons/noexcept.cc: New test.
496 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
498 * include/bits/std_function.h (function::function(F)): Add
499 static assertions to check constructibility requirements.
501 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
504 * configure.ac: Check for O_NONBLOCK.
505 * configure: Regenerate.
506 * include/experimental/internet: Include <ws2tcpip.h> for
507 Windows. Use preprocessor conditions around more constants.
508 * include/experimental/socket: Use preprocessor conditions
509 around more constants.
510 * testsuite/experimental/net/internet/resolver/base.cc: Only use
511 constants when the corresponding C macro is defined.
512 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
513 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
514 Make preprocessor checks more fine-grained.
516 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
518 * testsuite/17_intro/names.cc: Check 'sz'.
520 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
522 * testsuite/17_intro/names.cc: Adjust for Windows.
524 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
526 * include/std/valarray: Uglify 'func' parameters.
527 * testsuite/17_intro/names.cc: Add 'func' to checks.
529 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
532 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
533 Define macro to check conditions for optimizing trivial cases.
534 (__check_constructible): New function to do static assert.
535 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
537 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
538 Adjust dg-error pattern.
539 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
540 C++17-specific checks from 89164_c++17.cc.
541 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
542 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
544 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
546 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
548 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
551 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
554 * include/ext/rope (rope::erase(size_type)): Remove broken
557 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
559 * doc/xml/manual/status_cxx2020.xml: Update table.
560 * doc/html/manual/status.html: Regenerate.
562 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
564 * include/std/type_traits (is_layout_compatible): Define.
565 (is_corresponding_member): Define.
566 * include/std/version (__cpp_lib_is_layout_compatible): Define.
567 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
569 * testsuite/20_util/is_layout_compatible/value.cc: New test.
570 * testsuite/20_util/is_layout_compatible/version.cc: New test.
571 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
573 * testsuite/23_containers/span/layout_compat.cc: Do not use real
574 std::is_layout_compatible trait if available.
576 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
578 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
579 explicit instantiation definitions.
581 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
583 * include/std/ranges (basic_istream_view): Add default template
585 * testsuite/std/ranges/istream_view.cc: Check it.
587 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
589 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
592 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
595 * testsuite/util/testsuite_fs.h (permissions_are_testable):
598 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
601 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
602 Use new __gnu_test::permissions_are_testable() function.
603 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
605 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
606 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
607 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
608 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
609 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
610 * testsuite/27_io/filesystem/operations/symlink_status.cc:
612 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
614 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
616 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
618 * testsuite/experimental/filesystem/operations/exists.cc:
620 * testsuite/experimental/filesystem/operations/is_empty.cc:
622 * testsuite/experimental/filesystem/operations/remove.cc:
624 * testsuite/experimental/filesystem/operations/remove_all.cc:
626 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
628 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
629 New function to guess whether testing permissions will work.
631 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
633 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
634 * doc/html/manual/status.html: Regenerate.
636 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
638 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
640 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
643 * include/std/charconv (__to_chars_i): Remove redundant check.
645 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
648 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
649 class' move constructor. Define as defaulted for versioned
651 * testsuite/20_util/tuple/cons/101960.cc: New test.
653 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
656 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
657 * doc/html/manual/status.html: Regenerate.
659 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
661 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
662 * include/bits/unique_ptr.h: Add @headerfile tags.
664 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
666 * src/filesystem/ops-common.h (filesystem::file_time): Improve
667 overflow check by using system_clock::duration::max().
669 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
671 * include/bits/stl_tree.h: Tweak whitespace.
673 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
675 * include/bits/unique_ptr.h (default_delete): Add @since tag.
676 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
677 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
678 @param, and @returns.
679 (_MakeUniq): Move to __detail namespace. Add alias template
682 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
684 * include/bits/stl_function.h: Improve doxygen comments.
686 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
688 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
689 processing for C++20 components and components that depend on
691 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
692 * include/std/type_traits: Improve doxygen comments for C++20
695 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
697 * include/ext/type_traits.h (__promote_2, __promote_3)
698 (__promote_4): Redfine as alias templates using __promoted_t.
699 * include/std/complex (__promote_2): Remove partial
700 specializations for std::complex.
702 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
704 * include/bits/stl_algo.h (min(initializer_list<T>))
705 (min(initializer_list<T>, Compare)): Call __min_element directly to
706 avoid redundant debug checks for valid ranges.
707 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
708 Likewise, for __max_element.
709 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
710 Likewise, for __minmax_element.
712 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
714 * include/debug/deque (deque(size_type, const T&, const A&)):
715 Prevent class template argument deduction and replace with a
717 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
719 * include/debug/list (list(size_type, const T&, const A&)):
721 * include/debug/vector (vector(size_type, const T&, const A&)):
724 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
726 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
727 'std::vector<bool>::reference' as type name, not _Bit_reference.
728 (build_libstdcxx_dictionary): Register printers for vector<bool>
729 types in debug mode too.
730 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
731 output for invalid _Bit_reference. Use vector<bool>::reference
732 instead of _Bit_reference.
733 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
735 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
737 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
740 2021-08-17 Luc Michel <lmichel@kalray.eu>
741 Marc Poulhies <mpoulhies@kalrayinc.com>
743 * testsuite/lib/gdb-test.exp (gdb_version_check)
744 (gdb_version_check_xmethods): Only check the GDB version for
745 local native targets.
747 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
748 Jonathan Wakely <jwakely@redhat.com>
750 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
752 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
755 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
757 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
758 construction from input iterators.
760 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
762 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
764 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
767 * include/bits/std_function.h (function(function&&)): Check for
768 non-empty parameter before doing any work.
770 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
772 * include/bits/cow_string.h (basic_string::contains): Do not
773 define for -std=gnu++20.
775 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
777 * include/bits/ranges_util.h (__not_same_as): Rename to
779 * include/std/ranges (__not_same_as): Likewise.
781 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
783 * include/std/utility (exchange): Add noexcept-specifier.
784 * testsuite/20_util/exchange/noexcept.cc: New test.
786 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
788 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
789 (build_libstdcxx_dictionary): Register printer for
790 std::error_code and std::error_condition.
791 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
793 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
796 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
798 (print_word): Use qualified-id to access it.
800 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
802 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
803 Install another copy of the GDB hook.
804 * python/Makefile.in: Regenerate.
806 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
809 * include/c_global/cmath (hypot): Use __promoted_t.
810 (lerp): Add new overload accepting any arithmetic types.
811 * include/ext/type_traits.h (__promoted_t): New alias template.
812 * testsuite/26_numerics/lerp.cc: Moved to...
813 * testsuite/26_numerics/lerp/1.cc: ...here.
814 * testsuite/26_numerics/lerp/constexpr.cc: New test.
815 * testsuite/26_numerics/lerp/version.cc: New test.
817 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
819 * testsuite/26_numerics/lerp.cc: Add header name to #error.
820 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
821 * testsuite/26_numerics/midpoint/version.cc: New test.
823 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
825 * include/experimental/random (experimental::randint): Add
828 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
830 * src/c++98/locale_init.cc: Require C++11.
831 * src/c++98/localename.cc: Likewise.
832 * src/c++98/misc-inst.cc: Require C++98.
834 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
837 * testsuite/experimental/random/randint.cc: Loop and retry if
838 reseed() produces the same sequence.
840 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
842 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
843 (is_pointer_interconvertible_base_of_v)
844 (is_pointer_interconvertible_base_of): Define for C++20.
845 * include/std/version (__cpp_lib_is_pointer_interconvertible):
847 * testsuite/23_containers/span/layout_compat.cc: Use correct
848 feature test macro for std::is_layout_compatible_v.
849 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
850 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
852 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
854 * include/bits/regex.h (basic_regex::transform_primary): Use
855 _GLIBCXX_STD_C::vector for local variable.
856 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
857 _GLIBCXX_STD_C::vector base class of match_results.
858 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
859 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
861 * include/bits/regex_compiler.h (_BracketMatcher): Use
862 _GLIBCXX_STD_C::vector for data members.
863 * include/bits/regex_executor.h (_Executor): Likewise.
864 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
866 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
868 * include/debug/safe_container.h
869 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
870 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
871 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
873 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
875 * testsuite/23_containers/unordered_map/cons/default.cc: Add
876 equality comparison operators to allocator.
877 * testsuite/23_containers/unordered_set/cons/default.cc:
880 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
882 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
883 dg-prune-output reason with 'builtin_unreachable'.
884 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
885 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
886 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
887 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
888 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
889 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
890 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
891 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
893 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
895 * testsuite/std/ranges/iota/max_size_type.cc: Set
896 dg-timeout-factor to 4.
898 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
900 * libsupc++/compare (compare_three_way, strong_order)
901 (weak_order, partial_order, compare_strong_order_fallback)
902 (compare_weak_order_fallback, compare_partial_order_fallback):
903 Move nodiscard attributes to correct location.
905 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
908 * include/bits/ranges_base.h (ranges::begin, ranges::end)
909 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
910 (ranges::empty, ranges::data): Move attribute after the
911 declarator-id instead of at the end of the declarator.
912 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
913 Move attributes back to the start of the function declarator,
914 but move the requires-clause to the end.
915 (common_iterator): Move attribute after the declarator-id.
916 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
917 from friend declaration that are not definitions.
918 * include/std/ranges (views::all, views::filter)
919 (views::transform, views::take, views::take_while,
920 views::drop) (views::drop_while, views::join,
921 views::lazy_split) (views::split, views::counted,
922 views::common, views::reverse) (views::elements): Move
923 attributes after the declarator-id.
925 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
927 * libsupc++/compare (partial_ordering, weak_ordering)
928 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
929 (compare_three_way, strong_order, weak_order, partial_order)
930 (compare_strong_order_fallback, compare_weak_order_fallback)
931 (compare_partial_order_fallback, __detail::__synth3way): Add
933 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
934 -Wno-unused-result to options.
936 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
939 * include/bits/ranges_base.h (ranges::begin, ranges::end)
940 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
941 (ranges::empty, ranges::data): Move attribute to the end of
943 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
944 (common_iterator): Likewise for non-member operator functions.
945 * include/std/ranges (views::all, views::filter)
946 (views::transform, views::take, views::take_while, views::drop)
947 (views::drop_while, views::join, views::lazy_split)
948 (views::split, views::counted, views::common, views::reverse)
949 (views::elements): Likewise.
950 * testsuite/std/ranges/access/101782.cc: New test.
952 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
954 * include/bits/forward_list.h: Add [[nodiscard]] to functions
955 with no side-effects.
956 * include/bits/stl_bvector.h: Likewise.
957 * include/bits/stl_deque.h: Likewise.
958 * include/bits/stl_list.h: Likewise.
959 * include/bits/stl_queue.h: Likewise.
960 * include/bits/stl_stack.h: Likewise.
961 * include/bits/stl_vector.h: Likewise.
962 * include/debug/deque: Likewise.
963 * include/debug/forward_list: Likewise.
964 * include/debug/list: Likewise.
965 * include/debug/safe_iterator.h: Likewise.
966 * include/debug/vector: Likewise.
967 * include/std/array: Likewise.
968 * testsuite/23_containers/array/creation/3_neg.cc: Use
970 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
972 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
973 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
974 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
975 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
977 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
979 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
980 Adjust dg-error line numbers.
981 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
983 * testsuite/23_containers/deque/debug/invalidation/4.cc:
985 * testsuite/23_containers/deque/types/1.cc: Use
987 * testsuite/23_containers/list/types/1.cc: Cast result to void.
988 * testsuite/23_containers/priority_queue/members/7161.cc:
990 * testsuite/23_containers/queue/members/7157.cc: Likewise.
991 * testsuite/23_containers/vector/59829.cc: Likewise.
992 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
994 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
996 * testsuite/23_containers/vector/types/1.cc: Use
999 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
1001 * include/bits/iterator_concepts.h (iter_move): Add
1003 * include/bits/range_access.h (begin, end, cbegin, cend)
1004 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
1005 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1006 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
1007 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1008 (ranges::empty, ranges::data, ranges::cdata): Likewise.
1009 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
1010 (back_insert_iterator, front_insert_iterator, insert_iterator)
1011 (move_iterator, move_sentinel, common_iterator)
1012 (counted_iterator): Likewise.
1013 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
1015 * include/bits/stream_iterator.h (istream_iterator)
1016 (ostream_iterartor): Likewise.
1017 * include/bits/streambuf_iterator.h (istreambuf_iterator)
1018 (ostreambuf_iterator): Likewise.
1019 * include/std/ranges (views::single, views::iota, views::all)
1020 (views::filter, views::transform, views::take, views::take_while)
1021 (views::drop, views::drop_while, views::join, views::lazy_split)
1022 (views::split, views::counted, views::common, views::reverse)
1023 (views::elements): Likewise.
1024 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
1025 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
1026 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
1028 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
1029 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
1031 * testsuite/21_strings/basic_string/range_access/char/1.cc:
1032 Cast result to void.
1033 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
1035 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1037 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1039 * testsuite/23_containers/array/range_access.cc: Likewise.
1040 * testsuite/23_containers/deque/range_access.cc: Likewise.
1041 * testsuite/23_containers/forward_list/range_access.cc:
1043 * testsuite/23_containers/list/range_access.cc: Likewise.
1044 * testsuite/23_containers/map/range_access.cc: Likewise.
1045 * testsuite/23_containers/multimap/range_access.cc: Likewise.
1046 * testsuite/23_containers/multiset/range_access.cc: Likewise.
1047 * testsuite/23_containers/set/range_access.cc: Likewise.
1048 * testsuite/23_containers/unordered_map/range_access.cc:
1050 * testsuite/23_containers/unordered_multimap/range_access.cc:
1052 * testsuite/23_containers/unordered_multiset/range_access.cc:
1054 * testsuite/23_containers/unordered_set/range_access.cc:
1056 * testsuite/23_containers/vector/range_access.cc: Likewise.
1057 * testsuite/24_iterators/customization_points/iter_move.cc:
1059 * testsuite/24_iterators/istream_iterator/sentinel.cc:
1061 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
1063 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
1064 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
1065 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
1066 * testsuite/24_iterators/range_access/range_access.cc:
1068 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1069 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
1070 * testsuite/28_regex/range_access.cc: Likewise.
1071 * testsuite/experimental/string_view/range_access/char/1.cc:
1073 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
1075 * testsuite/ext/vstring/range_access.cc: Likewise.
1076 * testsuite/std/ranges/adaptors/take.cc: Likewise.
1077 * testsuite/std/ranges/p2259.cc: Likewise.
1079 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1081 * include/bits/random.tcc (linear_congruential_engine): Do not
1082 define static constexpr members when they are implicitly inline.
1083 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
1084 (__ratio_add, __ratio_subtract): Likewise.
1085 * include/std/type_traits (integral_constant): Likewise.
1086 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1089 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1091 * testsuite/util/testsuite_common_types.h: Replace uses of
1092 tr1::unordered_map and tr1::unordered_set with their C++11
1094 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
1095 dg-error line number.
1096 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
1097 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
1099 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
1101 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
1103 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
1105 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
1108 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1110 * include/std/memory_resource (polymorphic_allocator::delete_object):
1111 Call destructor directly instead of using destroy.
1112 (allocator_traits<polymorphic_allocator<T>>): Define partial
1115 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1117 * testsuite/20_util/function_objects/binders/3113.cc: Remove
1118 trailing whitespace.
1119 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1120 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1121 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1123 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1124 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
1126 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1128 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1131 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1133 * doc/xml/manual/evolution.xml: Document deprecation.
1134 * doc/html/*: Regenerate.
1135 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
1136 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
1137 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
1139 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
1140 for C++11 and C++14 changes to std::random_shuffle and
1142 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
1143 use deprecated algorithms.
1144 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
1145 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
1146 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1148 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1151 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1153 * testsuite/23_containers/forward_list/operations/3.cc:
1154 Use lambda instead of std::bind2nd.
1155 * testsuite/20_util/function_objects/binders/3113.cc: Add
1156 options for testing deprecated features.
1157 * testsuite/20_util/pair/cons/99957.cc: Likewise.
1158 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1159 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1160 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1162 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
1163 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
1164 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
1165 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1166 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
1167 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
1168 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
1170 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
1172 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
1175 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1177 * include/bits/regex_executor.h (_State_info): Replace
1178 unique_ptr<bool[]> with array of bool.
1179 * include/bits/regex_executor.tcc: Likewise.
1180 * include/bits/regex_scanner.tcc: Replace std::strchr with
1182 * include/std/regex: Replace standard headers with smaller
1184 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
1185 <string.h> for strlen.
1186 * testsuite/28_regex/traits/char/lookup_collatename.cc:
1189 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1191 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
1192 RAII class template.
1193 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
1194 instead of unique_ptr.
1196 2021-08-02 Patrick Palka <ppalka@redhat.com>
1199 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
1200 Add missing std::move in return statement.
1201 (__partition_copy_fn::operator()): Rename templtae parameter
1202 _O2 to _Out2. Uglify function parameters out_true and out_false.
1203 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
1204 std::move to recursive call that unwraps a __normal_iterator
1206 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
1207 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
1209 2021-08-02 Patrick Palka <ppalka@redhat.com>
1212 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
1213 the const& overload unconstrained and return a const reference
1214 as per LWG 3533. Make unconditionally noexcept.
1215 (elements_view::base): Revert accidental r12-569 change.
1216 (elements_view::_Iterator::base): Make the const& overload
1217 unconstrained and return a const reference as per LWG 3533.
1218 Make unconditionally noexcept.
1220 2021-08-02 Patrick Palka <ppalka@redhat.com>
1223 * include/std/ranges (join_view::_Iterator::_Iterator): Add
1226 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
1229 * src/filesystem/ops-common.h (get_temp_directory_from_env):
1230 Add error_code parameter.
1231 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
1232 argument to get_temp_directory_from_env and check it.
1233 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1235 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
1237 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1238 Add dg-error for c++11_only target.
1240 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
1243 * configure.ac: Check for secure_getenv.
1244 * config.h.in: Regenerate.
1245 * configure: Regenerate.
1246 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
1247 helper function to obtain path from the environment.
1248 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
1249 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1250 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1251 Print messages if test cannot be run.
1252 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1253 Likewise. Fix incorrect condition. Use "TMP" to work with
1254 Windows as well as POSIX.
1256 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
1258 * src/c++17/memory_resource.cc: Use __exchange instead
1261 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1263 * include/experimental/optional (__throw_bad_optional_access):
1264 Replace GNU attribute with C++11 attribute.
1265 (optional::value, optional::value_or): Use if statements
1266 instead of conditional expressions.
1267 * include/std/optional (__throw_bad_optional_access)
1268 (optional::value, optional::value_or): Likewise.
1270 2021-07-27 Marek Polacek <polacek@redhat.com>
1274 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1276 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1279 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1281 * include/bits/cow_string.h: Consistently use tab for
1284 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1286 * include/Makefile.am: Add new header.
1287 * include/Makefile.in: Regenerate.
1288 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1289 (basic_string): Move definition of Copy-on-Write string to
1291 * include/bits/basic_string.tcc: Likewise.
1292 * include/bits/cow_string.h: New file.
1294 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1296 * include/std/algorithm: Do not include <utility>.
1297 * include/std/functional: Likewise.
1298 * include/std/regex: Include <bits/stl_pair.h> instead of
1300 * include/debug/map.h: Likewise.
1301 * include/debug/multimap.h: Likewise.
1302 * include/debug/multiset.h: Likewise.
1303 * include/debug/set.h: Likewise.
1304 * include/debug/vector: Likewise.
1305 * include/bits/fs_path.h: Likewise.
1306 * include/bits/unique_ptr.h: Do not include <utility>.
1307 * include/experimental/any: Likewise.
1308 * include/experimental/executor: Likewise.
1309 * include/experimental/memory: Likewise.
1310 * include/experimental/optional: Likewise.
1311 * include/experimental/socket: Use __exchange instead
1313 * src/filesystem/ops-common.h: Likewise.
1314 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
1315 errors to not use a hardcoded line number.
1316 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
1317 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
1318 Include <utility> for std::as_const.
1319 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
1321 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1323 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
1325 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
1326 Adjust dg-error line number.
1328 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1330 * include/Makefile.am: Add bits/utility.h header.
1331 * include/Makefile.in: Regenerate.
1332 * include/bits/utility.h: New file.
1333 * include/std/utility (tuple_size, tuple_element): Move
1335 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
1337 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
1338 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
1339 * include/bits/ranges_util.h: Include new header instead of
1341 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
1342 partial specializations for std::pair here.
1343 (get): Move overloads for std::pair here.
1344 * include/std/any: Include new header instead of <utility>.
1345 * include/std/array: Likewise.
1346 * include/std/memory_resource: Likewise.
1347 * include/std/optional: Likewise.
1348 * include/std/variant: Likewise.
1349 * include/std/tuple: Likewise.
1350 (__is_tuple_like_impl<tuple<T...>>): Move here.
1351 (get) Declare overloads for std::array.
1352 * include/std/version (__cpp_lib_tuples_by_type): Change type
1354 * testsuite/20_util/optional/84601.cc: Include <utility>.
1355 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
1357 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1358 Adjust dg-error line numbers.
1359 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
1360 * testsuite/std/ranges/access/cend.cc: Likewise.
1361 * testsuite/std/ranges/access/end.cc: Likewise.
1362 * testsuite/std/ranges/single_view.cc: Likewise.
1364 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
1366 * include/std/future: Include <bits/atomic_base.h> instead of
1369 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
1371 * include/bits/stl_relops.h: Update documentation comments.
1373 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1376 * include/bits/hashtable.h (_Hashtable): Replace mixin with
1377 _Enable_default_ctor. Construct it explicitly in all
1378 non-forwarding, non-defaulted constructors.
1379 * testsuite/23_containers/unordered_map/cons/default.cc: Check
1380 non-default constructors can be used.
1381 * testsuite/23_containers/unordered_set/cons/default.cc:
1384 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
1386 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
1388 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1391 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
1392 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
1393 (allocator::allocate, allocator::deallocate): Use new macros.
1395 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1398 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
1399 constructor parameter to reference and use addressof.
1400 * testsuite/util/testsuite_iterators.h: Define deleted operator&
1401 overloads for test iterators.
1403 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1405 * include/bits/std_function.h (_Function_base): Add
1406 default member initializers and define constructor as defaulted.
1407 (function::_M_invoker): Add default member initializer.
1409 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1412 * doc/xml/manual/debug_mode.xml: Update documentation about
1413 debug capability of std::array.
1414 * doc/html/*: Regenerate.
1415 * include/debug/array: New file.
1417 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
1420 * include/ext/rope (sequence_buffer): Add move constructor and
1421 move assignment operator.
1422 * testsuite/ext/rope/101542.cc: New test.
1424 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1427 * src/c++17/fs_ops.cc (fs::create_directories): Use status
1428 instead of symlink_status.
1429 * src/filesystem/ops.cc (fs::create_directories): Likewise.
1430 * testsuite/27_io/filesystem/operations/create_directories.cc:
1431 Check symlink to existing directory.
1432 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
1433 not test with symlinks on Windows.
1434 * testsuite/experimental/filesystem/operations/create_directories.cc:
1435 Check symlink to existing directory.
1436 * testsuite/experimental/filesystem/operations/create_directory.cc:
1437 Do not test with symlinks on Windows.
1439 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1442 * include/bits/hashtable.h (_Hashtable): Conditionally delete
1443 default constructor by deriving from _Enable_special_members.
1444 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
1445 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
1447 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1450 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
1451 * testsuite/27_io/filesystem/operations/create_directory.cc:
1452 Test creating directory with name of existing symlink to
1454 * testsuite/experimental/filesystem/operations/create_directory.cc:
1457 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1459 * include/std/tuple (get<I>): Add deleted overload for bad
1461 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1464 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1466 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
1467 Use __int_traits unconditionally.
1469 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1471 * include/bits/random.h (_Shift::__value): Use constexpr.
1472 (_Select_uint_least_t::type): Use using-declaration.
1474 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1477 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1479 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
1480 instead of diagnostic pragmas.
1481 * include/bits/functional_hash.h: Likewise.
1482 * include/bits/iterator_concepts.h (__is_signed_int128)
1483 (__is_unsigned_int128): Likewise.
1484 * include/bits/max_size_type.h (__max_size_type): Likewise.
1485 (numeric_limits<__max_size_type>): Likewise.
1486 * include/bits/std_abs.h (abs): Likewise.
1487 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
1488 * include/bits/uniform_int_dist.h (uniform_int_distribution):
1490 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
1492 * include/std/type_traits (__is_integral_helper<INT_N>)
1493 (__is_signed_integer, __is_unsigned_integer)
1494 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
1495 * include/std/limits (__INT_N): Add __extension__ keyword.
1496 * include/bits/random.h (_Select_uint_least_t)
1497 (random_device): Likewise.
1499 2021-07-16 Patrick Palka <ppalka@redhat.com>
1502 * include/std/ranges (_CachedPosition::_M_get): For non-forward
1503 ranges, just call __builtin_unreachable.
1504 * testsuite/std/ranges/istream_view.cc (test05): New test.
1506 2021-07-16 Patrick Palka <ppalka@redhat.com>
1509 * include/std/ranges (split_view::split_view): Use std::move.
1510 (split_view::_Iterator::_Iterator): Remove redundant
1511 default_initializable constraint.
1512 (split_view::_Sentinel::_Sentinel): Declare.
1513 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
1515 2021-07-16 Marek Polacek <polacek@redhat.com>
1517 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
1520 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1522 * include/bits/unique_ptr.h: Adjust doxygen markup.
1524 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1527 * include/std/type_traits: Adjust doxygen markup.
1529 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1531 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
1532 uses of non-standard integer types.
1533 * include/bits/functional_hash.h: Likewise.
1534 * include/bits/iterator_concepts.h: Likewise.
1535 * include/bits/max_size_type.h: Likewise.
1536 * include/bits/std_abs.h: Likewise.
1537 * include/bits/stl_algobase.h: Likewise.
1538 * include/bits/uniform_int_dist.h: Likewise.
1539 * include/ext/numeric_traits.h: Likewise.
1540 * include/std/type_traits: Likewise.
1542 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
1545 * include/std/tuple (tuple_element): Improve static_assert text.
1546 (__get_helper): Add deleted overload.
1547 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
1548 __get_helper directly.
1549 (__get_helper2): Remove.
1550 (__find_uniq_type_in_pack): New constexpr helper function.
1551 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
1553 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1555 * testsuite/20_util/tuple/element_access/101427.cc: New test.
1557 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
1560 * include/bits/c++config (__replacement_assert): Add noexcept.
1561 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
1562 instead of __replacement_assert.
1564 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
1566 * include/std/string_view (basic_string_view(It, End)): Add
1568 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
1569 Check noexcept-specifier. Also check construction without CTAD.
1571 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
1574 * include/std/string_view (ends_with): Use traits_type::compare
1577 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
1579 * include/std/string_view: Only include <bits/ranges_base.h>
1580 once, and only for C++20 and later.
1582 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
1585 * include/std/span (as_writable_bytes): Add requires-clause.
1586 * testsuite/23_containers/span/101411.cc: New test.
1588 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
1590 * include/std/mutex (__lock_impl): Check
1591 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
1593 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
1596 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
1597 Remove noexcept-specifier.
1598 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
1599 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
1602 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
1604 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
1605 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
1606 Add some more predefined macros.
1607 * include/bits/fs_fwd.h: Move @addtogroup commands inside
1608 namespaces. Add better documentation.
1609 * include/bits/fs_path.h: Likewise.
1610 * include/experimental/bits/fs_fwd.h: Likewise.
1611 * include/experimental/bits/fs_path.h: Likewise.
1612 * include/ext/throw_allocator.h: Fix typo and improve docs.
1613 * include/std/chrono: Move @addtogroup commands.
1614 * include/std/system_error: Move @addtogroup commands.
1615 * libsupc++/exception: Improve documentation.
1616 * libsupc++/exception.h: Add @since documentation.
1618 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
1621 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
1622 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
1623 (PREDEFINED): Add/fix some more macros that need to be expanded.
1624 * include/bits/random.h: Stop Doxygen from documenting internal
1625 implementation details.
1626 * include/bits/random.tcc: Likewise.
1627 * include/bits/this_thread_sleep.h: Fix @file name.
1628 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
1629 document internal implementation details.
1630 * include/experimental/bits/simd_detail.h: Do not document
1631 internal implementation details.
1632 * include/experimental/simd: Define Doxygen groups.
1633 * include/experimental/type_traits: Improve documentation for
1634 the header file. Define groups. Use @since commands.
1635 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
1636 declaration before undocumented region.
1637 * include/std/type_traits (true_type, false_type): Use using
1638 declaration instead of typedef.
1639 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
1640 (is_nothrow_invocable_r_v): Move definitions next to other C++17
1642 Do not document internal implementation details. Move misplaced
1643 group-end command. Define group for variable templates.
1644 * include/std/variant: Do not document internal implementation
1646 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1649 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
1651 * include/experimental/simd: Do not define anything pre-C++17.
1653 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
1655 * include/bits/random.tcc [__cpp_inline_variables]: Remove
1656 redundant definitions of static constexpr member variables.
1657 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1660 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1662 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
1663 explicit instantiation declarations.
1664 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
1665 explicit instantiation definitions.
1667 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1670 * testsuite/17_intro/names.cc: Fix #if condition for names used
1673 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1676 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
1677 Fail gracefully if element_type is incomplete.
1678 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
1679 the standard doesn't require this test to work for array types.
1680 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
1681 types can be used with array specialization.
1682 * testsuite/20_util/unique_ptr/101236.cc: New test.
1684 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1686 * doc/xml/manual/intro.xml: Document LWG 415 change.
1687 * doc/html/manual/bugs.html: Regenerate.
1688 * include/bits/istream.tcc (ws): Create sentry and catch
1690 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
1691 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
1693 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1695 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
1696 directly instead of using _M_write. Do setstate(__err) all
1697 outside the try-catch block.
1698 * include/std/ostream (basic_ostream::_M_write): Declare
1699 private. Use __ostream_insert. Do not define for the versioned
1702 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1704 * doc/xml/manual/intro.xml: Document LWG 581 change.
1705 * doc/html/manual/bugs.html: Regenerate.
1706 * include/bits/basic_ios.tcc: Whitespace.
1707 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
1709 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
1711 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
1713 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
1714 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
1717 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1719 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
1720 is set, not if eofbit is set.
1721 (tellp, seekp, seekp): Create sentry object. Do not set badbit
1723 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
1724 Adjust expected behaviour.
1725 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
1727 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
1729 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
1731 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
1732 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
1733 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
1734 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
1736 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1738 * include/std/syncstream (basic_syncbuf::swap()): Remove
1739 noexcept, as per LWG 3498.
1741 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1744 * testsuite/17_intro/names.cc: Undef more names for newlib and
1745 also for arm-none-linux-gnueabi.
1746 * testsuite/experimental/names.cc: Disable PCH.
1748 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
1750 * include/experimental/bits/simd.h (__bit_cast): Implement via
1751 __builtin_bit_cast #if available.
1752 (__proposed::simd_bit_cast): Add overloads for simd and
1753 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
1754 available), which return an object of the requested type with
1755 the same bits as the argument.
1756 * include/experimental/bits/simd_math.h: Use simd_bit_cast
1757 instead of __bit_cast to allow casts to fixed_size_simd.
1758 (copysign): Remove branch that was only required if __bit_cast
1759 cannot be constexpr.
1760 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
1761 from __bit_cast to __proposed::simd_bit_cast since the former
1762 will not cast fixed_size objects anymore.
1764 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1766 * include/experimental/bits/simd_math.h
1767 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
1768 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
1771 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1773 * include/experimental/bits/simd.h (__execute_on_index_sequence)
1774 (__execute_on_index_sequence_with_return)
1775 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
1778 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1780 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
1781 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
1784 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1786 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
1787 implementation doesn't require a _VecBltnBtmsk ABI tag, it
1788 requires either a 64-Byte input (in which case AVX512F must be
1789 available) or AVX512VL.
1791 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1793 * include/experimental/bits/simd_math.h: Undefine internal
1795 (frexp): Move #if to a more sensible position and reformat
1797 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
1798 duplicating the code here.
1799 (modf): Simplify condition.
1801 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1803 * include/experimental/bits/simd_math.h (fabs): Remove
1804 fabs(simd<integral>) overload.
1806 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1808 * include/experimental/bits/simd_converter.h
1809 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
1810 * include/experimental/bits/simd_fixed_size.h
1811 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
1812 arguments by const-ref.
1813 (_S_masked_unary): Pass _SimdTuple by const-ref.
1815 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1817 * include/experimental/bits/simd_fixed_size.h
1818 (_AbisInSimdTuple): Removed.
1820 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1822 * include/experimental/bits/simd.h: Add missing operator~
1823 overload for simd<floating-point> to __float_bitwise_operators.
1824 * include/experimental/bits/simd_builtin.h
1825 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
1826 implement complement for floating-point vectors.
1827 * include/experimental/bits/simd_fixed_size.h
1828 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
1829 copysign implementation of _SimdTuple members.
1830 * include/experimental/bits/simd_math.h (copysign): Call
1831 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
1832 generic copysign implementation using the new ~ operator.
1834 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
1836 * testsuite/experimental/simd/README.md: Fix typos.
1838 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
1840 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
1842 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
1843 conditional noexcept as per LWG 2762.
1844 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
1845 dereferencing cannot throw.
1846 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
1847 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
1848 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
1850 2021-06-23 Patrick Palka <ppalka@redhat.com>
1853 * testsuite/23_containers/multiset/cons/deduction.cc:
1854 Uncomment CTAD example that was rejected by this bug.
1855 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1857 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
1859 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
1862 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1864 * testsuite/experimental/simd/README.md: New file.
1866 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1868 * testsuite/experimental/simd/driver.sh: Rewrite output
1869 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
1870 to be used twice. Add -x and -o short options. Parse long
1871 options with = instead of separating space generically. Parce
1872 contracted short options. Make unrecognized options an error.
1873 If same-line output is active, trap on EXIT to increment the
1874 progress (only with --percentage), erase the line and print the
1876 * testsuite/experimental/simd/generate_makefile.sh: Initialize
1877 helper files for progress account keeping. Update help target
1878 for changes to DRIVEROPTS.
1880 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1882 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
1883 and associated warning.
1884 * testsuite/Makefile.in: Regenerate.
1886 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
1887 Jonathan Wakely <jwakely@redhat.com>
1888 Ulrich Drepper <drepper@redhat.com>
1890 * include/std/chrono (chrono::year::is_leap()): Optimize.
1892 2021-06-23 Patrick Palka <ppalka@redhat.com>
1895 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
1897 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1898 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1899 Mention one of the replaced examples is broken due to PR101174.
1900 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1901 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
1902 ambiguous CTAD examples.
1903 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1905 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1907 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
1909 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
1911 * include/std/mutex (__detail::__try_lock_impl): Rename
1912 parameter to avoid clashing with newlib's __lockable macro.
1913 (try_lock): Add 'inline' specifier.
1914 * testsuite/17_intro/names.cc: Add check for __lockable.
1915 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
1917 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1918 Matthias Kretz <m.kretz@gsi.de>
1920 * include/std/mutex (lock): Replace recursion with iteration
1921 when lockables all have the same type.
1922 (__detail::__try_lock_impl): Likewise. Pass lockables as
1923 parameters, instead of a tuple. Always lock the first one, and
1924 recurse for the rest.
1925 (__detail::__lock_impl): Adjust call to __try_lock_impl.
1926 (__detail::__try_to_lock): Remove.
1927 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
1928 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
1930 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
1932 * testsuite/30_threads/try_lock/5.cc: New test.
1934 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1936 * include/std/memory (declare_reachable, undeclare_reachable)
1937 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
1938 (pointer_safety): Only define for C++11 to C++20 inclusive.
1939 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
1941 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1943 * include/bits/random.h (seed_seq): Constrain initializer-list
1945 * include/bits/random.tcc (seed_seq): Add template parameter.
1946 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
1948 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
1951 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
1954 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
1955 Force _M_release() to wake all waiting threads.
1956 * testsuite/30_threads/semaphore/100806.cc: New test.
1958 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
1960 * include/std/mutex (__try_to_lock): Move to __detail namespace.
1961 (struct __try_lock_impl): Replace with ...
1962 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
1963 function templates to implement std::try_lock.
1964 (try_lock): Use new __try_lock_impl.
1965 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
1966 template to implement std::lock.
1967 (lock): Use __lock_impl.
1969 2021-06-21 Patrick Palka <ppalka@redhat.com>
1971 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1973 2021-06-20 Patrick Palka <ppalka@redhat.com>
1975 * include/std/ranges (__non_propagating_cache::operator bool):
1976 Define for split_view::begin().
1977 (split_view): Define as per P2210.
1978 (views::__detail::__can_split_view): Define.
1979 (views::_Split, views::split): Define.
1980 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
1982 * testsuite/std/ranges/adaptors/split.cc: New test.
1983 * testsuite/std/ranges/p2325.cc (test08a): New test.
1984 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
1986 2021-06-20 Patrick Palka <ppalka@redhat.com>
1988 * include/std/ranges: Rename views::split to views::lazy_split,
1989 split_view to lazy_split_view, etc. throughout.
1990 * testsuite/std/ranges/*: Likewise.
1991 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
1992 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
1994 2021-06-20 Patrick Palka <ppalka@redhat.com>
1996 * include/std/ranges (split_view::_OuterIter::__at_end):
1997 Check _M_trailing_empty.
1998 (split_view::_OuterIter::_M_trailing_empty): Define this
2000 (split_view::_OuterIter::operator++): Set _M_trailing_empty
2002 (split_view::_OuterIter::operator==): Compare
2004 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
2005 split parts instead of one.
2006 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
2008 2021-06-20 Patrick Palka <ppalka@redhat.com>
2010 * include/std/ranges (split_view::_InnerIter::base): Define as
2013 2021-06-19 Patrick Palka <ppalka@redhat.com>
2015 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
2016 Consider _Base instead of _Vp as per LWG 3555.
2017 (elements_view::_Iterator::_S_iter_concept): Likewise.
2019 2021-06-19 Patrick Palka <ppalka@redhat.com>
2021 * include/std/ranges (split_view::_OuterIter::value_type::begin):
2022 Remove the non-const overload, and remove the copyable constraint
2023 on the const overload as per LWG 3553.
2025 2021-06-19 Patrick Palka <ppalka@redhat.com>
2027 * include/bits/stl_iterator.h
2028 (__detail::__common_iter_use_postfix_proxy): Add
2029 move_constructible constraint as per LWG 3546.
2030 (common_iterator::__postfix_proxy): Adjust initializer of
2031 _M_keep as per LWG 3546.
2033 2021-06-18 Patrick Palka <ppalka@redhat.com>
2036 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
2037 to limit comparison complexity to 3*N/2.
2038 (__minmax_element_fn::operator()): Likewise.
2039 (shift_right): Avoid premature std::move of __result.
2040 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
2042 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
2045 2021-06-18 Patrick Palka <ppalka@redhat.com>
2047 * include/std/concepts (convertible_to): Just use declval as per
2050 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
2053 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
2054 incorrect static_assert with ones matching the 'Mandates'
2055 conditions in the standard.
2056 * testsuite/26_numerics/reduce/95833.cc: New test.
2058 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
2060 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
2061 diagnostic pragma to suppress -Wstringop-overread error.
2063 2021-06-18 Patrick Palka <ppalka@redhat.com>
2065 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
2066 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
2067 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
2068 * include/bits/ranges_util.h: ... here.
2069 * include/std/ranges (__detail::find, __detail::find_if)
2070 (__detail::find_if_not, __detail::mismatch): Remove.
2071 (filter_view): Use ranges::find_if instead.
2072 (drop_while_view): Use ranges::find_if_not instead.
2073 (split_view): Use ranges::find and ranges::mismatch instead.
2075 2021-06-18 Patrick Palka <ppalka@redhat.com>
2077 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
2078 default_initializable requirement.
2079 * include/bits/ranges_base.h (ranges::view): Likewise.
2080 * include/bits/ranges_util.h (subrange): Constrain the default
2082 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
2084 (front_insert_iterator): Likewise.
2085 (insert_iterator): Likewise. Remove NSDMIs.
2086 (common_iterator): Constrain the default ctor.
2087 (counted_iterator): Likewise.
2088 * include/bits/stream_iterator.h (ostream_iterator): Remove the
2090 * include/std/ranges (__detail::__box::operator=): Handle
2091 self-assignment in the primary template.
2092 (__detail::__box): In the partial specialization: adjust
2093 constraints as per P2325. Add specialized operator= for the
2094 case when the wrapped type is not copyable. Constrain the
2095 default ctor. Avoid list-initialization.
2096 (single_view): Constraint the default ctor.
2097 (iota_view): Relax semiregular constraint to copyable.
2098 Constrain the default ctor.
2099 (iota_view::_Iterator): Constraint the default ctor.
2100 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
2101 Remove redundant checks for empty _M_stream.
2102 (basic_istream_view::_Iterator): Likewise.
2103 (ref_view): Remove the default ctor. Remove NSDMIs.
2104 (ref_view::_Iterator): Constrain the default ctor.
2105 (__detail::__non_propagating_cache::operator=): Define overload
2106 for assigning from a value of the underlying type.
2107 (filter_view): Likewise.
2108 (filter_view::_Iterator): Likewise.
2109 (transform_view): Likewise.
2110 (transform_view::_Iterator): Likewise.
2111 (take_view): Likewise.
2112 (take_view::_Iterator): Likewise.
2113 (take_while_view): Likewise.
2114 (take_while_view::_Iterator): Likewise.
2115 (drop_while_view): Likewise.
2116 (drop_while_view::_Iterator): Likewise.
2117 (join_view): Likewise.
2118 (split_view::_OuterIter::__current): Adjust after changing the
2120 (split_view::_M_current): Wrap it in a __non_propagating_cache.
2121 (split_view::split_view): Constrain the default ctor.
2122 (common_view): Constrain the default ctor.
2123 (reverse_view): Likewise.
2124 (elements_view): Likewise.
2125 * include/std/span (enable_view<span<_ElementType, _Extent>>):
2126 Define this partial specialization to true unconditionally.
2127 * include/std/version (__cpp_lib_ranges): Adjust value.
2128 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
2129 Don't attempt to default construct a back_insert_iterator.
2130 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
2131 Don't attempt to default construct a front_insert_iterator.
2132 * testsuite/24_iterators/insert_iterator/constexpr.cc:
2133 Don't attempt to default construct an insert_iterator.
2134 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
2135 Remove this test for default constructibility of ostream_iterator.
2136 * testsuite/std/ranges/97600.cc: Don't attempt to default
2137 construct a basic_istream_view.
2138 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
2140 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
2141 (test02): Adjust now that __box is copyable-box not
2144 * testsuite/std/ranges/p2325.cc: New test.
2145 * testsuite/std/ranges/single_view.cc (test06): New test.
2146 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
2147 require default_initializable.
2149 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
2152 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
2153 define when is_constant_evaluated is available.
2154 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
2156 (__constant_string_p, __constant_array_p): Remove.
2157 (char_traits): Use is_constant_evaluated directly.
2158 * include/std/version (__cpp_lib_constexpr_char_traits)
2159 (__cpp_lib_constexpr_string): Only define when
2160 is_constant_evaluated is available.
2162 2021-06-17 Patrick Palka <ppalka@redhat.com>
2165 * include/std/ranges (__adaptor::_Partial): For the "simple"
2166 forwarding partial specializations, also require that
2167 the extra arguments are trivially copyable.
2168 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
2170 2021-06-17 Patrick Palka <ppalka@redhat.com>
2173 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
2174 template form of _S_has_simple_extra_args.
2175 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
2176 parameter pack. Try to treat _S_has_simple_extra_args as a
2177 variable template parameterized by _Args.
2178 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
2179 __adaptor_has_simple_extra_args.
2180 (views::_Take::_S_has_simple_extra_args): Templatize according
2181 to the type of the extra argument.
2182 (views::_Drop::_S_has_simple_extra_args): Likewise.
2183 (views::_Split::_S_has_simple_extra_args): Define.
2184 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
2185 Adjust after changes to _S_has_simple_extra_args mechanism.
2188 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
2190 * include/bits/iterator_concepts.h (__decay_copy): Name type.
2192 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
2194 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2195 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2196 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2197 (ranges::empty, ranges::data, ranges::cdata): Remove final
2198 keywords and deleted operator& overloads.
2199 * testsuite/24_iterators/customization_points/iter_move.cc: Use
2200 new is_customization_point_object function.
2201 * testsuite/24_iterators/customization_points/iter_swap.cc:
2203 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
2205 * testsuite/std/ranges/access/begin.cc: Likewise.
2206 * testsuite/std/ranges/access/cbegin.cc: Likewise.
2207 * testsuite/std/ranges/access/cdata.cc: Likewise.
2208 * testsuite/std/ranges/access/cend.cc: Likewise.
2209 * testsuite/std/ranges/access/crbegin.cc: Likewise.
2210 * testsuite/std/ranges/access/crend.cc: Likewise.
2211 * testsuite/std/ranges/access/data.cc: Likewise.
2212 * testsuite/std/ranges/access/empty.cc: Likewise.
2213 * testsuite/std/ranges/access/end.cc: Likewise.
2214 * testsuite/std/ranges/access/rbegin.cc: Likewise.
2215 * testsuite/std/ranges/access/rend.cc: Likewise.
2216 * testsuite/std/ranges/access/size.cc: Likewise.
2217 * testsuite/std/ranges/access/ssize.cc: Likewise.
2218 * testsuite/util/testsuite_iterators.h
2219 (is_customization_point_object): New function.
2221 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2223 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2224 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2225 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2226 (ranges::empty, ranges::data, ranges::cdata): Make types final.
2227 Add deleted operator& overloads.
2228 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
2230 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
2231 ill-formed & expressions with using-declarations. Add checks for
2232 other function objects.
2234 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2236 * include/bits/ranges_util.h (view_interface): Add noexcept to
2237 empty, operator bool, data and size members.
2238 (subrange): Add noexcept to constructors.
2239 * include/std/ranges (single_view, ref_view): Add noexcept to
2241 (views::single, views::all): Add noexcept.
2242 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
2243 * testsuite/std/ranges/single_view.cc: Likewise.
2245 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2247 * include/bits/ranges_util.h (subrange): Add __size_type typedef
2248 and use it to simplify declarations.
2249 (subrange(i, s, n)): Remove assertion.
2250 * testsuite/std/ranges/subrange/constexpr.cc: New test.
2252 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2254 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
2255 Replace with function object.
2256 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
2257 __decay_copy unqualified.
2258 * include/bits/ranges_base.h (__member_end, __adl_end):
2259 Likewise. Use __range_iter_t for type of ranges::begin.
2260 (__member_rend): Use correct value category for rbegin argument.
2261 (__member_data): Use __decay_copy unqualified.
2262 (__begin_data): Use __range_iter_t for type of ranges::begin.
2264 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2266 * include/bits/ranges_base.h (ranges::empty): Check whether
2267 conversion to bool can throw.
2268 * testsuite/std/ranges/access/empty.cc: Check for correct
2271 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2274 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
2275 use the type if it's a reference.
2276 * testsuite/20_util/common_reference/100894.cc: New test.
2278 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2280 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2281 Add dg-require-filesystem-ts directive.
2283 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2286 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
2287 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
2289 * testsuite/20_util/any/cons/101034.cc: New test.
2291 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2293 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
2294 -std=gnu++17 option.
2296 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2299 * libsupc++/compare (compare_partial_order_fallback): Add
2300 constraint using reversed parameter order, as per LWG 3465.
2301 * testsuite/18_support/comparisons/algorithms/fallback.cc:
2302 Adjust expected result.
2304 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2306 * libsupc++/compare (__decayed_same_as): New helper concept.
2307 (strong_order, weak_order, partial_order): Constrain with new
2308 concept instead of using static_assert.
2309 (compare_strong_order_fallback, compare_weak_order_fallback)
2310 (compare_partial_order_fallback): Likewise. Do not deduce return
2311 types. Remove redundant if-constexpr checks.
2312 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
2314 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2317 * include/std/tuple: Use reserved form of attribute name.
2318 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
2319 check for no_unique_address.
2320 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
2322 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
2325 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
2327 * include/bits/fs_path.h (operator==, operator<=>): Use new
2328 _S_compare function.
2329 (path::_S_compare): New function to call path::compare in a
2330 context where path::iterator is complete.
2331 * include/experimental/bits/fs_path.h (operator<, operator==):
2332 Define after path::iterator is complete.
2333 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
2335 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2338 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
2340 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
2341 test logic with constexpr check for is_always_lock_free.
2343 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
2346 * include/std/optional (optional::operator=(const optional<U>&)):
2347 Fix value category used in is_assignable check.
2348 * testsuite/20_util/optional/assignment/100982.cc: New test.
2350 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
2352 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
2353 * include/bits/iterator_concepts.h (indirectly_readable_traits):
2354 Add LWG issue number to comment.
2355 * include/std/memory_resource (polymorphic_allocator::release):
2357 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
2358 dg-warning for deprecation. Also check std::allocator<void>.
2360 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
2363 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
2364 Change parameter type from _Tp to _Tp*.
2365 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
2366 coverage of types tested.
2368 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
2370 * include/std/barrier (__tree_barrier::_M_arrive): Remove
2371 unnecessary hasher instantiation.
2373 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
2375 * include/experimental/propagate_const (swap): Constrain.
2376 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
2378 2021-06-07 Avi Kivity <avi@scylladb.com>
2381 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
2382 Add missing typename.
2384 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
2387 * include/std/optional (operator<=>(const optional<T>& const U&)):
2388 Add missing constraint and add workaround for template
2390 * testsuite/20_util/optional/relops/three_way.cc: Check that
2391 type without equality comparison cannot be compared when wrapped
2394 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
2397 * include/bits/ranges_base.h (_SSize): Return signed type.
2398 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
2400 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2402 * include/bits/ranges_base.h (_SSize): Return the result of
2403 ranges::size converted to the wider of make-signed-like-t<S> and
2404 ptrdiff_t, rather than the ranges different type.
2405 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
2406 for an iota_view that uses an integer class type for its
2409 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2412 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
2413 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
2415 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2418 * include/bits/iterator_concepts.h (__detail::__decay_copy)
2419 (__detail::__member_begin, __detail::__adl_begin): Move to
2420 namespace ranges::__cust_access.
2421 (__detail::__ranges_begin): Likewise, and rename to __begin.
2422 Remove redundant static assertion.
2423 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
2424 Use lvalue in noexcept specifier.
2425 (__as_const): Add non-deduced parameter for value category.
2426 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
2428 (__member_size, __adl_size, __member_empty, __size0_empty):
2429 (__eq_iter_empty, __adl_data): Use lvalue objects in
2431 (__sentinel_size): Likewise. Add check for conversion to
2433 (__member_data): Allow non-lvalue types to satisfy the concept,
2434 but use lvalue object in requirements.
2435 (_Size, _SSize): Remove forwarding to always use an lvalue.
2436 (_Data): Likewise. Add static assertion for arrays.
2437 * testsuite/std/ranges/access/cdata.cc: Adjust expected
2438 behaviour for rvalues. Add negative tests for ill-formed
2440 * testsuite/std/ranges/access/data.cc: Likewise.
2441 * testsuite/std/ranges/access/empty.cc: Adjust expected
2442 behaviour for rvalues.
2443 * testsuite/std/ranges/access/size.cc: Likewise.
2445 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
2447 * include/std/any (any::_Manager::_S_access): New static
2448 function to access the contained value.
2449 (any::emplace, __any_caster): Use _S_access member of the
2452 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2454 * doc/xml/manual/status_cxx2020.xml:
2455 * doc/html/*: Regenerate.
2456 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
2458 * include/std/version (__cpp_lib_generic_unordered_lookup):
2460 * testsuite/23_containers/unordered_map/operations/1.cc: Check
2462 * testsuite/23_containers/unordered_set/operations/1.cc:
2465 2021-06-03 Patrick Palka <ppalka@redhat.com>
2467 * include/bits/ranges_algo.h (__detail::__can_reread_output):
2468 Factor out this concept from ...
2469 (__unique_copy_fn::operator()): ... here. Use the concept
2471 * testsuite/std/ranges/range.cc: Remove now ill-formed use
2472 of range_value_t on an output_range.
2473 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2474 Define value_type, pointer and reference member types to void.
2476 2021-06-03 Patrick Palka <ppalka@redhat.com>
2479 * include/std/ranges (_RangeAdaptorClosure): Document
2480 _S_has_simple_call_op mechanism.
2481 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
2482 (__closure_has_simple_call_op): New concept.
2483 (__adaptor_has_simple_extra_args): Likewise.
2484 (_Partial<_Adaptor, _Args...>): New partial specialization.
2485 (_Partial<_Adaptor, _Arg>): Likewise.
2486 (_Pipe<_Lhs, _Rhs>): Likewise.
2487 (views::_All::_S_has_simple_call_op): Define to true.
2488 (views::_Filter::_S_has_simple_extra_args): Likewise.
2489 (views::_Transform::_S_has_simple_extra_args): Likewise.
2490 (views::_Take::_S_has_simple_extra_args): Likewise.
2491 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
2492 (views::_Drop::_S_has_simple_extra_args): Likewise.
2493 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
2494 (views::_Join::_S_has_simple_call_op): Likewise.
2495 (views::_Split): Document why we don't define
2496 _S_has_simple_extra_args to true for this adaptor.
2497 (views::_Common::_S_has_simple_call_op): Define to true.
2498 (views::_Reverse::_S_has_simple_call_op): Likewise.
2499 (views::_Elements::_S_has_simple_call_op): Likewise.
2500 * testsuite/std/ranges/adaptors/100577.cc: New test.
2502 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2506 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
2507 Value-initialize subobject.
2508 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
2510 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
2513 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2516 * testsuite/23_containers/unordered_map/96088.cc: Adjust
2517 expected number of allocations.
2518 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2520 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2522 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
2523 * doc/xml/manual/status_cxxtr1.xml: Likewise.
2524 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
2525 * doc/html/*: Regenerate.
2527 2021-06-01 Patrick Palka <ppalka@redhat.com>
2530 * testsuite/23_containers/deque/allocator/default_init.cc,
2531 testsuite/23_containers/forward_list/allocator/default_init.cc,
2532 testsuite/23_containers/list/allocator/default_init.cc,
2533 testsuite/23_containers/map/allocator/default_init.cc,
2534 testsuite/23_containers/set/allocator/default_init.cc,
2535 testsuite/23_containers/vector/allocator/default_init.cc,
2536 testsuite/23_containers/vector/bool/allocator/default_init.cc:
2539 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2541 * testsuite/23_containers/unordered_map/96088.cc: Change
2542 effective target to c++17.
2543 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2545 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2547 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
2548 isblank for C++11 and later.
2550 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2553 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
2554 Fix return value for no-op case.
2555 * testsuite/24_iterators/range_operations/advance.cc: Test
2556 return values of three-argument overload.
2558 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2561 * python/Makefile.am: Use archive name for printer hook if no
2562 dynamic library name is available.
2563 * python/Makefile.in: Regenerate.
2565 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
2567 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
2568 Compilers for Linux: Compatibility with GNU Compilers" article.
2569 * doc/html/manual/abi.html: Regenerate.
2571 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
2573 * include/debug/formatter.h
2574 (_Error_formatter::_Parameter::_Named): New.
2575 (_Error_formatter::_Parameter::_Type): Inherit latter.
2576 (_Error_formatter::_Parameter::_M_integer): Likewise.
2577 (_Error_formatter::_Parameter::_M_string): Likewise.
2578 * src/c++11/debug.cc: Include <cstring>.
2579 (_Print_func_t): New.
2580 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
2581 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
2582 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
2583 (print_type): Rename in...
2584 (print_type_info): ...this. Use pretty_print.
2585 (print_address, print_integer): New.
2586 (print_named_name, print_iterator_constness, print_iterator_state): New.
2587 (print_iterator_seq_type): New.
2588 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
2589 (print_field): Use latters.
2590 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
2591 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
2592 Change signature to...
2593 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
2594 ...this and adapt. Remove intermediate buffer to render input string.
2595 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
2597 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
2600 * include/bits/ranges_base.h (advance, distance, next, prev):
2601 Replace function templates with function objects.
2602 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
2603 Adjust for changes to function objects.
2604 * testsuite/std/ranges/adaptors/elements.cc: Add using
2605 declarations for names from namespace ranges.
2606 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
2607 * testsuite/24_iterators/range_operations/100768.cc: New test.
2609 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
2612 * include/bits/hashtable_policy.h (_Select2nd): New.
2613 (_NodeBuilder<>): New.
2614 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
2615 (_AllocNode<>::operator()): Likewise.
2616 * include/bits/hashtable.h
2617 (_Hashtable<>::__node_builder_t): New.
2618 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
2620 (_Hashtable<>::_S_forward_key): New.
2621 (_Hashtable<>::_M_insert): Use latter.
2622 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
2623 Instantiate node first, compute hash code second.
2624 * testsuite/23_containers/unordered_map/96088.cc: New test.
2625 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
2626 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
2627 * testsuite/23_containers/unordered_set/96088.cc: New test.
2628 * testsuite/util/replacement_memory_operators.h
2629 (counter::_M_increment): New.
2630 (counter::_M_decrement): New.
2631 (counter::reset()): New.
2633 2021-05-24 Patrick Palka <ppalka@redhat.com>
2636 * include/std/ranges (__detail::__non_propagating_cache): Move
2637 definition up to before that of _CachedPosition. Make base
2638 class _Optional_base protected instead of private. Add const
2639 overload for operator*.
2640 (__detail::_CachedPosition): Rewrite the partial specialization
2641 for forward ranges as a derived class of __non_propagating_cache.
2642 Remove the size constraint on the partial specialization for
2643 random access ranges. Add copy/move/copy-assignment/move-assignment
2644 members to the offset partial specialization for random
2645 access ranges that propagate the cached value but additionally
2646 invalidate it in the source object on move.
2647 * testsuite/std/ranges/adaptors/100479.cc: New test.
2649 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
2651 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
2652 call to ranges::next.
2653 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
2654 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
2656 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
2659 2021-05-21 Patrick Palka <ppalka@redhat.com>
2662 * include/std/ranges (drop_while_view::begin): Assert the
2663 precondition added by LWG 3490.
2665 2021-05-21 Patrick Palka <ppalka@redhat.com>
2668 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
2669 Split out this member function from ...
2670 (iota_view::_Sentinel::operator-): ... here, for sake of access
2672 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
2674 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
2676 * include/bits/random.tcc (__representable_as_double)
2677 (__p1_representable_as_double): Add "" to static asserts.
2679 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
2682 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
2683 (__glibcxx_constexpr_assert): ... this.
2684 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
2685 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
2686 or __glibcxx_assert_impl.
2687 (__glibcxx_assert_2): Remove
2688 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
2689 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
2690 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
2691 Adjust expected error.
2692 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
2694 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
2697 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
2699 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
2701 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
2703 * testsuite/23_containers/span/back_neg.cc: Likewise.
2704 * testsuite/23_containers/span/front_neg.cc: Likewise.
2705 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
2707 2021-05-20 Patrick Palka <ppalka@redhat.com>
2710 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
2711 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
2712 (reverse_iterator::reference): Likewise, but with iter_reference_t.
2713 (reverse_iterator::value_type): Likewise, but with iter_value_t.
2714 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
2715 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
2717 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
2720 * include/std/charconv (to_chars): Hide the overloads for
2721 floating-point types for 16 bit targets.
2722 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
2723 * testsuite/20_util/to_chars/double.cc: Run this test only on
2725 * testsuite/20_util/to_chars/float.cc: Likewise.
2726 * testsuite/20_util/to_chars/long_double.cc: Likewise.
2728 2021-05-18 Patrick Palka <ppalka@redhat.com>
2731 * include/std/ranges (elements_view::_Sentinel::operator-): Use
2732 _M_distance_from in the other operator- overload too.
2733 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
2735 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
2737 * testsuite/lib/prune.exp: Add note about 'dg-note'.
2739 2021-05-18 Patrick Palka <ppalka@redhat.com>
2742 * include/std/ranges (__box::__box): Use non-list-initialization
2743 in member initializer list of in-place constructor of the
2744 partial specialization for semiregular types.
2745 (__box::operator->): Use std::__addressof.
2746 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
2748 * testsuite/std/ranges/single_view.cc (test04): New test.
2750 2021-05-18 Patrick Palka <ppalka@redhat.com>
2753 * include/std/ranges (reverse_view::_S_needs_cached_begin):
2754 Set to true if the underlying non-common random-access range
2755 doesn't have a sized sentinel.
2757 2021-05-18 Patrick Palka <ppalka@redhat.com>
2760 * include/std/ranges (elements_view::_Iterator): Also befriend
2762 (elements_view::_Sentinel::_M_equal): Templatize.
2763 (elements_view::_Sentinel::_M_distance_from): Split out from ...
2764 (elements_view::_Sentinel::operator-): ... here. Depend on
2765 _Base2 instead of _Base in the return type.
2766 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
2769 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
2771 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
2772 until value change observed.
2773 (__waiter_base::_M_laundered): New member.
2774 (__waiter_base::_M_notify): Check _M_laundered to determine
2775 whether to wake one or all.
2776 (__detail::__atomic_compare): Return true if call to
2777 __builtin_memcmp() == 0.
2778 (__waiter_base::_S_do_spin_v): Adjust predicate.
2779 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
2782 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
2785 * include/experimental/bits/fs_path.h (__is_constructible_from):
2786 Test construction from a const lvalue, not an rvalue.
2787 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
2788 * testsuite/experimental/filesystem/path/construct/100630.cc:
2791 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
2794 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
2795 Declare (but do not define) partial specialization.
2796 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
2798 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
2800 * include/std/thread (jthread::_S_create): Fix static assert
2802 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
2803 * testsuite/30_threads/jthread/jthread.cc: Do not require
2804 pthread effective target.
2805 * testsuite/30_threads/jthread/2.cc: Moved to...
2806 * testsuite/30_threads/jthread/version.cc: ...here.
2808 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
2810 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
2811 * doc/Makefile.in: Regenerate.
2812 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
2814 * scripts/run_doxygen (print_usage): Always print to stdout and
2816 (fail): New function for exiting on error.
2817 (parse_options): Handle --latex_cmd. Do not treat --help the
2818 same as errors. Simplify handling of required arguments.
2820 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
2822 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
2823 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
2824 warnings. Replace bitwise AND with logical AND in loop
2826 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
2827 Replace bitwise AND with logical AND in loop condition.
2828 * testsuite/util/pstl/test_utils.h: Remove unused parameter
2831 2021-05-11 Patrick Palka <ppalka@redhat.com>
2833 * src/c++17/ryu/LOCAL_PATCHES: Update.
2834 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
2835 Remove declarations for never-defined functions.
2836 * testsuite/20_util/to_chars/4.cc: New test.
2838 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
2840 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
2841 alternative for macro.
2842 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
2844 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
2847 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
2849 * include/bits/allocator.h (allocator<void>) [C++20]: Add
2850 missing noexcept to constructor. Restore missing POCMA and
2851 is_always_equal_traits.
2852 [C++17]: Make construct and destroy members private and
2853 declare allocator_traits as a friend.
2854 * include/bits/memoryfwd.h (allocator_traits): Declare.
2855 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
2856 Add nodiscard attribute. Add static assertion for LWG 3307.
2857 * include/ext/new_allocator.h (new_allocator::allocate): Add
2858 static assertion for LWG 3307.
2859 * testsuite/20_util/allocator/void.cc: Check that converting
2860 constructor is noexcept. Check for propagation traits and
2861 size_type and difference_type. Check that pointer and
2862 const_pointer are gone in C++20.
2864 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2866 * include/std/stop_token: Remove TODO comment.
2868 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2870 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
2871 Initialize a non-reference deleter from an rvalue, as per LWG
2873 (__shared_ptr::_UniqCompatible): Add missing constraint.
2874 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
2875 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
2878 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2880 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
2881 -std=gnu++17 from dg-options directive.
2882 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
2884 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
2886 * testsuite/17_intro/headers/c++2017/operator_names.cc:
2888 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
2889 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
2890 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
2892 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
2893 * testsuite/18_support/byte/81076.cc: Likewise.
2894 * testsuite/18_support/byte/global_neg.cc: Likewise.
2895 * testsuite/18_support/byte/ops.cc: Likewise.
2896 * testsuite/18_support/byte/requirements.cc: Likewise.
2897 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
2898 * testsuite/18_support/launder/1.cc: Likewise.
2899 * testsuite/18_support/launder/nodiscard.cc: Likewise.
2900 * testsuite/18_support/launder/requirements.cc: Likewise.
2901 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
2902 * testsuite/18_support/new_aligned.cc: Likewise.
2903 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
2905 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
2907 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
2908 * testsuite/20_util/addressof/requirements/constexpr.cc:
2910 * testsuite/20_util/as_const/1.cc: Likewise.
2911 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
2912 * testsuite/20_util/bind/83427.cc: Likewise.
2913 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2914 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
2915 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
2917 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2919 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
2920 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
2922 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
2923 * testsuite/20_util/from_chars/requirements.cc: Likewise.
2924 * testsuite/20_util/function/91456.cc: Likewise.
2925 * testsuite/20_util/function/cons/deduction.cc: Likewise.
2926 * testsuite/20_util/function_objects/83607.cc: Likewise.
2927 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
2928 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
2929 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
2930 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
2931 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
2933 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
2935 * testsuite/20_util/has_unique_object_representations/value.cc:
2937 * testsuite/20_util/hash/nullptr.cc: Likewise.
2938 * testsuite/20_util/in_place/requirements.cc: Likewise.
2939 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
2940 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2942 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
2944 * testsuite/20_util/is_aggregate/value.cc: Likewise.
2945 * testsuite/20_util/is_invocable/83395.cc: Likewise.
2946 * testsuite/20_util/is_invocable/91456.cc: Likewise.
2947 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
2949 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
2951 * testsuite/20_util/is_invocable/value.cc: Likewise.
2952 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
2953 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
2954 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
2955 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
2957 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
2958 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
2959 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
2961 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2963 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2964 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
2966 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2968 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
2970 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
2972 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
2974 * testsuite/20_util/is_swappable/value.cc: Likewise.
2975 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
2977 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
2979 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
2980 * testsuite/20_util/logical_traits/83134.cc: Likewise.
2981 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
2983 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
2985 * testsuite/20_util/logical_traits/value.cc: Likewise.
2986 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
2987 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
2988 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
2990 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
2991 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
2992 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
2993 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
2994 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
2996 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
2998 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
2999 * testsuite/20_util/to_chars/3.cc: Likewise.
3000 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
3001 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
3002 * testsuite/20_util/to_chars/requirements.cc: Likewise.
3003 * testsuite/20_util/tuple/78939.cc: Likewise.
3004 * testsuite/20_util/tuple/apply/1.cc: Likewise.
3005 * testsuite/20_util/tuple/apply/2.cc: Likewise.
3006 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
3007 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
3008 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
3009 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
3010 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
3011 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
3012 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
3014 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
3015 * testsuite/20_util/void_t/1.cc: Likewise.
3016 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
3017 * testsuite/24_iterators/container_access.cc: Likewise.
3018 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
3020 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
3022 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
3024 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
3026 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
3027 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
3029 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
3030 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
3032 * testsuite/26_numerics/lcm/1.cc: Likewise.
3033 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
3034 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
3035 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
3037 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
3039 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
3041 * testsuite/27_io/types/4.cc: Likewise.
3042 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
3043 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
3044 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3046 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3048 * testsuite/20_util/function_objects/searchers.cc: Remove
3049 -std=gnu++17 from dg-options directive.
3050 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
3052 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3054 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
3056 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
3058 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
3060 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
3062 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
3064 * testsuite/25_algorithms/clamp/1.cc: Likewise.
3065 * testsuite/25_algorithms/clamp/2.cc: Likewise.
3066 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
3067 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
3069 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
3071 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
3072 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
3074 * testsuite/25_algorithms/sample/1.cc: Likewise.
3075 * testsuite/25_algorithms/sample/2.cc: Likewise.
3076 * testsuite/25_algorithms/sample/3.cc: Likewise.
3077 * testsuite/25_algorithms/sample/81221.cc: Likewise.
3078 * testsuite/25_algorithms/search/searcher.cc: Likewise.
3079 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
3080 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
3081 * testsuite/26_numerics/reduce/1.cc: Likewise.
3082 * testsuite/26_numerics/reduce/2.cc: Likewise.
3083 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
3084 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
3085 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
3087 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3089 * testsuite/23_containers/array/cons/deduction.cc: Remove
3090 -std=gnu++17 from dg-options directive.
3091 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
3092 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
3094 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
3096 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
3098 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
3099 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
3101 * testsuite/23_containers/forward_list/cons/deduction.cc:
3103 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
3105 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
3106 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
3108 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
3109 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
3110 * testsuite/23_containers/map/modifiers/insert/83226.cc:
3112 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
3114 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
3115 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
3117 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3118 * testsuite/23_containers/multimap/modifiers/extract.cc:
3120 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
3121 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3122 * testsuite/23_containers/multiset/modifiers/extract.cc:
3124 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
3125 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
3126 * testsuite/23_containers/queue/deduction.cc: Likewise.
3127 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
3129 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3130 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
3131 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
3132 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
3133 * testsuite/23_containers/stack/deduction.cc: Likewise.
3134 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
3136 * testsuite/23_containers/unordered_map/cons/deduction.cc:
3138 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
3140 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
3142 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
3144 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
3146 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3148 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
3150 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
3152 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3154 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
3156 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
3158 * testsuite/23_containers/unordered_set/cons/deduction.cc:
3160 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
3162 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
3164 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
3166 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
3167 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
3168 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
3171 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3173 * testsuite/21_strings/basic_string/79162.cc: Remove
3174 -std=gnu++17 from dg-options directive.
3175 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
3176 * testsuite/21_strings/basic_string/cons/char/79162.cc:
3178 * testsuite/21_strings/basic_string/cons/char/86138.cc:
3180 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
3181 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
3183 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
3185 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
3186 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
3188 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
3190 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
3191 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
3193 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
3195 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
3196 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
3197 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
3198 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
3200 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
3202 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
3204 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
3206 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
3208 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
3210 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
3212 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
3214 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
3216 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
3218 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
3220 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
3222 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
3224 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
3226 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
3228 * testsuite/21_strings/basic_string/operators/char/5.cc:
3230 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
3232 * testsuite/21_strings/basic_string_view/capacity/1.cc:
3234 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
3236 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
3238 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
3240 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
3242 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
3244 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
3246 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
3248 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
3250 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
3252 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
3254 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
3256 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3258 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
3260 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3262 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
3264 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
3266 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
3268 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3270 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3272 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3274 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3276 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
3278 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3280 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
3282 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
3284 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3286 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
3287 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
3289 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
3291 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
3293 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
3295 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
3297 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
3299 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
3301 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
3303 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
3305 * testsuite/21_strings/basic_string_view/literals/types.cc:
3307 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
3309 * testsuite/21_strings/basic_string_view/literals/values.cc:
3311 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3313 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3315 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3317 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3319 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
3321 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
3323 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
3325 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
3327 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
3329 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
3331 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
3333 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
3335 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
3337 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
3339 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
3341 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
3343 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
3345 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
3347 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3349 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3351 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
3353 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
3355 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
3357 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
3359 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
3361 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
3363 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
3365 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
3367 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
3369 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
3371 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
3373 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
3375 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
3377 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
3379 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
3381 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
3383 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
3385 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3387 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
3389 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3391 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
3393 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
3395 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
3397 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
3399 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
3401 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3403 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3405 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3407 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3409 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3411 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3413 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
3415 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3417 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
3419 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
3421 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
3422 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
3423 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
3425 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
3427 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3429 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
3430 from dg-options directive.
3431 * testsuite/20_util/memory_resource/2.cc: Likewise.
3432 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
3433 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
3435 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
3437 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
3439 * testsuite/20_util/monotonic_buffer_resource/release.cc:
3441 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
3443 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
3444 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
3446 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3447 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
3448 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
3450 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
3452 * testsuite/20_util/synchronized_pool_resource/cons.cc:
3454 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
3456 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
3458 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
3460 * testsuite/20_util/synchronized_pool_resource/options.cc:
3462 * testsuite/20_util/synchronized_pool_resource/release.cc:
3464 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
3466 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
3468 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
3470 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
3472 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
3474 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
3476 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
3478 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3480 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3481 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
3483 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3485 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
3487 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3488 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
3489 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3490 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
3491 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3492 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
3494 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3495 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
3497 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3498 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
3499 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3501 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
3503 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3505 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
3507 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3509 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
3511 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3513 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
3515 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3516 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
3518 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3520 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3522 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
3524 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
3525 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
3526 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
3527 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
3528 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
3529 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
3530 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
3531 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
3533 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
3535 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
3536 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
3537 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
3539 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
3540 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
3542 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
3543 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
3544 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
3545 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
3547 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3549 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
3550 dg-options directive.
3551 * testsuite/20_util/any/assign/2.cc: Likewise.
3552 * testsuite/20_util/any/assign/emplace.cc: Likewise.
3553 * testsuite/20_util/any/assign/exception.cc: Likewise.
3554 * testsuite/20_util/any/assign/self.cc: Likewise.
3555 * testsuite/20_util/any/cons/1.cc: Likewise.
3556 * testsuite/20_util/any/cons/2.cc: Likewise.
3557 * testsuite/20_util/any/cons/90415.cc: Likewise.
3558 * testsuite/20_util/any/cons/92156.cc: Likewise.
3559 * testsuite/20_util/any/cons/aligned.cc: Likewise.
3560 * testsuite/20_util/any/cons/explicit.cc: Likewise.
3561 * testsuite/20_util/any/cons/in_place.cc: Likewise.
3562 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
3563 * testsuite/20_util/any/make_any.cc: Likewise.
3564 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3565 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
3566 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
3567 * testsuite/20_util/any/misc/swap.cc: Likewise.
3568 * testsuite/20_util/any/modifiers/1.cc: Likewise.
3569 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
3570 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
3571 * testsuite/20_util/any/observers/type.cc: Likewise.
3572 * testsuite/20_util/any/requirements.cc: Likewise.
3573 * testsuite/20_util/any/typedefs.cc: Likewise.
3574 * testsuite/20_util/optional/77288.cc: Likewise.
3575 * testsuite/20_util/optional/84601.cc: Likewise.
3576 * testsuite/20_util/optional/assignment/1.cc: Likewise.
3577 * testsuite/20_util/optional/assignment/2.cc: Likewise.
3578 * testsuite/20_util/optional/assignment/3.cc: Likewise.
3579 * testsuite/20_util/optional/assignment/4.cc: Likewise.
3580 * testsuite/20_util/optional/assignment/5.cc: Likewise.
3581 * testsuite/20_util/optional/assignment/6.cc: Likewise.
3582 * testsuite/20_util/optional/assignment/7.cc: Likewise.
3583 * testsuite/20_util/optional/assignment/8.cc: Likewise.
3584 * testsuite/20_util/optional/assignment/9.cc: Likewise.
3585 * testsuite/20_util/optional/bad_access.cc: Likewise.
3586 * testsuite/20_util/optional/cons/77727.cc: Likewise.
3587 * testsuite/20_util/optional/cons/85642.cc: Likewise.
3588 * testsuite/20_util/optional/cons/copy.cc: Likewise.
3589 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
3590 * testsuite/20_util/optional/cons/default.cc: Likewise.
3591 * testsuite/20_util/optional/cons/move.cc: Likewise.
3592 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
3593 * testsuite/20_util/optional/cons/value.cc: Likewise.
3594 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
3595 * testsuite/20_util/optional/constexpr/cons/default.cc:
3597 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
3598 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
3599 * testsuite/20_util/optional/constexpr/make_optional.cc:
3601 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
3602 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
3603 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
3604 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
3605 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
3606 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
3607 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
3608 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
3609 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
3610 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
3611 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
3612 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
3613 * testsuite/20_util/optional/hash.cc: Likewise.
3614 * testsuite/20_util/optional/in_place.cc: Likewise.
3615 * testsuite/20_util/optional/make_optional.cc: Likewise.
3616 * testsuite/20_util/optional/nullopt.cc: Likewise.
3617 * testsuite/20_util/optional/observers/1.cc: Likewise.
3618 * testsuite/20_util/optional/observers/2.cc: Likewise.
3619 * testsuite/20_util/optional/observers/3.cc: Likewise.
3620 * testsuite/20_util/optional/observers/4.cc: Likewise.
3621 * testsuite/20_util/optional/observers/5.cc: Likewise.
3622 * testsuite/20_util/optional/observers/6.cc: Likewise.
3623 * testsuite/20_util/optional/relops/1.cc: Likewise.
3624 * testsuite/20_util/optional/relops/2.cc: Likewise.
3625 * testsuite/20_util/optional/relops/3.cc: Likewise.
3626 * testsuite/20_util/optional/relops/4.cc: Likewise.
3627 * testsuite/20_util/optional/relops/5.cc: Likewise.
3628 * testsuite/20_util/optional/relops/6.cc: Likewise.
3629 * testsuite/20_util/optional/relops/7.cc: Likewise.
3630 * testsuite/20_util/optional/requirements.cc: Likewise.
3631 * testsuite/20_util/optional/swap/1.cc: Likewise.
3632 * testsuite/20_util/optional/swap/2.cc: Likewise.
3633 * testsuite/20_util/optional/typedefs.cc: Likewise.
3634 * testsuite/20_util/variant/80165.cc: Likewise.
3635 * testsuite/20_util/variant/85183.cc: Likewise.
3636 * testsuite/20_util/variant/86874.cc: Likewise.
3637 * testsuite/20_util/variant/87431.cc: Likewise.
3638 * testsuite/20_util/variant/87619.cc: Likewise.
3639 * testsuite/20_util/variant/91807.cc: Likewise.
3640 * testsuite/20_util/variant/any.cc: Likewise.
3641 * testsuite/20_util/variant/compile.cc: Likewise.
3642 * testsuite/20_util/variant/deduction.cc: Likewise.
3643 * testsuite/20_util/variant/exception_safety.cc: Likewise.
3644 * testsuite/20_util/variant/hash.cc: Likewise.
3645 * testsuite/20_util/variant/index_type.cc: Likewise.
3646 * testsuite/20_util/variant/relops/89851.cc: Likewise.
3647 * testsuite/20_util/variant/relops/90008.cc: Likewise.
3648 * testsuite/20_util/variant/run.cc: Likewise.
3649 * testsuite/20_util/variant/visit.cc: Likewise.
3651 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3653 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
3654 -std=gnu++17 from dg-options directive.
3655 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
3656 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
3657 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
3658 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
3659 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
3660 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
3661 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
3662 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
3664 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
3665 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
3666 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
3667 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
3668 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
3669 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
3671 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
3672 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
3674 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3676 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
3677 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
3678 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
3679 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
3680 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
3681 * testsuite/27_io/filesystem/operations/create_directories.cc:
3683 * testsuite/27_io/filesystem/operations/create_directory.cc:
3685 * testsuite/27_io/filesystem/operations/create_symlink.cc:
3687 * testsuite/27_io/filesystem/operations/current_path.cc:
3689 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
3690 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3691 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
3692 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3693 * testsuite/27_io/filesystem/operations/last_write_time.cc:
3695 * testsuite/27_io/filesystem/operations/permissions.cc:
3697 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
3698 * testsuite/27_io/filesystem/operations/read_symlink.cc:
3700 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
3701 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
3702 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
3703 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
3704 * testsuite/27_io/filesystem/operations/resize_file.cc:
3706 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
3707 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3708 * testsuite/27_io/filesystem/operations/symlink_status.cc:
3710 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3712 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
3714 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
3715 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
3716 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
3717 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3718 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
3719 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
3720 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
3721 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
3722 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
3723 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
3724 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
3725 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
3726 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
3727 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
3728 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
3729 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
3730 * testsuite/27_io/filesystem/path/construct/default.cc:
3732 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
3733 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
3734 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
3735 * testsuite/27_io/filesystem/path/construct/string_view.cc:
3737 * testsuite/27_io/filesystem/path/decompose/extension.cc:
3739 * testsuite/27_io/filesystem/path/decompose/filename.cc:
3741 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
3743 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
3745 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
3747 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
3749 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
3751 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
3752 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
3754 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
3755 * testsuite/27_io/filesystem/path/generation/normal.cc:
3757 * testsuite/27_io/filesystem/path/generation/normal2.cc:
3759 * testsuite/27_io/filesystem/path/generation/proximate.cc:
3761 * testsuite/27_io/filesystem/path/generation/relative.cc:
3763 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
3764 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
3766 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
3767 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
3768 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3769 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
3770 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
3771 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
3772 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
3774 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
3776 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
3778 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
3780 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
3781 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
3782 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
3784 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
3785 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
3786 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
3787 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3789 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
3790 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
3791 * testsuite/27_io/filesystem/path/query/has_extension.cc:
3793 * testsuite/27_io/filesystem/path/query/has_filename.cc:
3795 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
3797 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
3799 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
3801 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
3803 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
3805 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
3806 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
3808 * testsuite/27_io/filesystem/path/query/is_relative.cc:
3810 * testsuite/experimental/filesystem/path/construct/string_view.cc:
3813 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3815 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
3816 Remove -std=gnu++17 from dg-options.
3817 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
3819 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
3821 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
3823 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
3824 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
3826 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
3828 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
3830 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
3832 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
3834 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
3836 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
3838 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
3840 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
3842 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
3844 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
3846 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
3848 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
3850 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
3852 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
3854 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
3856 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
3858 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
3860 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
3862 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
3864 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
3866 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
3868 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
3870 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
3872 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3874 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
3876 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
3878 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
3880 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
3882 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
3884 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
3886 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
3888 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
3890 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3892 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
3894 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
3895 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
3897 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
3899 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
3901 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
3903 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
3905 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
3906 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
3907 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
3908 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
3909 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
3910 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
3911 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
3912 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
3914 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
3915 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
3916 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
3918 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
3921 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3923 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
3924 for additional errors in C++20.
3925 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3927 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3928 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3930 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3932 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
3933 clash with std::any.
3935 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
3937 * include/std/istream (__rvalue_stream_extraction_t): Replace
3938 use of __rval_streamable.
3939 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
3940 (__rval_streamable): Remove.
3941 (_Require_derived_from_ios_base, __derived_from_ios_base): New
3942 helper for checking constraints.
3943 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
3944 reference to the wrong subclause of the standard.
3945 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
3947 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
3949 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
3951 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
3953 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
3956 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3958 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
3959 Improve static_assert messages.
3960 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
3961 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
3963 2021-05-06 Patrick Palka <ppalka@redhat.com>
3965 * include/std/ranges (filter_view::_Iterator::base): Make the
3966 const& overload unconstrained and return a const reference as
3967 per LWG 3533. Make unconditionally noexcept.
3968 (transform_view::_Iterator::base): Likewise.
3969 (elements_view::_Iterator::base): Likewise.
3971 2021-05-06 Patrick Palka <ppalka@redhat.com>
3973 * include/bits/stl_iterator.h (move_iterator::base): Make the
3974 const& overload unconstrained and return a const reference as
3975 per LWG 3391. Make unconditionally noexcept.
3976 (counted_iterator::base): Likewise.
3977 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
3978 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
3979 has_member_base concept to decay-copy the result of base().
3981 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3983 * include/std/type_traits (remove_cvref_t): Define in terms of
3985 * testsuite/20_util/remove_cvref/value.cc: Check alias.
3987 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3990 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3992 * include/std/charconv (__from_chars_alnum): Pass unsigned
3993 char to std::isdigit.
3995 2021-05-05 Patrick Palka <ppalka@redhat.com>
3997 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
3998 Remove constraints on this partial specialization.
3999 * include/std/ranges (enable_borrowed_range<iota_view>):
4002 2021-05-05 Patrick Palka <ppalka@redhat.com>
4004 * include/std/ranges (transform_view::_Iterator::iter_swap):
4005 Remove as per LWG 3520.
4006 (join_view::_Iterator::iter_swap): Add indirectly_swappable
4007 constraint as per LWG 3517.
4009 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
4011 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
4013 * testsuite/20_util/function_objects/invoke/version.cc: New test.
4015 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
4017 * include/std/charconv (__from_chars_alnum): Pass unsigned
4018 char to std::isdigit.
4020 2021-05-05 Corentin Gay <gay@adacore.com>
4022 * acinclude.m4: Add VxWorks-specific case for the
4023 configuration of ctypes.
4024 * configure: Regenerate.
4025 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
4027 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
4028 * config/os/vxworks/ctype_configure_char.cc: Likewise.
4029 * config/os/vxworks/ctype_inline.h: Likewise.
4030 * testsuite/28_regex/traits/char/isctype.cc: Defines
4031 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
4032 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
4034 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4036 * include/std/future (promise::set_value): Check for existence
4037 of shared state before dereferncing it.
4038 (promise::set_exception, promise::set_value_at_thread_exit)
4039 (promise::set_exception_at_thread_exit): Likewise.
4040 (promise<R&>::set_value, promise<R&>::set_exception)
4041 (promise<R&>::set_value_at_thread_exit)
4042 (promise<R&>::set_exception_at_thread_exit): Likewise.
4043 (promise<void>::set_value, promise<void>::set_exception)
4044 (promise<void>::set_value_at_thread_exit)
4045 (promise<void>::set_exception_at_thread_exit): Likewise.
4046 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
4047 Remove unused variable.
4049 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4051 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
4052 Do not do arithmetic on null pointer.
4054 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4056 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
4057 (find_key_pointer(key_const_reference, false_type))
4058 (find_key_pointer(key_const_reference, true_type)): Do not
4059 dereference null pointer.
4061 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4063 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
4065 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
4066 non-zero value to null pointer.
4067 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
4068 Use past-the-end iterator for result.
4069 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
4070 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
4072 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4075 * include/std/variant (__get_t): New alias template yielding the
4076 return type of std::get<N> on a variant.
4077 (__visit_result_t): New alias template yielding the result of
4079 (__same_types): Move into namespace __detail::__variant.
4080 (__check_visitor_results): Likewise. Use __invoke_result_t and
4082 (__check_visitor_result): Remove.
4083 (visit): Use __visit_result_t for return type.
4084 * testsuite/20_util/variant/100384.cc: New test.
4086 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4088 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
4089 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
4090 * config.h.in: Regenerate.
4091 * configure: Regenerate.
4092 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
4093 * include/bits/random.h (_Select_uint_least_t<s, 1>):
4094 Use __SIZEOF_INT128__ to decide whether to use __int128.
4095 * include/std/charconv (__to_chars_unsigned_type): Likewise.
4097 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
4099 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
4100 * doc/html/manual/facets.html: Regenerate.
4102 2021-04-30 Patrick Palka <ppalka@redhat.com>
4104 * include/std/ranges (__detail::__non_propating_cache): Define
4106 (join_view): Remove constraints on the value and reference types
4107 of the wrapped iterator type as per P2328.
4108 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
4109 (join_view::_Iterator::operator++): Likewise.
4110 (join_view::_M_inner): Use __non_propating_cache as per P2328.
4111 Remove now-redundant use of __maybe_present_t.
4112 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
4115 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4117 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
4118 Only define for C++17 and later.
4119 * include/std/version (__cpp_lib_semaphore): Fix condition
4120 to match the one in <semaphore>.
4122 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4124 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
4125 * config.h.in: Regenerate.
4126 * configure: Regenerate.
4127 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
4128 * include/bits/postypes.h: Remove include of <stdint.h> and
4129 definition/undefinition of the __STDC_LIMIT_MACROS and
4130 __STDC_CONSTANT_MACROS macros.
4131 (streamoff): Use __INT64_TYPE__ if defined.
4133 2021-04-30 Patrick Palka <ppalka@redhat.com>
4135 * include/std/ranges (split_view::_InnerIter::operator++):
4136 Depend on _Base instead of _Vp directly, as per LWG 3532.
4138 2021-04-30 Patrick Palka <ppalka@redhat.com>
4140 * include/bits/ranges_util.h (subrange::subrange): Avoid
4141 list-initialization in delegating constructor.
4142 * include/std/ranges (single_view): Replace implicit guide
4143 with explicit deduction guide that decays its argument.
4144 (_Single::operator()): Avoid CTAD when constructing the
4146 (_Iota::operator()): Avoid list-initialization.
4147 (__detail::__can_filter_view, _Filter::operator()): Likewise.
4148 (__detail::__can_transform_view, _Transform::operator()): Likewise.
4149 (take_view::begin): Likewise.
4150 (__detail::__can_take_view, _Take::operator()): Likewise.
4151 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
4152 (__detail::__can_drop_view, _Drop::operator()): Likewise.
4153 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
4154 (split_view::split_view): Use views::single when initializing
4156 (__detail::__can_split_view, _Split::operator()): Avoid
4157 list-initialization.
4158 (_Counted::operator()): Likewise.
4159 * testsuite/std/ranges/p2367.cc: New test.
4161 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4164 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
4166 * include/bits/basic_string.tcc (basic_string::swap)
4167 (basic_string::assign): Likewise.
4168 * include/bits/deque.tcc (deque::operator=(const deque&)):
4170 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
4172 * include/bits/vector.tcc (vector::operator=(const vector&)):
4175 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4177 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
4179 * include/std/ostream (operator<<(Ostream&&, const x&)):
4181 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
4182 Adjust dg-error pattern.
4183 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
4185 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
4186 is_extractable trait to replace std::__is_extractable. Make it
4187 work with rvalue streams as well as lvalues, to replace f() and
4188 g() helper functions.
4189 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
4191 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
4192 Define is_insertable trait to replace std::__is_insertable. Make
4193 it work with rvalue streams as well as lvalues, to replace f()
4194 and g() helper functions.
4195 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
4197 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
4198 errors from new constraints.
4199 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
4200 which are no longer expected to compile.
4201 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
4202 Verify LWG 1203 changes.
4204 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4207 * include/experimental/socket (__basic_socket_impl::set_option)
4208 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
4209 Just set error code.
4210 * testsuite/experimental/net/socket/socket_base.cc: CHeck
4211 for <sys/socket.h> not <socket.h>.
4213 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4218 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
4219 Use new effective-target keyword.
4220 * testsuite/experimental/net/internet/address/v4/cons.cc:
4222 * testsuite/experimental/net/internet/address/v4/creation.cc:
4224 * testsuite/experimental/net/internet/address/v4/members.cc:
4226 * testsuite/experimental/net/internet/address/v6/members.cc:
4228 * testsuite/experimental/net/internet/resolver/base.cc:
4230 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
4232 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
4234 * testsuite/experimental/net/internet/socket/opt.cc:
4236 * testsuite/experimental/net/internet/tcp.cc:
4238 * testsuite/experimental/net/internet/udp.cc:
4240 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
4241 New proc to check net_ts_ip et.
4243 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4246 * testsuite/20_util/pair/requirements/structural.cc: New test.
4248 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4250 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
4251 new definitions for constructors and assignment operators using
4252 concepts for constraints.
4253 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
4255 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
4256 expected error messages to also match C++20 errors.
4258 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4261 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
4262 Combine and replace with ...
4263 (_PCC::_DeprConsPair): New SFINAE helper function.
4264 (pair): Merge preprocessor blocks so that all C++03 members
4265 are defined together at the end.
4266 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
4267 Replace _T1 and _T2 parameters with __null_ptr_constant and
4269 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
4270 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
4271 * testsuite/20_util/pair/cons/99957.cc: New test.
4273 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4275 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
4276 * include/std/version (__cpp_lib_constexpr_string): Define.
4277 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4278 Check for __cpp_lib_constexpr_string.
4279 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
4281 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
4283 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4285 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
4286 dealing with errors. Use '@' to prevent shell command being
4288 * doc/Makefile.in: Regenerate.
4290 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4293 * include/bits/std_thread.h (thread::hardware_concurrency): Add
4294 missing noexcept to inline definition for non-gthreads targets.
4296 2021-04-28 Patrick Palka <ppalka@redhat.com>
4302 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
4303 the __value_comp lambda an explicit bool return type.
4304 (__is_permutation_fn::operator()): Give the __proj_scan local
4305 variable auto&& return type. Give the __comp_scan lambda an
4306 explicit bool return type.
4307 (__remove_fn::operator()): Give the __pred lambda an explicit
4309 (__partition_fn::operator()): Don't std::move __first twice
4310 when returning an empty subrange.
4311 (__min_fn::operator()): Don't std::move __comp.
4312 (__max_fn::operator()): Likewise.
4313 (__minmax_fn::operator()): Likewise.
4315 2021-04-27 Patrick Palka <ppalka@redhat.com>
4318 * include/std/ranges (join_view::_Iterator::operator++): Correct
4319 the return type of the lambda to avoid returning a copy of
4320 _M_parent->_M_inner.
4321 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
4323 2021-04-27 Jakub Jelinek <jakub@redhat.com>
4326 2021-04-22 Jakub Jelinek <jakub@redhat.com>
4329 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4331 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4334 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4336 * include/experimental/internet (address_v6::bytes_type): Adjust
4338 (basic_endpoint): Define _M_is_v6() to put all checks for
4339 AF_INET6 in one place.
4340 (basic_endpoint::resize): Simplify.
4341 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
4342 (operator!=(const tcp&, const tcp&)): Likewise.
4343 (operator==(const udp&, const udp&)): Likewise.
4344 (operator!=(const udp&, const udp&)): Likewise.
4345 * testsuite/experimental/net/internet/tcp.cc: New test.
4346 * testsuite/experimental/net/internet/udp.cc: New test.
4348 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4351 * include/experimental/internet (resolver_errc, resolver_category())
4352 (make_error_code, make_error_condition): Define unconditionally,
4353 only make enumerators and use of gai_strerror depend on the
4354 availability of <netdb.h>.
4355 (address_v4::to_string): Use correct constant for string length.
4356 (address_v4::to_string, address_v6::to_string): Define
4357 unconditionally, throw if unsupported.
4358 (make_address_v4, make_address_v6): Define unconditionally.
4359 Return an error if unsupported.
4360 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
4362 * testsuite/experimental/net/internet/socket/opt.cc: Check for
4363 <netinet/in.h> and <netinet/tcp.h> before using types from
4366 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4369 * include/experimental/internet (resolver_base::flags):
4370 Define overloaded operators as hidden friends.
4371 * include/experimental/socket (socket_base::message_flags):
4374 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4376 * include/experimental/internet (tcp::no_delay, v6_only)
4377 (unicast::hops, multicast::hops, multicast::enable_loopback):
4378 Change access of base class and static data members. Add
4379 using-declaration for __socket_crtp::operator=(_Tp).
4380 (multicast::__mcastopt): New type.
4381 (multicast::join_group, multicast::leave_group): Derive from
4382 __mcastopt for common implementation.
4383 * include/experimental/socket: Add comment.
4384 * testsuite/experimental/net/internet/socket/opt.cc: New test.
4385 * testsuite/experimental/net/socket/socket_base.cc: Check for
4386 protected constructor/destructor of socket_base. Check for
4387 explicit constructors of socket option classes.
4389 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4391 * include/experimental/bits/net.h (__socket_base): Add
4392 bool template parameter to allow BooleanSocketOption and
4393 IntegerSocketOption to have different __socket_base<int>
4395 (__socket_base<bool>): Adjust base class.
4396 (__socket_base<int>): Add partial specialization.
4397 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
4398 * include/experimental/socket (socket_base::broadcast)
4399 (socket_base::debug, socket_base::do_not_route)
4400 (socket_base::keep_alive, socket_base::linger)
4401 (socket_base::out_of_band_inline)
4402 (socket_base::receive_buffer_size)
4403 (socket_base::receive_low_watermark)
4404 (socket_base::reuse_address, socket_base::send_buffer_size)
4405 (socket_base::send_low_watermark): Add using-declaration for
4406 __socket_crtp::operator=(_Tp).
4407 * testsuite/experimental/net/socket/socket_base.cc: Check
4408 properties of socket option types.
4410 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4412 * include/experimental/internet (resolver_base::flags): Remove
4413 enumerators. Initialize constants directly with desired values.
4414 Make all operators constexpr and noexcept.
4415 * testsuite/experimental/net/internet/resolver/base.cc: Use
4416 __gnu_test::test_bitmask_values for bitmask type. Check
4417 construction and destruction is protected.
4419 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4421 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
4423 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4426 * include/experimental/internet (net::ip::make_error_code)
4427 (net::ip::make_error_condition, net::ip::make_network_v4)
4428 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
4430 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
4432 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
4433 (add_options_for_libatomic): Use atomic_link_flags.
4435 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4438 * include/experimental/io_context (io_context): Define
4439 dummy_pollfd type so that most member functions still compile
4440 without <poll.h> and struct pollfd.
4442 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4444 * include/experimental/io_context (io_context::async_wait): Add
4446 * include/experimental/socket (basic_socket::async_connect):
4447 Cast wait_type constant to int.
4448 (basic_datagram_socket::async_receive): Likewise.
4449 (basic_datagram_socket::async_receive_from): Likewise.
4450 (basic_datagram_socket::async_send): Likewise.
4451 (basic_datagram_socket::async_send_to): Likewise.
4452 (basic_stream_socket::async_receive): Likewise.
4453 (basic_stream_socket::async_send): Likewise. Use io_context
4454 parameter directly, instead of via an executor.
4455 (basic_socket_acceptor::async_accept): Likewise.
4457 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4459 * include/experimental/socket (socket_base::shutdown_type):
4460 (socket_base::wait_type, socket_base::message_flags):
4461 Remove enumerators. Initialize constants directly with desired
4463 (socket_base::message_flags): Make all operators constexpr and
4465 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
4467 * testsuite/experimental/net/socket/socket_base.cc: New test.
4469 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
4471 * config/os/aix/atomicity.h: Delete.
4473 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4475 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
4476 Handle system_clock as well as steady_clock.
4477 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
4478 * testsuite/30_threads/semaphore/try_acquire_until.cc:
4481 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4483 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
4484 options for libatomic.
4486 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4488 * config/os/gnu-linux/os_defines.h: Fix type in comment.
4490 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4493 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
4494 is not an array type.
4495 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
4496 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
4498 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
4500 * include/bits/atomic_wait.h: Always notify waiters in the
4501 case of 'bare' address notification.
4503 2021-04-22 Jakub Jelinek <jakub@redhat.com>
4506 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4508 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4511 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4514 * include/bits/semaphore_base.h: Remove #error.
4515 * include/std/semaphore: Do not define anything unless one of
4516 the implementations is available.
4518 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
4520 * include/bits/semaphore_base.h: Always reload __old in
4521 __atomic_semaphore::_S_do_try_acquire().
4522 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4525 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
4526 Jonathan Wakely <jwakely@redhat.com>
4529 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
4530 * python/Makefile.in: Regenerate.
4532 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
4534 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
4535 member to __platform_wait.
4537 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
4539 * include/std/latch: Replace tab characters in license text.
4540 * include/std/semaphore: Likewise.
4542 2021-04-21 Jakub Jelinek <jakub@redhat.com>
4545 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
4546 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
4547 * configure: Regenerated.
4548 * config.h.in: Regenerated.
4550 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
4552 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
4553 test for targets not using futexes for semaphores.
4554 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
4555 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4556 Disable for all targets.
4558 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
4560 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
4561 * include/Makefile.in: Regenerate.
4562 * include/bits/this_thread_sleep.h: New file.
4563 * include/bits/atomic_base.h: Adjust all calls
4564 to __atomic_wait/__atomic_notify for new call signatures.
4565 * include/bits/atomic_timed_wait.h: Extensive rewrite.
4566 * include/bits/atomic_wait.h: Likewise.
4567 * include/bits/semaphore_base.h: Adjust all calls
4568 to __atomic_wait/__atomic_notify for new call signatures.
4569 * include/std/atomic: Likewise.
4570 * include/std/barrier: Likewise.
4571 * include/std/latch: Likewise.
4572 * include/std/semaphore: Likewise.
4573 * include/std/thread (this_thread::sleep_for)
4574 (this_thread::sleep_until): Move to new header.
4575 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
4577 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
4578 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
4579 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
4580 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
4581 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
4582 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
4584 2021-04-20 Patrick Palka <ppalka@redhat.com>
4587 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
4589 (move_iterator): Derive from the above in C++20 in order to
4590 conditionally define iterator_category as per P2259.
4591 (move_iterator::__base_cat): No longer used, so remove.
4592 (move_iterator::iterator_category): Remove in C++20.
4593 (__detail::__common_iter_use_postfix_proxy): Define.
4594 (common_iterator::_Proxy): Rename to ...
4595 (common_iterator:__arrow_proxy): ... this.
4596 (common_iterator::__postfix_proxy): Define as per P2259.
4597 (common_iterator::operator->): Adjust.
4598 (common_iterator::operator++): Adjust as per P2259.
4599 (iterator_traits<common_iterator>::_S_iter_cat): Define.
4600 (iterator_traits<common_iterator>::iterator_category): Change as
4602 (__detail::__counted_iter_value_type): Define.
4603 (__detail::__counted_iter_concept): Define.
4604 (__detail::__counted_iter_cat): Define.
4605 (counted_iterator): Derive from the above three classes in order
4606 to conditionally define value_type, iterator_concept and
4607 iterator category respectively as per P2259.
4608 (counted_iterator::operator->): Define as per P2259.
4609 (incrementable_traits<counted_iterator>): Remove as per P2259.
4610 (iterator_traits<counted_iterator>): Adjust as per P2259.
4611 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
4612 (iota_view::_Iterator): Derive from the above in order to
4613 conditionally define iterator_category as per P2259.
4614 (iota_view::_S_iter_cat): Rename to ...
4615 (iota_view::_S_iter_concept): ... this.
4616 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
4617 (iota_view::iterator_category): Remove.
4618 (__detail::__filter_view_iter_cat): Define.
4619 (filter_view::_Iterator): Derive from the above in order to
4620 conditionally define iterator_category as per P2259.
4621 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
4622 (filter_view::_Iterator::iterator_category): Remove.
4623 (transform_view::_Base): Define.
4624 (transform_view::__iter_cat): Define.
4625 (transform_view::_Iterator): Derive from the above in order to
4626 conditionally define iterator_category as per P2259.
4627 (transform_view::_Iterator::_Base): Just alias
4628 transform_view::_Base.
4629 (transform_view::_Iterator::_S_iter_cat): Move to struct
4630 transform_view::__iter_cat.
4631 (transform_view::_Iterator::iterator_category): Remove.
4632 (transform_view::_Sentinel::_Base): Just alias
4633 transform_view::_Base.
4634 (join_view::_Base): Define.
4635 (join_view::_Outer_iter): Define.
4636 (join_view::_Inner_iter): Define.
4637 (join_view::_S_ref_is_glvalue): Define.
4638 (join_view::__iter_cat): Define.
4639 (join_view::_Iterator): Derive from it in order to conditionally
4640 define iterator_category as per P2259.
4641 (join_view::_Iterator::_Base): Just alias join_view::_Base.
4642 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
4643 join_view::_S_ref_is_glvalue.
4644 (join_view::_Iterator::_S_iter_cat): Move to struct
4645 transform_view::__iter_cat.
4646 (join_view::_Iterator::_Outer_iter): Just alias
4647 join_view::_Outer_iter.
4648 (join_view::_Iterator::_Inner_iter): Just alias
4649 join_view::_Inner_iter.
4650 (join_view::_Iterator::iterator_category): Remove.
4651 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
4652 (__detail::__split_view_outer_iter_cat): Define.
4653 (__detail::__split_view_inner_iter_cat): Define.
4654 (split_view::_Base): Define.
4655 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
4656 in order to conditionally define iterator_category as per P2259.
4657 (split_view::_Outer_iter::iterator_category): Remove.
4658 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
4659 in order to conditionally define iterator_category as per P2259.
4660 (split_view::_Inner_iter::_S_iter_cat): Move to
4661 __split_view_inner_iter_cat.
4662 (split_view::_Inner_iter::iterator_category): Remove.
4663 (elements_view::_Base): Define.
4664 (elements_view::__iter_cat): Define.
4665 (elements_view::_Iterator): Derive from the above in order to
4666 conditionall define iterator_category as per P2259.
4667 (elements_view::_Iterator::_Base): Just alias
4668 elements_view::_Base.
4669 (elements_view::_Iterator::_S_iter_concept)
4670 (elements_view::_Iterator::iterator_concept): Define as per
4672 (elements_view::_Iterator::iterator_category): Remove.
4673 (elements_view::_Sentinel::_Base): Just alias
4674 elements_view::_Base.
4675 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
4676 Adjust constraints on iterator_traits<counted_iterator>.
4677 * testsuite/std/ranges/p2259.cc: New test.
4679 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
4682 * include/std/charconv (__cpp_lib_to_chars): Define
4684 * include/std/version (__cpp_lib_to_chars): Likewise..
4685 * testsuite/20_util/from_chars/4.cc: Only check feature test
4686 macro, not _GLIBCXX_HAVE_USELOCALE.
4687 * testsuite/20_util/from_chars/5.cc: Likewise.
4688 * testsuite/20_util/from_chars/6.cc: Likewise.
4689 * testsuite/20_util/to_chars/long_double.cc: Likewise.
4691 2021-04-20 Jakub Jelinek <jakub@redhat.com>
4693 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
4694 versions with _IEEE128_ substring are found, set ieee_version_found
4695 to true. Ignore missing symbols with _IEEE128_ in version name if
4696 !ieee_version_found. Use i->first as version_name instead of
4697 i->second.version_name if the latter is empty.
4698 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4700 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
4702 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
4705 2021-04-17 Jakub Jelinek <jakub@redhat.com>
4707 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
4708 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
4710 2021-04-17 Jakub Jelinek <jakub@redhat.com>
4712 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
4713 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
4714 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
4715 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
4716 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
4717 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4719 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
4721 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
4722 add libatomic options for 32-bit sparc*-*-linux-gnu.
4724 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
4727 * libsupc++/Makefile.am: Add atomicity.cc here.
4728 * src/c++98/Makefile.am: Remove it from here.
4729 * libsupc++/Makefile.in: Regenerate.
4730 * src/c++98/Makefile.in: Regenerate.
4731 * testsuite/18_support/exception_ptr/96657.cc: New test.
4733 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
4736 * include/std/bit: Only include <ext/numeric_traits.h> for
4737 hosted build, use <limits> otherwise.
4739 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
4741 * doc/xml/manual/backwards_compatibility.xml: Remove porting
4742 notes for libg++ and libstdc++-v2, and bibliography.
4743 * doc/html/*: Regenerated.
4745 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
4748 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
4749 Remove helper concept.
4750 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
4751 deduction guides, as per LWG 3404.
4752 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
4753 template argument deduction fails.
4755 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
4757 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
4758 Adjust expected error for C++20 mode.
4759 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
4762 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
4765 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
4766 standard headers and XFAIL for effective-target c++20.
4768 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
4771 * include/debug/helper_functions.h (__can_advance(_InputIterator,
4772 const std::pair<_Diff, _Distance_precision>&, int)): New.
4773 (__can_advance(const _Safe_iterator<>&,
4774 const std::pair<_Diff, _Distance_precision>&, int)): New.
4775 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
4777 (__glibcxx_check_can_increment_range): Adapt to use latter.
4778 (__glibcxx_check_can_decrement_range): Likewise.
4779 * include/debug/safe_iterator.h
4780 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4782 (__can_advance(const _Safe_iterator<>&,
4783 const std::pair<_Diff, _Distance_precision>&, int)): New.
4784 * include/debug/safe_iterator.tcc
4785 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4787 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
4788 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
4790 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
4791 (__copy_move_backward_a): Likewise.
4792 (__equal_aux): Likewise.
4793 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
4794 const std::pair<_Diff, _Distance_precision>&, int)): New.
4795 (__can_advance(const std::move_iterator<>&,
4796 const std::pair<_Diff, _Distance_precision>&, int)): New.
4797 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
4799 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
4802 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
4803 to be a valid constexpr function in C++11.
4804 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
4806 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
4808 * include/bits/fs_fwd.h: Fix doxygen group command.
4809 * include/bits/streambuf_iterator.h: Likewise.
4810 * include/bits/uses_allocator_args.h: Likewise.
4811 * include/std/memory: Likewise.
4812 * include/tr1/complex: Likewise.
4814 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4816 * include/bits/basic_string.h: Tweak doxygen comment.
4818 2021-04-08 Patrick Palka <ppalka@redhat.com>
4820 * include/std/ranges (__detail::find): Define.
4821 (split_view::_OuterIter::operator++): Apply proposed resolution
4823 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
4825 2021-04-08 Patrick Palka <ppalka@redhat.com>
4827 * include/std/ranges (__detail::find_if): Simplify.
4828 (__detail::find_if_not): Likewise.
4829 (__detail::min): Remove.
4830 (__detail::mismatch): Simplify.
4831 (take_view::size): Use std::min instead of __detail::min.
4833 2021-04-08 Patrick Palka <ppalka@redhat.com>
4835 * include/std/ranges (__detail::__returnable_element): New
4837 (elements_view): Use this concept in its constraints. Add
4838 missing private access specifier.
4839 (elements_view::_S_get_element): Define as per LWG 3502.
4840 (elements_view::operator*, elements_view::operator[]): Use
4842 (elements_view::operator++): Remove unnecessary constraint
4844 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
4846 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4848 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
4849 out-of-memory error in log file.
4850 * doc/Makefile.in: Regenerate.
4852 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4854 * configure: Regenerate.
4856 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4858 * include/bits/random.h: Fix doxygen group commands.
4859 * include/bits/regex_constants.h: Likewise.
4860 * include/tr1/random.h: Likewise.
4862 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4864 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
4865 New function to determine noexcept-specifier for move
4867 (_Hashtable): Use _S_nothrow_move() on move constructors.
4868 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
4869 Correct static assertion message.
4870 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
4872 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
4874 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
4877 2021-04-08 Patrick Palka <ppalka@redhat.com>
4880 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
4881 on targets without a large long double. XFAIL the execution on
4882 targets with a non-conforming printf.
4884 2021-04-08 Patrick Palka <ppalka@redhat.com>
4887 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
4888 (__adaptor::__adaptor_invocable): New concept.
4889 (__adaptor::__adaptor_partial_app_viable): New concept.
4890 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
4891 non-template base class.
4892 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
4894 (__adaptor::_Partial): New class template that represents
4895 partial application of a range adaptor non-closure.
4896 (__adaptor::__pipe_invocable): New concept.
4897 (__adaptor::_Pipe): New class template.
4898 (__detail::__can_ref_view): New concept.
4899 (__detail::__can_subrange): New concept.
4900 (all): Replace the lambda here with ...
4901 (_All): ... this functor. Add appropriate constraints.
4902 (__detail::__can_filter_view): New concept.
4903 (filter, _Filter): As in all/_All.
4904 (__detail::__can_transform): New concept.
4905 (transform, _Transform): As in all/_All.
4906 (__detail::__can_take_view): New concept.
4907 (take, _Take): As in all/_All.
4908 (__detail::__can_take_while_view): New concept.
4909 (take_while, _TakeWhile): As in all/_All.
4910 (__detail::__can_drop_view): New concept.
4911 (drop, _Drop): As in all/_All.
4912 (__detail::__can_drop_while_view): New concept.
4913 (drop_while, _DropWhile): As in all/_All.
4914 (__detail::__can_join_view): New concept.
4915 (join, _Join): As in all/_All.
4916 (__detail::__can_split_view): New concept.
4917 (split, _Split): As in all/_All. Rename template parameter
4919 (__detail::__already_common): New concept.
4920 (__detail::__can_common_view): New concept.
4921 (common, _Common): As in all/_All.
4922 (__detail::__can_reverse_view): New concept.
4923 (reverse, _Reverse): As in all/_All.
4924 (__detail::__can_elements_view): New concept.
4925 (elements, _Elements): As in all/_All.
4926 (keys, values): Adjust.
4927 * testsuite/std/ranges/adaptors/99433.cc: New test.
4928 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
4929 adding empty range adaptor closure objects to a pipeline doesn't
4930 increase the size of the pipeline.
4932 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
4933 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
4934 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
4935 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
4936 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
4937 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
4938 * testsuite/std/ranges/adaptors/p2281.cc: New test.
4939 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
4940 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
4943 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
4944 expected error message.
4945 (test02): Likewise. Extend test.
4946 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
4947 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
4948 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
4951 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4953 * include/std/string_view: Adjust Doxygen @file comment.
4955 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4957 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
4958 specialization to not match incomplete enum types. Use a
4959 requires-expression instead of instantiating is_convertible.
4960 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
4961 * testsuite/20_util/is_scoped_enum/value.cc: Check with
4962 incomplete types and opaque-enum-declarations.
4964 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
4967 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
4968 non-const member on _M_pathname, to avoid copy-on-write.
4969 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4970 Check construction from strings that might be shared.
4972 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4974 * include/bits/move.h (forward, move, move_if_noexcept)
4975 (addressof): Add _GLIBCXX_NODISCARD.
4976 * include/bits/ranges_cmp.h (identity::operator()): Add
4977 nodiscard attribute.
4978 * include/c_global/cstddef (to_integer): Likewise.
4979 * include/std/bit (bit_cast): Likewise.
4980 * include/std/utility (as_const, to_underlying): Likewise.
4982 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4984 * include/bits/move.h (forward): Change static_assert message
4985 to be unambiguous about what must be true.
4986 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
4987 * testsuite/20_util/forward/f_neg.cc: Likewise.
4989 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4991 * include/bits/alloc_traits.h: Use markdown for code font.
4992 * include/bits/basic_string.h: Fix @param names.
4993 * include/bits/max_size_type.h: Remove period after @file.
4994 * include/bits/regex.h: Fix duplicate @retval names, and rename.
4995 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
4996 group open to match existing group close.
4997 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
5000 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5002 * include/bits/atomic_base.h: Fix doxygen group close.
5003 * include/bits/basic_ios.h: Likewise.
5004 * include/bits/forward_list.h: Likewise.
5005 * include/bits/fs_dir.h: Likewise.
5006 * include/bits/fs_ops.h: Likewise.
5007 * include/bits/fs_path.h: Likewise.
5008 * include/bits/functional_hash.h: Likewise.
5009 * include/bits/gslice.h: Likewise.
5010 * include/bits/gslice_array.h: Likewise.
5011 * include/bits/hashtable_policy.h: Likewise.
5012 * include/bits/indirect_array.h: Likewise.
5013 * include/bits/locale_classes.h: Likewise.
5014 * include/bits/locale_facets.h: Likewise.
5015 * include/bits/locale_facets_nonio.h: Likewise.
5016 * include/bits/mask_array.h: Likewise.
5017 * include/bits/refwrap.h: Likewise.
5018 * include/bits/regex.h: Likewise.
5019 * include/bits/regex_automaton.h: Likewise.
5020 * include/bits/regex_compiler.h: Likewise.
5021 * include/bits/regex_constants.h: Likewise.
5022 * include/bits/regex_error.h: Likewise.
5023 * include/bits/regex_executor.h: Likewise.
5024 * include/bits/regex_scanner.h: Likewise.
5025 * include/bits/shared_ptr.h: Likewise.
5026 * include/bits/shared_ptr_atomic.h: Likewise.
5027 * include/bits/shared_ptr_base.h: Likewise.
5028 * include/bits/slice_array.h: Likewise.
5029 * include/bits/specfun.h: Likewise.
5030 * include/bits/std_function.h: Likewise.
5031 * include/bits/std_mutex.h: Likewise.
5032 * include/bits/stl_deque.h: Likewise.
5033 * include/bits/stl_iterator.h: Likewise.
5034 * include/bits/stl_iterator_base_types.h: Likewise.
5035 * include/bits/stl_map.h: Likewise.
5036 * include/bits/stl_multimap.h: Likewise.
5037 * include/bits/stl_multiset.h: Likewise.
5038 * include/bits/stl_numeric.h: Likewise.
5039 * include/bits/stl_pair.h: Likewise.
5040 * include/bits/stl_set.h: Likewise.
5041 * include/bits/stl_uninitialized.h: Likewise.
5042 * include/bits/stream_iterator.h: Likewise.
5043 * include/bits/streambuf_iterator.h: Likewise.
5044 * include/bits/unique_ptr.h: Likewise.
5045 * include/bits/unordered_map.h: Likewise.
5046 * include/bits/unordered_set.h: Likewise.
5047 * include/decimal/decimal: Likewise.
5048 * include/experimental/any: Likewise.
5049 * include/experimental/array: Likewise.
5050 * include/experimental/bits/fs_dir.h: Likewise.
5051 * include/experimental/bits/fs_fwd.h: Likewise.
5052 * include/experimental/bits/fs_ops.h: Likewise.
5053 * include/experimental/bits/fs_path.h: Likewise.
5054 * include/experimental/buffer: Likewise.
5055 * include/experimental/internet: Likewise.
5056 * include/experimental/optional: Likewise.
5057 * include/experimental/propagate_const: Likewise.
5058 * include/experimental/socket: Likewise.
5059 * include/ext/pb_ds/assoc_container.hpp: Likewise.
5060 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
5062 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
5063 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
5064 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
5065 * include/ext/pb_ds/exception.hpp: Likewise.
5066 * include/ext/pb_ds/priority_queue.hpp: Likewise.
5067 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
5068 * include/ext/random: Likewise.
5069 * include/std/any: Likewise.
5070 * include/std/atomic: Likewise.
5071 * include/std/bitset: Likewise.
5072 * include/std/chrono: Likewise.
5073 * include/std/complex: Likewise.
5074 * include/std/condition_variable: Likewise.
5075 * include/std/fstream: Likewise.
5076 * include/std/future: Likewise.
5077 * include/std/iostream: Likewise.
5078 * include/std/istream: Likewise.
5079 * include/std/mutex: Likewise.
5080 * include/std/numeric: Likewise.
5081 * include/std/ostream: Likewise.
5082 * include/std/ratio: Likewise.
5083 * include/std/shared_mutex: Likewise.
5084 * include/std/stdexcept: Likewise.
5085 * include/std/streambuf: Likewise.
5086 * include/std/system_error: Likewise.
5087 * include/std/thread: Likewise.
5088 * include/std/valarray: Likewise.
5089 * include/std/variant: Likewise.
5090 * include/tr1/cmath: Likewise.
5091 * include/tr1/regex: Likewise.
5092 * include/tr2/dynamic_bitset: Likewise.
5093 * libsupc++/atomic_lockfree_defines.h: Likewise.
5094 * libsupc++/exception: Likewise.
5095 * libsupc++/exception.h: Likewise.
5096 * libsupc++/exception_ptr.h: Likewise.
5097 * libsupc++/nested_exception.h: Likewise.
5099 2021-03-31 Alexandre Oliva <oliva@adacore.com>
5101 * testsuite/30_threads/future/members/poll.cc: Use faster
5102 after-ready call in the calibration loop.
5104 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
5106 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
5107 * doc/html/manual/status.html: Regenerate.
5109 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
5111 * include/debug/forward_list
5112 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
5113 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
5114 call to safe container allocator aware move constructor.
5115 * include/debug/vector (vector(vector&&, const allocator_type&)):
5116 Fix noexcept qualification.
5117 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
5118 Add allocator-extended move constructor noexceot qualification check.
5119 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
5121 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
5123 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
5125 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
5126 New helper functions and callback.
5127 (random_device::_M_init): Add 'prng' and 'all' enumerators.
5128 Replace switch with fallthrough with a series of 'if' statements.
5129 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
5131 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
5133 (random_device::_M_getval): Check for callback unconditionally
5134 and always pass _M_file pointer.
5135 * testsuite/26_numerics/random/random_device/85494.cc: Remove
5136 effective-target check. Use new random_device_available helper.
5137 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
5138 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
5139 Remove effective-target check.
5140 * testsuite/26_numerics/random/random_device/cons/default.cc:
5142 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
5143 new random_device_available helper. Test "prng" token.
5144 * testsuite/util/testsuite_random.h (random_device_available):
5145 New helper function.
5147 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
5149 * include/debug/string
5150 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
5151 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
5152 (basic_string<>::erase): Adapt to take __const_iterator.
5153 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
5154 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
5155 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
5156 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
5157 (__gnu_debug::u16string, __gnu_debug::u32string): New.
5158 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
5159 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
5160 * testsuite/util/exception/safety.h
5161 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
5162 (insert_base<__gnu_debug::basic_string<>>): Likewise.
5163 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
5164 New partial specialization.
5165 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
5166 * testsuite/21_strings/basic_string/requirements/citerators.cc:
5167 Add test on __gnu_debug::string.
5168 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
5169 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
5170 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
5172 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
5174 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
5176 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
5178 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
5180 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
5182 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
5184 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
5186 2021-03-25 Jakub Jelinek <jakub@redhat.com>
5189 * testsuite/18_support/source_location/consteval.cc (main): Adjust
5190 expected column numbers.
5191 * testsuite/18_support/source_location/1.cc (main): Likewise.
5193 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
5195 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
5197 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
5199 * testsuite/util/exception/safety.h (setup_base::generate):
5200 Support seeding random engine.
5201 (erase_point, erase_range): Adjust range of random numbers to
5202 ensure dereferenceable iterators are used where required.
5203 (generation_prohibited::run): Do not try to erase from empty
5205 * testsuite/util/testsuite_containergen.h (test_containers):
5206 Support seeding random engine.
5208 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
5210 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
5211 line with a check that uses the const being/end overloads.
5213 2021-03-23 Moritz Sichert <sichert@in.tum.de>
5215 * include/std/ranges (reverse_view::begin, reverse_view::end):
5216 Qualify make_reverse_iterator calls to avoid ADL.
5217 * testsuite/std/ranges/adaptors/reverse.cc: Test that
5218 views::reverse works when make_reverse_iterator is defined
5219 in an associated namespace.
5221 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
5223 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
5224 Do not define when compiling with Clang.
5226 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
5228 * include/std/string_view (basic_string_view(Range&&)): Define new
5229 constructor and deduction guide.
5230 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
5231 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
5233 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
5235 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
5236 Add missing 'noexcept' as per LWG 2280.
5237 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
5238 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
5239 * testsuite/24_iterators/range_access/range_access.cc: Check for
5240 expected noexcept specifiers. Check result types of generic
5241 std::begin and std::end overloads.
5242 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
5243 Check for expected noexcept specifiers.
5244 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
5247 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
5249 * include/std/type_traits (is_scoped_enum): Define.
5250 * include/std/version (__cpp_lib_is_scoped_enum): Define.
5251 * testsuite/20_util/is_scoped_enum/value.cc: New test.
5252 * testsuite/20_util/is_scoped_enum/version.cc: New test.
5254 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
5257 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
5258 std::once_flag symbols.
5259 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
5260 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
5261 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5263 * config/abi/pre/gnu.ver: Likewise.
5264 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5265 (struct __once_flag_compat): Remove.
5266 (_ZNSt9once_flag11_M_activateEv): Remove.
5267 (_ZNSt9once_flag9_M_finishEb): Remove.
5269 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
5272 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
5273 Revert to pthread_once_t implementation.
5274 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
5275 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5276 (struct __once_flag_compat): New type matching the reverted
5277 implementation of once_flag using futexes.
5278 (once_flag::_M_activate): Remove, replace with ...
5279 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
5280 (once_flag::_M_finish): Remove, replace with ...
5281 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
5282 * testsuite/30_threads/call_once/66146.cc: Removed.
5284 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
5286 * testsuite/17_intro/names.cc: Exclude j from the list
5287 of test symbols for Darwin.
5289 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
5291 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
5292 to_chars and from_chars for long double.
5294 2021-03-15 Patrick Palka <ppalka@redhat.com>
5296 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
5298 (__max_size_type::operator++): Define.
5299 (__max_size_type::operator--): Likewise.
5300 (__max_size_type::operator<=>): Conditionally define (in place
5301 of the other comparison operators).
5302 (__max_diff_type::operator _Tp): Fix formatting.
5303 (__max_diff_type::operator++): Define.
5304 (__max_diff_type::operator--): Likewise.
5305 (__max_diff_type::operator<=>): Conditionally define (in place
5306 of the other comparison operators).
5307 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
5308 these operator overloads.
5310 2021-03-15 Caroline Tice <cmtice@google.com>
5313 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
5314 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
5315 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
5317 * src/Makefile.in: Regenerate.
5319 2021-03-11 Patrick Palka <ppalka@redhat.com>
5321 * src/c++17/floating_to_chars.cc: Simplify the file as if
5322 __SIZEOF_INT128__ is always defined.
5323 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
5324 a base-10 to_chars overload for the uint128_t class type.
5325 * src/c++17/uint128_t.h: New file.
5326 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
5327 execution FAIL on targets that have a large long double type
5330 2021-03-11 Patrick Palka <ppalka@redhat.com>
5332 * src/c++17/ryu/LOCAL_PATCHES: Update.
5333 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
5334 * src/c++17/ryu/generic_128.h: Likewise.
5335 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
5336 Use uint128_t instead of __uint128_t.
5337 (generic_binary_to_decimal): Likewise.
5339 2021-03-11 Patrick Palka <ppalka@redhat.com>
5341 * src/c++17/ryu/LOCAL_PATCHES: New file.
5343 2021-03-11 Patrick Palka <ppalka@redhat.com>
5345 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
5346 defined alias of unsigned __int128.
5347 (floating_type_traits_binary128::mantissa_t): Use uint128_t
5348 instead of unsigned __int128.
5349 (floating_type_traits<long double>::mantissa_t)
5350 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
5351 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
5352 and uint32_t explicit. Simplify the extraction of mantissa,
5353 exponent and sign bit.
5355 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5357 * include/std/barrier (barrier::arrival_token): New move-only
5358 class that encapsulates the underlying token value.
5360 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5362 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
5363 instead of unqualified() method.
5365 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5368 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
5369 Use acq_rel memory ordering.
5371 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5374 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
5375 helper function to check for permission denied errors.
5376 * src/filesystem/dir.cc (recursive_directory_iterator):
5378 * src/filesystem/dir-common.h (is_permission_denied_error): New
5381 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5384 * include/bits/random.h (normal_distribution): Use
5385 default-initializer for _M_saved and _M_saved_available.
5387 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
5389 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
5390 link with libatomic.
5391 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5392 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5393 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5394 * testsuite/30_threads/barrier/arrive.cc: Likewise.
5395 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5396 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5397 * testsuite/30_threads/barrier/completion.cc: Likewise.
5398 * testsuite/30_threads/latch/3.cc: Likewise.
5399 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
5400 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
5401 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5403 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5406 * include/bits/align.h: Include debug/assertions.h.
5407 * include/bits/codecvt.h: Include bits/c++config.h.
5408 * include/bits/enable_special_members.h: Likewise.
5409 * include/bits/erase_if.h: Likewise.
5410 * include/bits/functional_hash.h: Include <type_traits>.
5411 * include/bits/invoke.h: Include bits/move.h.
5412 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
5413 * include/bits/parse_numbers.h: Include <type_traits>.
5414 * include/bits/predefined_ops.h: Include bits/c++config.h.
5415 * include/bits/range_access.h: Include bits/stl_iterator.h.
5416 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
5417 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
5418 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
5419 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
5420 * include/bits/unique_lock.h: Include bits/std_mutex.h.
5421 * include/debug/assertions.h: Include bits/c++config.h.
5423 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5425 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
5426 (ranges::equal_to, ranges::not_equal_to): Do not constrain
5427 with __eq_builtin_ptr_cmp.
5428 (ranges::less, ranges::greater, ranges::less_equal)
5429 (ranges::greater_equal): Do not constrain with
5430 __less_builtin_ptr_cmp.
5431 * libsupc++/compare (compare_three_way): Do not constrain with
5432 __3way_builtin_ptr_cmp.
5433 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
5434 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
5435 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
5437 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5439 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
5440 C++20 calendar types.
5442 2021-03-06 Jakub Jelinek <jakub@redhat.com>
5445 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
5446 two _Nd which the compiler can pattern match the rotates.
5448 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
5451 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
5452 Make storage larger than required. Verify no write to the last
5454 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
5457 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5459 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5460 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5462 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5463 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5466 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5468 * include/experimental/bits/simd.h: Replace reserved _X, _B by
5470 * include/experimental/bits/simd_builtin.h: Likewise.
5471 * include/experimental/bits/simd_x86.h: Likewise.
5473 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
5476 * include/std/chrono (year_month_day::_M_days_since_epoch()):
5477 Convert chrono::month and chrono::day to unsigned before
5478 converting to uint32_t.
5480 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5482 * include/std/chrono (year_month_day::_S_from_days): Perform
5483 all calculations with type uint32_t.
5485 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5487 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
5488 * doc/html/manual/abi.html: Regenerate.
5490 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5493 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
5494 FILE instead of FILE.
5496 2021-02-25 Andreas Schwab <schwab@suse.de>
5498 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5499 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
5500 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5501 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5503 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5506 * include/std/chrono (year_month_day::_S_from_days): Cast long
5509 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5511 * include/std/utility (to_underlying): Define.
5512 * include/std/version (__cpp_lib_to_underlying): Define.
5513 * testsuite/20_util/to_underlying/1.cc: New test.
5514 * testsuite/20_util/to_underlying/version.cc: New test.
5516 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5519 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
5520 before value to be printed.
5522 2021-02-24 Patrick Palka <ppalka@redhat.com>
5524 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
5525 Relax the condition that guards the printf code path to accept
5526 F128_type as well as long double.
5528 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5530 * include/std/chrono (year_month_day_last:day): New
5533 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5535 * include/std/chrono (year::is_leap): New implementation.
5536 * testsuite/std/time/year/2.cc: New test.
5538 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5540 * include/std/chrono (year_month_day::_M_days_since_epoch):
5542 * testsuite/std/time/year_month_day/4.cc: New test.
5544 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5546 * include/std/chrono (year_month_day::_S_from_days): New
5548 * testsuite/std/time/year_month_day/3.cc: New test.
5550 2021-02-24 Patrick Palka <ppalka@redhat.com>
5553 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
5554 (test01): Simplify verifying the nearby values by using a
5555 2-iteration loop and a dedicated output buffer to check that the
5556 nearby values are different. Factor out the printf-based
5557 verification into a local function, and check that the leading
5558 hex digits agree before comparing to the output of printf. Also
5559 verify the output by round-tripping it through from_chars.
5561 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5564 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
5565 symbols for long double arguments mangled as 'g'.
5566 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
5567 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
5568 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
5569 Use -mabi=ibmlongdouble for floating_to_chars.cc.
5570 * src/c++17/Makefile.in: Regenerate.
5571 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
5572 New type defining type traits of IEEE binary128 format.
5573 (floating_type_traits<__float128>): Define specialization.
5574 (floating_type_traits<long double>): Define in terms of
5575 floating_type_traits_binary128 when appropriate.
5576 (floating_to_shortest_scientific): Handle __float128.
5577 (sprintf_ld): New function template for printing a long double
5578 or __ieee128 value using sprintf.
5579 (__floating_to_chars_shortest, __floating_to_chars_precision):
5581 (to_chars): Define overloads for __float128.
5583 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5585 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
5587 2021-02-23 Martin Sebor <msebor@redhat.com>
5590 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
5591 first argument is null.
5593 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5596 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
5599 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5602 * include/bits/char_traits.h (char_traits<char>::compare): For
5603 constexpr evaluation don't call
5604 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
5607 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5610 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
5612 2021-02-23 Patrick Palka <ppalka@redhat.com>
5615 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
5616 the high- and low-order parts from an IBM long double value
5617 in an endian-agnostic way.
5619 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
5621 * include/bits/atomic_wait.h (__thread_relax()): Call
5622 __thread_yield() not __gthread_yield().
5624 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
5626 * include/bits/atomic_wait.h (__thread_yield()): Check
5627 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
5628 (__thread_relax()): Use __thread_yield() instead of repeating
5629 the preprocessor checks for __gthread_yield.
5631 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
5633 * include/std/mutex (once_flag::_M_activate()): Add explicit
5634 return statement for passive case.
5635 (once_flag::_M_finish(bool)): Use reserved name for parameter.
5637 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
5640 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
5642 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5645 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
5647 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5649 * doc/xml/manual/status_cxx2014.xml: Document implementation
5650 specific properties of std::experimental::filesystem::rename.
5651 * doc/xml/manual/status_cxx2017.xml: Document implementation
5652 specific properties of std::filesystem::rename.
5653 * doc/html/*: Regenerate.
5654 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
5655 for directories on Windows.
5656 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
5657 MoveFileExW on Windows.
5658 * testsuite/27_io/filesystem/operations/rename.cc: New test.
5659 * testsuite/experimental/filesystem/operations/rename.cc: New test.
5661 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5663 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
5664 random number to the path.
5666 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5668 * include/experimental/internet (address_v6::to_string): Include
5670 * testsuite/experimental/net/internet/address/v6/members.cc:
5671 Test to_string() results.
5673 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5675 * include/experimental/internet (address_v6::any): Avoid using
5676 memcpy in constexpr function.
5677 (address_v6::loopback): Likewise.
5678 (make_address_v6): Fix missing return statements on error paths.
5679 * include/experimental/io_context: Avoid -Wdangling-else
5681 * testsuite/experimental/net/internet/address/v4/members.cc:
5682 Remove unused variables.
5683 * testsuite/experimental/net/internet/address/v6/members.cc:
5686 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5688 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
5689 Add unused attribute to parameter.
5690 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
5693 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5695 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
5696 if -fno-rtti is used.
5697 * testsuite/30_threads/async/forced_unwind.cc: Expect test
5698 to abort if -fno-rtti is used.
5700 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5702 * testsuite/util/testsuite_allocator.h (memory_resource):
5703 Remove requirement for RTTI and exceptions to be enabled.
5705 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5707 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
5708 static_cast when RTTI is disabled.
5709 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
5711 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
5713 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
5715 * testsuite/27_io/basic_stringstream/str/char/2.cc:
5717 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
5720 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5722 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
5723 as unused and only use dynamic_cast when RTTI is enabled.
5725 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5728 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
5729 Change int parameter to error_code, to match std::ios_failure.
5730 (__throw_ios_failure(const char*, int)): Construct error_code
5733 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
5735 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
5737 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
5738 macro instead of _GLIBCXX_EH_PTR_COMPAT.
5739 (operator==): Likewise.
5741 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
5744 * doc/xml/manual/status_cxx2011.xml: Document when support
5746 * doc/xml/manual/status_cxx2014.xml: Likewise.
5747 * doc/xml/manual/status_cxx2017.xml: Likewise.
5748 * doc/html/manual/status.html: Regenerate.
5750 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5753 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
5755 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5757 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
5758 (fs::remove): Use std::system_category() for error codes from
5760 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
5763 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5765 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
5766 in __MINGW32__ macro name.
5767 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
5768 * testsuite/27_io/filesystem/path/generation/proximate.cc:
5770 * testsuite/27_io/filesystem/path/generation/relative.cc:
5772 * testsuite/util/testsuite_fs.h: Likewise.
5774 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
5776 * include/bits/stl_tree.h
5777 (__has_is_transparent, __has_is_transparent_t): Move...
5778 * include/bits/stl_function.h: ...here.
5779 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
5780 (_Hashtable_base<>::_M_equals_tr): New.
5781 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
5782 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
5783 heterogeneous lookup.
5784 (_Hashtable<>::_M_find_before_node_tr): New.
5785 (_Hashtable<>::_M_find_node_tr): New.
5786 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
5787 unordered_map::contains<>, unordered_map::equal_range<>): New member function
5788 templates to perform heterogeneous lookup.
5789 (unordered_multimap::find<>, unordered_multimap::count<>,
5790 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
5791 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
5792 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
5793 (unordered_multiset::find<>, unordered_multiset::count<>,
5794 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
5795 * include/debug/unordered_map
5796 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
5797 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
5798 * include/debug/unordered_set
5799 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
5800 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
5801 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
5802 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
5803 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
5804 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
5806 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
5808 * include/bits/stl_deque.h
5809 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
5810 a null pointer test.
5812 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
5814 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
5815 test directory after making it writable again.
5816 * testsuite/experimental/filesystem/operations/remove_all.cc:
5819 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
5822 * include/std/coroutine (coroutine_handle<P>::from_address): Add
5825 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
5827 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
5828 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
5830 2021-02-09 Jakub Jelinek <jakub@redhat.com>
5833 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
5834 points to the characters moved by earlier _S_move, compute the source
5835 address using expression based on the __p pointer rather than __s
5838 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
5840 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
5841 Add comparison with same category and different values.
5842 * testsuite/19_diagnostics/error_code/operators/less.cc:
5843 Likewise. Fix comparison involving different categories.
5844 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
5846 * testsuite/19_diagnostics/error_condition/operators/less.cc:
5848 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
5851 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
5853 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
5854 calls with a single vaddv for aarch64.
5856 2021-02-03 Matthias Kretz <kretz@kde.org>
5858 * testsuite/Makefile.am: Warn about the workaround. Add
5859 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
5860 Improve initial user feedback from make check-simd.
5861 * testsuite/Makefile.in: Regenerated.
5863 2021-02-03 Matthias Kretz <kretz@kde.org>
5865 * include/experimental/bits/simd.h: Add __detail::_Minimum and
5866 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
5867 Add hmin and hmax overloads for simd and const_where_expression.
5868 * include/experimental/bits/simd_scalar.h
5869 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
5870 parameter const-ref to allow calling _S_reduce with an rvalue.
5871 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
5872 hmin and hmax. Since the compiler statically determined that all
5873 tests pass, repeat the test after a call to make_value_unknown.
5875 2021-02-03 Matthias Kretz <kretz@kde.org>
5877 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
5878 instruction pointer data member. Ensure that the `if (m_failed)`
5879 branch is always inlined into the calling code. The body of the
5880 conditional can still be a function call. Move the get_ip call
5881 into the verify ctor to simplify the ctor calls.
5882 (COMPARE): Don't mention the use of all_of for reduction of a
5883 simd_mask. It only distracts from the real issue.
5885 2021-02-03 Matthias Kretz <kretz@kde.org>
5887 * testsuite/experimental/simd/driver.sh: Abstract reading test
5888 options into read_src_option function. Read skip, only,
5889 expensive, and xfail via read_src_option. Add timeout and
5890 timeout-factor options and adjust timeout variable accordingly.
5891 * testsuite/experimental/simd/tests/loadstore.cc: Set
5894 2021-02-03 Matthias Kretz <kretz@kde.org>
5896 * testsuite/experimental/simd/driver.sh: When handling the pipe
5897 to log (and on verbose to stdout) count the lines. If it exceeds
5898 1000 log the issue and exit 125, which is then handled as a
5901 2021-02-03 Matthias Kretz <kretz@kde.org>
5903 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
5904 markup for long double on powerpc64*.
5906 2021-02-03 Matthias Kretz <kretz@kde.org>
5908 * include/experimental/bits/simd.h: Add __have_power10vec
5909 conditional on _ARCH_PWR10.
5910 * include/experimental/bits/simd_builtin.h: Forward declare
5911 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
5913 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
5914 _SuperImpl for optimizations and correctness.
5915 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
5916 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
5917 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
5918 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
5920 2021-02-03 Matthias Kretz <kretz@kde.org>
5922 * testsuite/experimental/simd/driver.sh: Remove executable on
5923 SIGINT. Process compiler and test executable output: In verbose
5924 mode print messages immediately, limited to 1000 lines and
5925 breaking long lines to below $COLUMNS (or 1024 if not set).
5926 Communicating the exit status of the compiler / test with the
5927 necessary pipe is done via a message through stdout/-in.
5929 2021-02-03 Matthias Kretz <kretz@kde.org>
5931 * testsuite/Makefile.am: Ensure .simd.summary is empty before
5932 collecting a new summary.
5933 * testsuite/Makefile.in: Regenerate.
5935 2021-02-03 Matthias Kretz <kretz@kde.org>
5937 * testsuite/experimental/simd/generate_makefile.sh: Use
5938 different variables internally than documented for user
5939 overrides. This makes internal append/prepend work as intended.
5941 2021-02-03 Matthias Kretz <kretz@kde.org>
5943 * testsuite/experimental/simd/driver.sh (verify_test): Print
5944 test output on run xfail. Do not repeat lines from the log that
5945 were already printed on stdout.
5946 (test_selector): Make the compiler flags pattern usable as a
5948 (toplevel): Trap on SIGINT and remove the log and sum files.
5949 Call timout with --foreground to quickly terminate on SIGINT.
5950 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
5951 targets via target patterns. Default DRIVEROPTS to -v for run
5952 targets. Remove log and sum files after completion of the run
5953 target (so that it's always recompiled).
5954 Place help text into text file for reasonable 'make help'
5957 2021-02-03 Matthias Kretz <kretz@kde.org>
5959 * include/experimental/bits/simd.h: Remove unnecessary static
5960 assertion. Allow sizeof(8) integer __intrinsic_type to enable
5961 the necessary mask type.
5963 2021-02-03 Matthias Kretz <kretz@kde.org>
5965 * include/experimental/bits/simd.h: Let __intrinsic_type<long
5966 double, N> be valid if sizeof(long double) == sizeof(double) and
5967 use a __vector double as member type.
5969 2021-02-03 Matthias Kretz <kretz@kde.org>
5971 * include/experimental/bits/simd.h (__is_intrinsic_type): New
5972 internal type trait. Alias for __is_vector_type on x86.
5973 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
5975 (__intrin_bitcast): Allow casting to & from vector & intrinsic
5977 (__intrinsic_type): Explicitly specialize for NEON intrinsic
5980 2021-02-03 Matthias Kretz <kretz@kde.org>
5982 * testsuite/experimental/simd/driver.sh: Implement skip, only,
5983 expensive, and xfail markers. They can select on type, ABI tag
5984 subset number, target-triplet, and compiler flags.
5985 * testsuite/experimental/simd/generate_makefile.sh: The summary
5986 now includes lines for unexpected passes and expected failures.
5987 If the skip or only markers are only conditional on the type, do
5988 not generate rules for those types.
5989 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
5990 for ABI tag subsets 1-9.
5991 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
5992 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
5993 * testsuite/experimental/simd/tests/casts.cc: Ditto.
5994 * testsuite/experimental/simd/tests/generator.cc: Ditto.
5995 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
5996 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
5997 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
5998 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
5999 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
6000 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
6001 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
6002 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
6003 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
6004 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
6005 * testsuite/experimental/simd/tests/operators.cc: Ditto.
6006 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
6007 * testsuite/experimental/simd/tests/simd.cc: Ditto.
6008 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
6009 * testsuite/experimental/simd/tests/splits.cc: Ditto.
6010 * testsuite/experimental/simd/tests/where.cc: Ditto.
6011 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
6012 addition replace "test only floattypes" marker by unconditional
6013 "float|double|ldouble" only marker.
6014 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
6015 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
6016 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6018 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
6019 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
6020 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
6021 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
6022 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
6023 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
6024 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
6025 addition, xfail on run because the reference data is missing.
6027 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
6029 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
6030 * doc/xml/manual/status_cxx2014.xml: Likewise.
6031 * doc/xml/manual/status_cxx2017.xml: Likewise.
6032 * doc/html/manual/status.html: Regenerate.
6034 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
6037 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
6038 Return 0 if both iterators are value-initialized.
6039 * testsuite/23_containers/deque/70303.cc: New test.
6040 * testsuite/23_containers/vector/70303.cc: New test.
6042 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
6044 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
6046 * doc/xml/manual/status_cxx2014.xml: Likewise.
6047 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
6048 std::from_chars and std::to_chars status. Fix formatting.
6049 * doc/html/manual/status.html: Regenerate.
6051 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
6053 * include/experimental/bits/numeric_traits.h: Update copyright
6055 * include/experimental/bits/simd.h: Likewise.
6056 * include/experimental/bits/simd_builtin.h: Likewise.
6057 * include/experimental/bits/simd_converter.h: Likewise.
6058 * include/experimental/bits/simd_detail.h: Likewise.
6059 * include/experimental/bits/simd_fixed_size.h: Likewise.
6060 * include/experimental/bits/simd_math.h: Likewise.
6061 * include/experimental/bits/simd_neon.h: Likewise.
6062 * include/experimental/bits/simd_ppc.h: Likewise.
6063 * include/experimental/bits/simd_scalar.h: Likewise.
6064 * include/experimental/bits/simd_x86.h: Likewise.
6065 * include/experimental/bits/simd_x86_conversions.h: Likewise.
6066 * include/experimental/simd: Likewise.
6067 * testsuite/experimental/simd/*: Likewise.
6069 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6071 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
6072 * doc/html/*: Regenerate.
6074 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6076 * testsuite/experimental/simd/generate_makefile.sh: Use printf
6077 instead of echo when printing escape characters.
6079 2021-01-27 Matthias Kretz <kretz@kde.org>
6081 * scripts/check_simd: New file. This script is called from the
6082 the check-simd target. It determines a set of compiler flags and
6083 simulator setups for calling generate_makefile.sh and passes the
6084 information back to the check-simd target, which recurses to the
6085 generated Makefiles.
6086 * scripts/create_testsuite_files: Remove files below simd/tests/
6087 from testsuite_files and place them in testsuite_files_simd.
6088 * testsuite/Makefile.am: Add testsuite_files_simd. Add
6090 * testsuite/Makefile.in: Regenerate.
6091 * testsuite/experimental/simd/driver.sh: New file. This script
6092 compiles and runs a given simd test, logging its output and
6093 status. It uses the timeout command to implement compile and
6095 * testsuite/experimental/simd/generate_makefile.sh: New file.
6096 This script generates a Makefile which uses driver.sh to compile
6097 and run the tests and collect the logs into a single log file.
6098 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
6100 * testsuite/experimental/simd/tests/algorithms.cc: New file.
6101 Tests min/max(simd, simd).
6102 * testsuite/experimental/simd/tests/bits/conversions.h: New
6103 file. Contains functions to support tests involving conversions.
6104 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
6105 Support functions make_mask and make_vec.
6106 * testsuite/experimental/simd/tests/bits/mathreference.h: New
6107 file. Support functions to supply precomputed math function
6109 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
6110 file. Support code for SFINAE testing.
6111 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
6112 * testsuite/experimental/simd/tests/bits/test_values.h: New
6113 file. Test functions to easily drive a test with simd objects
6114 initialized from a given list of values and a range of random
6116 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
6117 Support code to determine the ULP distance of simd objects.
6118 * testsuite/experimental/simd/tests/bits/verify.h: New file.
6119 Test framework for COMPARE'ing simd objects and instantiating
6120 the test templates with value_type and ABI tag.
6121 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
6123 * testsuite/experimental/simd/tests/casts.cc: New file. Test
6125 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
6126 Test floating-point classification functions.
6127 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
6129 * testsuite/experimental/simd/tests/generator.cc: New file. Test
6130 simd generator constructor.
6131 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
6132 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
6133 * testsuite/experimental/simd/tests/integer_operators.cc: New
6134 file. Test integer operators.
6135 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6136 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
6138 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
6139 (converting) simd loads and stores.
6140 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
6142 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
6143 Test simd_mask broadcasts.
6144 * testsuite/experimental/simd/tests/mask_conversions.cc: New
6145 file. Test simd_mask conversions.
6146 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
6147 file. Test simd_mask implicit conversions.
6148 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
6149 Test simd_mask loads and stores.
6150 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
6151 file. Test simd_mask operators convert as specified.
6152 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
6153 Test simd_mask compares, subscripts, and negation.
6154 * testsuite/experimental/simd/tests/mask_reductions.cc: New
6155 file. Test simd_mask reductions.
6156 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
6157 1-arg math functions on simd.
6158 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
6159 2-arg math functions on simd.
6160 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
6161 Test implicit conversions on simd binary operators behave as
6163 * testsuite/experimental/simd/tests/operators.cc: New file. Test
6164 simd compares, subscripts, not, unary minus, plus, minus,
6165 multiplies, divides, increment, and decrement.
6166 * testsuite/experimental/simd/tests/reductions.cc: New file.
6168 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
6170 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
6171 sanity checks of simd types.
6172 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
6173 sin(simd) and cos(simd).
6174 * testsuite/experimental/simd/tests/split_concat.cc: New file.
6175 Test split(simd) and concat(simd, simd).
6176 * testsuite/experimental/simd/tests/splits.cc: New file. Test
6178 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
6179 Test remaining trigonometric functions on simd.
6180 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
6181 file. Test trunc(simd), ceil(simd), and floor(simd).
6182 * testsuite/experimental/simd/tests/where.cc: New file. Test
6183 masked operations using where.
6185 2021-01-27 Matthias Kretz <kretz@kde.org>
6187 * doc/xml/manual/status_cxx2017.xml: Add implementation status
6188 of the Parallelism TS 2. Document implementation-defined types
6190 * include/Makefile.am: Add new headers.
6191 * include/Makefile.in: Regenerate.
6192 * include/experimental/simd: New file. New header for
6194 * include/experimental/bits/numeric_traits.h: New file.
6195 Implementation of P1841R1 using internal naming. Addition of
6196 missing IEC559 functionality query.
6197 * include/experimental/bits/simd.h: New file. Definition of the
6198 public simd interfaces and general implementation helpers.
6199 * include/experimental/bits/simd_builtin.h: New file.
6200 Implementation of the _VecBuiltin simd_abi.
6201 * include/experimental/bits/simd_converter.h: New file. Generic
6203 * include/experimental/bits/simd_detail.h: New file. Internal
6204 macros for the simd implementation.
6205 * include/experimental/bits/simd_fixed_size.h: New file. Simd
6206 fixed_size ABI specific implementations.
6207 * include/experimental/bits/simd_math.h: New file. Math
6209 * include/experimental/bits/simd_neon.h: New file. Simd NEON
6210 specific implementations.
6211 * include/experimental/bits/simd_ppc.h: New file. Implement bit
6212 shifts to avoid invalid results for integral types smaller than
6214 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
6215 ABI specific implementations.
6216 * include/experimental/bits/simd_x86.h: New file. Simd x86
6217 specific implementations.
6218 * include/experimental/bits/simd_x86_conversions.h: New file.
6219 x86 specific conversion optimizations. The conversion patterns
6220 work around missing conversion patterns in the compiler and
6221 should be removed as soon as PR85048 is resolved.
6222 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
6223 Test that all (not all fixed_size<N>, though) standard simd and
6224 simd_mask types are usable.
6225 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
6226 file. As above but with -ffast-math.
6227 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
6228 from the standard test loop. Instead use
6229 check_vect_support_and_set_flags to build simd tests with the
6230 relevant machine flags.
6232 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6235 * include/bits/string_view.tcc
6236 (basic_string_view::find(const CharT*, size_type, size_type)):
6239 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
6241 * include/bits/basic_string.h (basic_string::contains): New
6243 * include/std/string_view (basic_string_view::contains):
6245 * include/std/version (__cpp_lib_string_contains): Define.
6246 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
6247 Remove trailing whitespace.
6248 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
6250 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
6251 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
6252 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
6253 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
6254 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
6256 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
6258 * src/c++17/Makefile.in: Regenerate.
6260 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
6262 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
6263 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
6265 (const char* ctype<char>:: is): Same.
6267 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
6270 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
6271 write to a wide character stream if wide character support is
6272 disabled in the library.
6274 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
6276 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
6277 stringbuf not wstringbuf.
6279 2021-01-18 Jakub Jelinek <jakub@redhat.com>
6282 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
6283 Compile with -gno-as-loc-support.
6284 * src/c++11/Makefile.in: Regenerated.
6286 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
6288 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
6289 Add -fcf-protection=none to -march=i486.
6291 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
6293 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
6296 2021-01-14 Alexandre Oliva <oliva@adacore.com>
6298 * testsuite/30_threads/future/members/poll.cc: Calibrate
6301 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
6304 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
6305 (_Node_iterator()): Make default.
6306 (_Node_const_iterator()): Make default.
6307 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
6309 * include/debug/safe_iterator.h
6310 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
6311 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
6313 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
6314 _M_singular checks on input iterators.
6315 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
6317 * testsuite/23_containers/deque/debug/98466.cc: New test.
6318 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
6320 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
6323 * include/bits/fs_path.h (__throw_conversion_error): New
6324 function to throw or abort on character conversion errors.
6325 (__wstr_from_utf8): Move definition after filesystem_error has
6326 been defined. Use __throw_conversion_error.
6327 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
6328 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
6329 (path::u8string): Likewise.
6331 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
6333 * include/std/barrier: Update copyright years. Fix whitespace.
6334 * include/std/version: Fix whitespace.
6335 * testsuite/30_threads/barrier/1.cc: Update copyright years.
6336 * testsuite/30_threads/barrier/2.cc: Likewise.
6337 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6338 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6339 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6340 * testsuite/30_threads/barrier/completion.cc: Likewise.
6342 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
6344 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
6346 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
6349 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
6351 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
6353 2021-01-08 Olivier Hainque <hainque@adacore.com>
6355 * testsuite/20_util/bind/ref_neg.cc: Tweak the
6356 dg-prune-output regex for out-of-build-tree contexts.
6358 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
6360 * doc/doxygen/user.cfg.in: Add new header.
6361 * include/Makefile.am (std_headers): likewise.
6362 * include/Makefile.in: Regenerate.
6363 * include/precompiled/stdc++.h: Add new header.
6364 * include/std/barrier: New file.
6365 * include/std/version: Add __cpp_lib_barrier feature test macro.
6366 * testsuite/30_threads/barrier/1.cc: New test.
6367 * testsuite/30_threads/barrier/2.cc: Likewise.
6368 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6369 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6370 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6371 * testsuite/30_threads/barrier/completion.cc: Likewise.
6373 2021-01-07 Patrick Palka <ppalka@redhat.com>
6376 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
6377 instead of the non-standard nextupl and nextdownl.
6379 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
6381 * configure: Re-generate.
6383 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
6385 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
6387 2021-01-01 Jakub Jelinek <jakub@redhat.com>
6389 * ChangeLog-2020: Rotate ChangeLog. New file.
6392 Copyright (C) 2021 Free Software Foundation, Inc.
6394 Copying and distribution of this file, with or without modification,
6395 are permitted in any medium without royalty provided the copyright
6396 notice and this notice are preserved.