1 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
3 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
5 * testsuite/23_containers/span/trivially_copyable.cc: New test.
7 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
9 * include/bits/utility.h (__is_in_place_type_v): Define
10 variable template to detect in_place_type_t specializations.
11 (__is_in_place_type): Replace class template with alias
12 template using __is_in_place_type_v.
13 * include/std/any (any(T&&)): Check __is_in_place_type first and
14 avoid instantiating is_copy_constructible unnecessarily.
16 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
18 * testsuite/20_util/integer_comparisons/greater.cc: New test.
20 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
22 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
23 Check result matches non-volatile pointer.
25 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
28 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
29 expected value for C++20.
31 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
33 * include/bits/std_function.h (_Any_data::_M_access): Add
35 (_Function_base::_Base_manager::_M_get_pointer): Likewise.
36 (_Function_base::_Base_manager::_M_not_empty_function):
39 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
41 * include/std/ostream (operator<<(const volatile void*)):
42 Add new overload, as per P1147R1.
43 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
46 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
48 * include/bits/stl_queue.h
49 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
51 * include/bits/stl_stack.h
52 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
54 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
55 * testsuite/23_containers/queue/cons_from_iters.cc: Update
57 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
59 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
61 * include/bits/forward_list.h (forward_list): Use non-deduced
62 context for allocator parameter of allocator-extended copy and
64 * include/bits/stl_bvector.h (vector<bool>): Likewise.
65 * include/bits/stl_deque.h (deque): Likewise.
66 * include/bits/stl_list.h (list): Likewise.
67 * include/bits/stl_map.h (map): Likewise.
68 * include/bits/stl_multimap.h (multimap): Likewise.
69 * include/bits/stl_multiset.h (multiset): Likewise.
70 * include/bits/stl_set.h (set): Likewise.
71 * include/bits/stl_vector.h (vector): Likewise.
72 * include/bits/stl_queue.h (queue, priority_queue): Do not
73 constrain Allocator template parameter of deduction guides that
74 have a Container parameter.
75 * include/bits/stl_stack.h (stack): Likewise.
76 * include/debug/deque (__gnu_debug::deque): Use non-deduced
77 context for allocator parameter of allocator-extended copy and
79 * include/debug/list (__gnu_debug::list): Likewise.
80 * include/debug/map.h (__gnu_debug::map): Likewise.
81 * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
82 * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
83 * include/debug/set.h (__gnu_debug::set): Likewise.
84 * include/debug/vector (__gnu_debug::vector): Likewise.
85 * testsuite/23_containers/deque/cons/deduction.cc: Test class
86 template argument deduction with non-deduced allocator
88 * testsuite/23_containers/forward_list/cons/deduction.cc:
90 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
91 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
92 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
93 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
94 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
95 * testsuite/23_containers/queue/deduction.cc: Likewise.
96 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
97 * testsuite/23_containers/stack/deduction.cc: Likewise.
98 * testsuite/23_containers/unordered_map/cons/deduction.cc:
100 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
102 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
104 * testsuite/23_containers/unordered_set/cons/deduction.cc:
106 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
108 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
110 * include/std/variant (__detail::__variant::__as): Add missing
111 noexcept to first overload.
113 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
115 * include/bits/basic_string.h (basic_string(nullptr_t)): Define
117 (operator=(nullptr_t)): Likewise.
118 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
119 (operator=(nullptr_t)): Likewise.
120 * include/std/string_view (basic_string_view(nullptr_t)):
122 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
123 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
124 Change dg-warning to dg-error.
125 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
128 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
130 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
131 * src/filesystem/ops-common.h (__last_system_error): Add
132 explicit cast to avoid narrowing conversion.
133 (do_space): Fix type in function name.
135 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
138 * include/Makefile.am (c++config.h): Define
139 _GLIBCXX_VERBOSE_ASSERT based on configure output.
140 * include/Makefile.in: Regenerate.
141 * include/bits/c++config: Fix condition for verbose assertions.
143 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
146 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
147 unwrap debug iterators.
148 * include/bits/refwrap.h: Do not error if included in C++03.
149 * include/bits/stl_algo.h (__remove_if): Move to ...
150 * include/bits/stl_algobase.h (__remove_if): ... here.
151 * include/std/deque (erase, erase_if): Use __remove_if instead of
152 remove and remove_if.
153 * include/std/string (erase, erase_if): Likewise.
154 * include/std/vector (erase, erase_if): Likewise.
156 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
159 * include/bits/list.tcc (list::sort()): Use _Scratch_list
160 objects for splicing and merging.
161 (list::sort(StrictWeakOrdering)): Likewise.
162 * include/bits/stl_list.h (__detail::_Scratch_list): New type.
163 * src/c++98/list.cc (_List_node_base::_M_transfer): Add
164 assertion for --enable-libstdcxx-debug library.
165 * testsuite/23_containers/list/operations/66742.cc: New test.
167 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
170 * include/std/thread (__pmf_expects_stop_token): New variable
171 template to detect a pointer to member function that needs a
172 stop_token to be added to the arguments.
173 (jthread::__S_create): Use __pmf_expects_stop_token.
174 (jthread::__S_create_pmf): New function.
175 * testsuite/30_threads/jthread/100612.cc: New test.
177 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
179 * include/bits/stl_queue.h
180 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
182 (queue(InputIterator, InputIterator)): Likewise.
183 (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
184 * include/bits/stl_stack.h
185 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
186 (stack(InputIterator, InputIterator)): Likewise.
187 (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
188 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
190 * testsuite/23_containers/queue/cons_from_iters.cc: New test.
191 * testsuite/23_containers/stack/cons_from_iters.cc: New test.
193 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
195 * include/bits/stl_queue.h (priority_queue): Add
196 allocator-extended overloads for constructors taking iterator.
197 * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
199 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
201 * include/bits/stl_queue.h (priority_queue): Construct sequence
202 from iterators when no sequence argument is present (LWG 3529).
203 * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
205 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
207 * include/bits/stl_queue.h (priority_queue): Constrain
208 constructors with InputIterator parameters (LWG 3522).
209 * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
211 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
213 * include/bits/ranges_base.h (ranges::distance): Split overload
215 * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
217 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
219 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
221 * testsuite/30_threads/thread/cons/4.cc: Likewise.
222 * testsuite/30_threads/thread/cons/5.cc: Likewise.
224 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
226 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
227 unnecesary derivation from std::unary_function.
228 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
229 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
230 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
231 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
232 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
233 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
234 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
235 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
237 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
238 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
240 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
242 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
243 expand the format string for freestanding, or non-vebose, or if
244 we're just going to abort anyway.
245 * src/c++11/snprintf_lite.cc: Remove unused header and
248 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
250 * include/std/variant (__do_visit): Use variant_npos instead of
251 literal -1 that requires a narrowing conversion.
253 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
256 * src/filesystem/ops-common.h (__unsupported): New function to
257 return a suitable error code for missing functionality.
258 (posix::off_t): New typedef.
259 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
260 fallback implementations.
261 (do_copy_file): Replace uses of errc::not_supported.
262 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
263 (fs::create_directory, fs::create_directory_symlink)
264 (fs::create_hard_link, fs::create_symlink, fs::current_path)
265 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
266 (fs::last_write_time, fs::permissions, fs::read_symlink):
267 Replace uses of errc::not_supported.
268 (fs::resize_file): Qualify off_t.
269 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
270 (fs::create_directory, fs::create_directory_symlink)
271 (fs::create_hard_link, fs::create_symlink, fs::current_path)
272 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
273 (fs::permissions, fs::read_symlink, fs::system_complete):
274 Replace uses of errc::not_supported.
275 (fs::resize_file): Qualify off_t and enable unconditionally.
276 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
278 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
280 * src/filesystem/ops-common.h (last_error): New helper function.
281 (filesystem::do_space): Use last_error().
282 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
283 (fs::equivalent, fs::remove, fs::temp_directory_path): Use
285 * src/filesystem/ops.cc (fs::create_hard_link)
286 (fs::remove, fs::temp_directory_path): Likewise.
288 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
290 * include/std/type_traits (__conditional): New class template
291 for internal uses of std::conditional.
292 (__conditional_t): New alias template to replace conditional_t.
293 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
294 __conditional_t instead of conditional::type.
295 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
296 * include/bits/hashtable.h (_Hashtable): Likewise.
297 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
298 (_Local_iterator): Likewise. Replace typedefs with
300 * include/bits/move.h (move_if_noexcept): Use __conditional_t.
301 * include/bits/parse_numbers.h (_Select_int_base): Likewise.
302 * include/bits/ptr_traits.h (__make_not_void): Likewise.
303 * include/bits/ranges_algobase.h (__copy_or_move_backward)
304 (__copy_or_move): Likewise.
305 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
306 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
307 * include/bits/regex_compiler.h (_BracketMatcher): Use
308 __conditional_t. Replace typedefs with using-declarations.
309 * include/bits/shared_ptr_base.h (__shared_count): Use
311 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
313 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
314 (reverse_iterator::iterator_concept)
315 (__make_move_if_noexcept_iterator)
316 (iterator_traits<common_iterator<_It, _Sent>>)
317 (iterator_traits<counted_iterator<_It>>): Likewise.
318 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
319 * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
320 (_Rb_tree::_M_clone_node): Likewise.
321 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
323 * include/bits/uses_allocator.h (__uses_alloc): Likewise.
324 (__is_uses_allocator_predicate): Likewise.
325 * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
326 * include/experimental/any (any::_Manager, __any_caster):
328 * include/experimental/executor (async_completion): Likewise.
329 * include/experimental/functional (__boyer_moore_base_t):
331 * include/std/any (any::_Manager): Likewise.
332 * include/std/functional (__boyer_moore_base_t): Likewise.
333 * include/std/ranges (borrowed_iterator_t)
334 (borrowed_subrange_t, __detail::__maybe_present_t)
335 (__detail::__maybe_const_t, split_view): Likewise.
336 * include/std/tuple (__empty_not_final, tuple::operator=):
338 * include/std/variant (__detail::__variant::__get_t): Likewise.
340 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
343 * include/std/variant (__do_visit): Use a switch when we have a
344 single variant with a small number of alternatives.
346 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
349 * include/std/variant (__cpp_lib_variant): Update value.
350 (__detail::__variant::__as): New helpers implementing the
351 as-variant exposition-only function templates.
352 (visit, visit<R>): Use __as to upcast the variant parameters.
353 * include/std/version (__cpp_lib_variant): Update value.
354 * testsuite/20_util/variant/visit_inherited.cc: New test.
356 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
358 * include/bits/stl_iterator.h (__normal_iterator): Simplify
359 converting constructor and do not require _Container::pointer.
361 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
363 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
364 (basic_string(basic_string&&)): Add noexcept and avoid
365 allocation, by sharing rep with the rvalue string.
367 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
369 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
370 (common_iterator::__postfix_proxy): Add noexcept.
372 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
375 * include/bits/stl_iterator.h (reverse_iterator): Use
376 conditional noexcept on constructors and assignment operators.
377 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
379 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
382 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
383 When size() is zero just deallocate and reset.
385 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
388 * include/bits/stl_algo.h (clamp): Use std::min and std::max.
390 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
392 * include/bits/regex.h (basic_regex::multiline): Define for
393 non-strict C++11 and C++14 modes.
394 * include/bits/regex_constants.h (regex_constants::multiline):
395 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
397 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
399 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
401 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
403 * include/bits/stream_iterator.h (istream_iterator): Add
404 noexcept to constructors and non-throwing member functions and
406 (ostream_iterator): Likewise.
408 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
410 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
411 New trait to identify vector<bool> iterators, including debug
413 (_ForwardIteratorReferenceConcept): Add default template
414 argument using _Is_vector_bool_iterator and use it in partial
415 specialization for the vector<bool> cases.
416 (_Mutable_ForwardIteratorReferenceConcept): Likewise.
417 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
420 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
422 * include/bits/list.tcc (list::merge): Remove call to size() and
423 try-catch block. Use _Finalize_merge instead.
424 * include/bits/stl_list.h (list::_Finalize_merge): New
425 scope guard type to update _M_size members after a merge.
427 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
429 * include/bits/regex.h (basic_regex::multiline): Fix #if
432 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
434 * include/bits/regex.h (basic_regex::multiline): Define constant
436 * include/bits/regex_constants.h (regex_constants::multiline):
437 Define constant for C++17.
438 (regex_constants::__multiline): Define duplicate constant for
439 internal use in C++11 and C++14.
440 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
442 (_Executor::_M_is_line_terminator(_CharT)): New member function.
443 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
444 member functions to support multiline matches.
445 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
447 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
449 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
451 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
452 _S_validate to check flags.
453 * include/bits/regex_error.h (_S_grammar): New error code for
455 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
457 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
460 * include/bits/regex_error.h (regex_constants::_S_null): New
461 error code for internal use.
462 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
463 Check for null character.
464 * testsuite/28_regex/basic_regex/84110.cc: New test.
466 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
468 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
469 here from <bits/regex_compiler.h>.
470 (basic_regex::_M_compile): New function to compile an NFA from
471 a regular expression string.
472 (basic_regex::basic_regex): Use _M_compile instead of delegating
473 to other constructors.
474 (basic_regex::operator=(const basic_regex&)): Define as
476 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
477 (basic_regex::assign(const basic_regex&)): Use copy assignment.
478 (basic_regex::assign(basic_regex&&)): Use move assignment.
479 (basic_regex::assign(const C*, flag_type)): Use _M_compile
480 instead of constructing a temporary string.
481 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
482 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
483 Use _M_compile instead of constructing a temporary basic_regex.
484 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
485 constructing a temporary string for contiguous iterators of the
487 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
489 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
490 (__compile_nfa): Remove.
491 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
493 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
495 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
497 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
498 Return false for ETIMEDOUT and true otherwise.
500 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
502 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
503 to also match message with '__8' in it.
505 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
507 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
508 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
509 * include/bits/regex_compiler.tcc: Likewise.
510 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
511 * include/bits/regex_scanner.tcc: Likewise.
513 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
515 * include/bits/regex_compiler.tcc: Add line break in empty while
517 * include/bits/regex_executor.tcc: Avoid unused parameter
520 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
522 * include/bits/regex.h (basic_regex, swap): Add noexcept to
523 non-throwing functions.
524 * include/bits/regex_automaton.h (_State_base, _State)
525 (_NFA_base): Likewise.
526 * include/bits/regex_compiler.h (_Compiler): Likewise.
527 * include/bits/regex_error.h (regex_error::code()): Likewise.
528 * include/bits/regex_scanner.h (_Scanner): Likewise.
530 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
532 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
533 Define before first attempt to check it.
535 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
537 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
538 Do not check non-default constructible sequences when
539 _GLIBCXX_CONCEPT_CHECKS is defined.
540 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
542 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
544 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
546 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
548 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
551 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
553 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
554 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
556 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
558 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
560 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
562 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
564 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
566 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
568 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
570 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
572 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
574 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
576 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
578 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
580 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
582 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
584 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
586 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
588 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
591 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
593 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
594 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
595 Check result types of iterator operations.
596 (_Mutable_ForwardIteratorConcept): Check that iterator's
597 reference type is a reference to its value type.
598 (_Mutable_BidirectionalIteratorConcept): Do not require the
599 value type to be assignable.
600 (_Mutable_RandomAccessIteratorConcept): Likewise.
601 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
604 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
606 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
607 for type used as an iterator.
608 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
610 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
612 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
613 comparison function for priority_queue of type with no
614 relational operators.
615 * testsuite/20_util/is_swappable/value.h: Likewise.
616 * testsuite/24_iterators/output/concept.cc: Add operator< to
619 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
621 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
622 Use a function to preserve value category of the type.
623 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
624 reference as the second argument for _OutputIteratorConcept.
625 (copy_backward, move_backward): Use _OutputIteratorConcept
626 instead of _ConvertibleConcept.
628 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
630 * include/bits/stl_iterator.h (pointer_traits): Define partial
631 specialization for __normal_iterator.
632 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
634 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
636 * include/bits/move.h (forward(remove_reference_t<T>&&)):
637 Improve text of static_assert.
638 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
639 * testsuite/20_util/forward/f_neg.cc: Likewise.
641 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
644 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
645 to declarations, to match definitions.
647 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
649 * include/bits/range_access.h (cbegin, cend): Remove redundant
652 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
654 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
655 Remove dg-error lines for C++20-only errors.
657 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
659 * testsuite/19_diagnostics/headers/system_error/93151.cc:
662 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
664 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
665 Map Windows error codes to generic POSIX error numbers. Use
666 FormatMessage instead of strerror.
667 * testsuite/19_diagnostics/error_category/system_category.cc:
668 Adjust for new behaviour on Windows.
670 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
672 * src/c++11/system_error.cc (generic_error_category): Define
673 class and virtual functions as 'final'.
674 (generic_error_category::equivalent(int, const error_condition&)):
676 (system_error_category): Define class and virtual functions as
678 (system_error_category::equivalent(int, const error_condition&)):
680 (generic_category_instance, system_category_instance): Use
681 constinit union to make the objects immortal.
683 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
686 * src/c++11/system_error.cc
687 (system_error_category::default_error_condition): Add 0 to
689 * testsuite/19_diagnostics/error_category/102425.cc: New test.
691 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
693 * include/bits/fs_path.h (path::iterator): Add noexcept to all
694 member functions and friend functions.
695 (distance): Add noexcept.
696 (advance): Add noexcept and inline.
697 * include/experimental/bits/fs_path.h (path::iterator):
698 Add noexcept to all member functions.
700 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
703 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
704 missed in previous patch.
705 * testsuite/20_util/tuple/cons/102270.C: Moved to...
706 * testsuite/20_util/tuple/cons/102270.cc: ...here.
707 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
708 constexpr to constructor so it can be used for C++20 tests.
710 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
712 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
713 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
714 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
715 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
717 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
719 * src/Makefile.am (stamp-debug): Add all Makefiles as
721 * src/Makefile.in: Regenerate.
723 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
725 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
727 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
729 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
731 * doc/xml/manual/using.xml: Generalize to apply to more than
733 * doc/html/manual/using_macros.html: Regenerate.
735 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
737 * include/std/optional (nullptr_t): Make constructor noexcept.
739 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
741 * include/bits/fs_path.h (advance): Remove non-deducible
744 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
747 * include/std/tuple (_Head_base, _Tuple_impl): Add
748 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
749 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
750 * testsuite/20_util/tuple/cons/102270.C: New test.
752 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
755 * include/std/span (span(Range&&)): Add constraint to deduction
758 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
760 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
761 * src/c++98/Makefile.in: Regenerate.
763 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
765 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
766 (to_string): Add noexcept if the type width is 32 bits or less.
768 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
770 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
771 (__uniq_ptr_impl::_M_deleter): Add noexcept.
773 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
776 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
777 va and vb as arguments to wait/notify, remove unused bb local.
779 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
781 * crossconfig.m4: Check for TLS support on mingw.
782 * configure: Regenerate.
784 2021-09-13 Jason Merrill <jason@redhat.com>
786 * include/std/version: Define __cpp_lib_hardware_interference_size.
787 * libsupc++/new: Define hardware interference size variables.
789 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
791 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
792 Fix invalid hostname to only match the .invalid TLD.
794 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
796 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
798 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
801 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
803 * include/std/atomic: Tweak whitespace.
805 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
808 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
809 New function to check if a memory order is valid for the failure
810 case of compare exchange operations.
811 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
812 by using __is_valid_cmpexch_failure_order.
813 (__atomic_base<I>::compare_exchange_strong): Likewise.
814 (__atomic_base<P*>::compare_exchange_weak): Likewise.
815 (__atomic_base<P*>::compare_exchange_strong): Likewise.
816 (__atomic_impl::compare_exchange_weak): Add assertion.
817 (__atomic_impl::compare_exchange_strong): Likewise.
818 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
819 (atomic::compare_exchange_strong): Likewise.
821 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
823 * include/std/functional (invoke_r): Define.
824 * include/std/version (__cpp_lib_invoke_r): Define.
825 * testsuite/20_util/function_objects/invoke/version.cc: Check
826 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
827 * testsuite/20_util/function_objects/invoke/4.cc: New test.
829 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
832 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
833 Add valid range checks.
834 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
835 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
837 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
839 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
840 * configure: Regenerate.
842 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
844 * src/c++11/system_error.cc (error_category::~error_category()):
845 Remove noexcept-specifier.
846 (system_error::~system_error()): Likewise.
847 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
848 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
850 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
853 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
854 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
856 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
858 * include/experimental/internet (__make_resolver_error_code):
859 Handle EAI_SYSTEM errors.
860 (basic_resolver_results): Use __make_resolver_error_code. Use
861 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
863 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
865 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
866 Try other service if "http" fails.
868 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
870 * testsuite/17_intro/names.cc: Undefine some more names used
871 by Solaris system headers.
873 2021-08-30 Jason Merrill <jason@redhat.com>
876 * testsuite/30_threads/promise/requirements/lwg3466.cc:
877 Remove dg-prune-outputs.
879 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
881 * include/bits/alloc_traits.h (allocator_traits): Add explicit
882 specialization for allocator<void>. Improve doxygen comments.
883 * include/bits/allocator.h (allocator<void>): Restore for the
885 (allocator<void>::construct, allocator<void>::destroy): Remove.
886 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
887 Add default constructor and converting constructor.
889 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
891 * include/bits/stl_uninitialized.h: Fix typo in comment.
893 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
896 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
897 to avoid unnecessary current_path() call.
899 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
901 * include/bits/std_function.h (function::function(F&&)): Give
902 name to defaulted template parameter, to improve diagnostics.
903 Use markdown for more doxygen comments.
905 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
907 * include/bits/std_function.h (function): Adjust doxygen
909 * include/bits/unique_ptr.h (make_unique_for_overwrite):
910 Change parameter name to match doxygen comment.
912 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
914 * include/bits/std_function.h (_function_base::_Base_manager):
915 Replace _M_init_functor with a function template using a
916 forwarding reference, and a pair of _M_create function
917 templates. Reuse _M_create for the clone operation.
918 (function::_Decay_t): New alias template.
919 (function::_Callable): Simplify by using _Decay.
920 (function::function(F)): Change parameter to forwarding
921 reference, as per LWG 2447. Add noexcept-specifier. Simplify
923 (function::operator=(F&&)): Add noexcept-specifier.
924 * testsuite/20_util/function/cons/lwg2774.cc: New test.
925 * testsuite/20_util/function/cons/noexcept.cc: New test.
927 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
929 * include/bits/std_function.h (function::function(F)): Add
930 static assertions to check constructibility requirements.
932 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
935 * configure.ac: Check for O_NONBLOCK.
936 * configure: Regenerate.
937 * include/experimental/internet: Include <ws2tcpip.h> for
938 Windows. Use preprocessor conditions around more constants.
939 * include/experimental/socket: Use preprocessor conditions
940 around more constants.
941 * testsuite/experimental/net/internet/resolver/base.cc: Only use
942 constants when the corresponding C macro is defined.
943 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
944 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
945 Make preprocessor checks more fine-grained.
947 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
949 * testsuite/17_intro/names.cc: Check 'sz'.
951 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
953 * testsuite/17_intro/names.cc: Adjust for Windows.
955 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
957 * include/std/valarray: Uglify 'func' parameters.
958 * testsuite/17_intro/names.cc: Add 'func' to checks.
960 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
963 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
964 Define macro to check conditions for optimizing trivial cases.
965 (__check_constructible): New function to do static assert.
966 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
968 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
969 Adjust dg-error pattern.
970 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
971 C++17-specific checks from 89164_c++17.cc.
972 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
973 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
975 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
977 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
979 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
982 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
985 * include/ext/rope (rope::erase(size_type)): Remove broken
988 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
990 * doc/xml/manual/status_cxx2020.xml: Update table.
991 * doc/html/manual/status.html: Regenerate.
993 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
995 * include/std/type_traits (is_layout_compatible): Define.
996 (is_corresponding_member): Define.
997 * include/std/version (__cpp_lib_is_layout_compatible): Define.
998 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
1000 * testsuite/20_util/is_layout_compatible/value.cc: New test.
1001 * testsuite/20_util/is_layout_compatible/version.cc: New test.
1002 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
1004 * testsuite/23_containers/span/layout_compat.cc: Do not use real
1005 std::is_layout_compatible trait if available.
1007 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1009 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
1010 explicit instantiation definitions.
1012 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1014 * include/std/ranges (basic_istream_view): Add default template
1016 * testsuite/std/ranges/istream_view.cc: Check it.
1018 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1020 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
1023 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1026 * testsuite/util/testsuite_fs.h (permissions_are_testable):
1029 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
1032 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1033 Use new __gnu_test::permissions_are_testable() function.
1034 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1036 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1037 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1038 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
1039 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
1040 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
1041 * testsuite/27_io/filesystem/operations/symlink_status.cc:
1043 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1045 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
1047 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
1049 * testsuite/experimental/filesystem/operations/exists.cc:
1051 * testsuite/experimental/filesystem/operations/is_empty.cc:
1053 * testsuite/experimental/filesystem/operations/remove.cc:
1055 * testsuite/experimental/filesystem/operations/remove_all.cc:
1057 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1059 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
1060 New function to guess whether testing permissions will work.
1062 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1064 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
1065 * doc/html/manual/status.html: Regenerate.
1067 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1069 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
1071 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1074 * include/std/charconv (__to_chars_i): Remove redundant check.
1076 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1079 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
1080 class' move constructor. Define as defaulted for versioned
1082 * testsuite/20_util/tuple/cons/101960.cc: New test.
1084 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1087 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
1088 * doc/html/manual/status.html: Regenerate.
1090 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1092 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
1093 * include/bits/unique_ptr.h: Add @headerfile tags.
1095 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1097 * src/filesystem/ops-common.h (filesystem::file_time): Improve
1098 overflow check by using system_clock::duration::max().
1100 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1102 * include/bits/stl_tree.h: Tweak whitespace.
1104 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1106 * include/bits/unique_ptr.h (default_delete): Add @since tag.
1107 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
1108 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
1109 @param, and @returns.
1110 (_MakeUniq): Move to __detail namespace. Add alias template
1113 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1115 * include/bits/stl_function.h: Improve doxygen comments.
1117 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1119 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
1120 processing for C++20 components and components that depend on
1122 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
1123 * include/std/type_traits: Improve doxygen comments for C++20
1126 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1128 * include/ext/type_traits.h (__promote_2, __promote_3)
1129 (__promote_4): Redfine as alias templates using __promoted_t.
1130 * include/std/complex (__promote_2): Remove partial
1131 specializations for std::complex.
1133 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1135 * include/bits/stl_algo.h (min(initializer_list<T>))
1136 (min(initializer_list<T>, Compare)): Call __min_element directly to
1137 avoid redundant debug checks for valid ranges.
1138 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
1139 Likewise, for __max_element.
1140 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
1141 Likewise, for __minmax_element.
1143 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1145 * include/debug/deque (deque(size_type, const T&, const A&)):
1146 Prevent class template argument deduction and replace with a
1148 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
1150 * include/debug/list (list(size_type, const T&, const A&)):
1152 * include/debug/vector (vector(size_type, const T&, const A&)):
1155 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1157 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
1158 'std::vector<bool>::reference' as type name, not _Bit_reference.
1159 (build_libstdcxx_dictionary): Register printers for vector<bool>
1160 types in debug mode too.
1161 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
1162 output for invalid _Bit_reference. Use vector<bool>::reference
1163 instead of _Bit_reference.
1164 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1166 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
1168 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
1171 2021-08-17 Luc Michel <lmichel@kalray.eu>
1172 Marc Poulhies <mpoulhies@kalrayinc.com>
1174 * testsuite/lib/gdb-test.exp (gdb_version_check)
1175 (gdb_version_check_xmethods): Only check the GDB version for
1176 local native targets.
1178 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
1179 Jonathan Wakely <jwakely@redhat.com>
1181 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
1182 if distance is O(1).
1183 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1186 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1188 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
1189 construction from input iterators.
1191 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1193 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
1195 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1198 * include/bits/std_function.h (function(function&&)): Check for
1199 non-empty parameter before doing any work.
1201 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1203 * include/bits/cow_string.h (basic_string::contains): Do not
1204 define for -std=gnu++20.
1206 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1208 * include/bits/ranges_util.h (__not_same_as): Rename to
1210 * include/std/ranges (__not_same_as): Likewise.
1212 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1214 * include/std/utility (exchange): Add noexcept-specifier.
1215 * testsuite/20_util/exchange/noexcept.cc: New test.
1217 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1219 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
1220 (build_libstdcxx_dictionary): Register printer for
1221 std::error_code and std::error_condition.
1222 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
1224 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
1227 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
1229 (print_word): Use qualified-id to access it.
1231 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
1233 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
1234 Install another copy of the GDB hook.
1235 * python/Makefile.in: Regenerate.
1237 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1240 * include/c_global/cmath (hypot): Use __promoted_t.
1241 (lerp): Add new overload accepting any arithmetic types.
1242 * include/ext/type_traits.h (__promoted_t): New alias template.
1243 * testsuite/26_numerics/lerp.cc: Moved to...
1244 * testsuite/26_numerics/lerp/1.cc: ...here.
1245 * testsuite/26_numerics/lerp/constexpr.cc: New test.
1246 * testsuite/26_numerics/lerp/version.cc: New test.
1248 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1250 * testsuite/26_numerics/lerp.cc: Add header name to #error.
1251 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
1252 * testsuite/26_numerics/midpoint/version.cc: New test.
1254 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1256 * include/experimental/random (experimental::randint): Add
1257 nodiscard attribute.
1259 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1261 * src/c++98/locale_init.cc: Require C++11.
1262 * src/c++98/localename.cc: Likewise.
1263 * src/c++98/misc-inst.cc: Require C++98.
1265 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
1268 * testsuite/experimental/random/randint.cc: Loop and retry if
1269 reseed() produces the same sequence.
1271 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
1273 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
1274 (is_pointer_interconvertible_base_of_v)
1275 (is_pointer_interconvertible_base_of): Define for C++20.
1276 * include/std/version (__cpp_lib_is_pointer_interconvertible):
1278 * testsuite/23_containers/span/layout_compat.cc: Use correct
1279 feature test macro for std::is_layout_compatible_v.
1280 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
1281 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
1283 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
1285 * include/bits/regex.h (basic_regex::transform_primary): Use
1286 _GLIBCXX_STD_C::vector for local variable.
1287 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
1288 _GLIBCXX_STD_C::vector base class of match_results.
1289 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
1290 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
1292 * include/bits/regex_compiler.h (_BracketMatcher): Use
1293 _GLIBCXX_STD_C::vector for data members.
1294 * include/bits/regex_executor.h (_Executor): Likewise.
1295 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
1297 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
1299 * include/debug/safe_container.h
1300 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
1301 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
1302 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
1304 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
1306 * testsuite/23_containers/unordered_map/cons/default.cc: Add
1307 equality comparison operators to allocator.
1308 * testsuite/23_containers/unordered_set/cons/default.cc:
1311 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
1313 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
1314 dg-prune-output reason with 'builtin_unreachable'.
1315 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
1316 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
1317 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
1318 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
1319 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
1320 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
1321 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
1322 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
1324 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
1326 * testsuite/std/ranges/iota/max_size_type.cc: Set
1327 dg-timeout-factor to 4.
1329 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
1331 * libsupc++/compare (compare_three_way, strong_order)
1332 (weak_order, partial_order, compare_strong_order_fallback)
1333 (compare_weak_order_fallback, compare_partial_order_fallback):
1334 Move nodiscard attributes to correct location.
1336 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
1339 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1340 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
1341 (ranges::empty, ranges::data): Move attribute after the
1342 declarator-id instead of at the end of the declarator.
1343 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
1344 Move attributes back to the start of the function declarator,
1345 but move the requires-clause to the end.
1346 (common_iterator): Move attribute after the declarator-id.
1347 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
1348 from friend declaration that are not definitions.
1349 * include/std/ranges (views::all, views::filter)
1350 (views::transform, views::take, views::take_while,
1351 views::drop) (views::drop_while, views::join,
1352 views::lazy_split) (views::split, views::counted,
1353 views::common, views::reverse) (views::elements): Move
1354 attributes after the declarator-id.
1356 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
1358 * libsupc++/compare (partial_ordering, weak_ordering)
1359 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
1360 (compare_three_way, strong_order, weak_order, partial_order)
1361 (compare_strong_order_fallback, compare_weak_order_fallback)
1362 (compare_partial_order_fallback, __detail::__synth3way): Add
1363 nodiscard attribute.
1364 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
1365 -Wno-unused-result to options.
1367 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
1370 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1371 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
1372 (ranges::empty, ranges::data): Move attribute to the end of
1374 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
1375 (common_iterator): Likewise for non-member operator functions.
1376 * include/std/ranges (views::all, views::filter)
1377 (views::transform, views::take, views::take_while, views::drop)
1378 (views::drop_while, views::join, views::lazy_split)
1379 (views::split, views::counted, views::common, views::reverse)
1380 (views::elements): Likewise.
1381 * testsuite/std/ranges/access/101782.cc: New test.
1383 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
1385 * include/bits/forward_list.h: Add [[nodiscard]] to functions
1386 with no side-effects.
1387 * include/bits/stl_bvector.h: Likewise.
1388 * include/bits/stl_deque.h: Likewise.
1389 * include/bits/stl_list.h: Likewise.
1390 * include/bits/stl_queue.h: Likewise.
1391 * include/bits/stl_stack.h: Likewise.
1392 * include/bits/stl_vector.h: Likewise.
1393 * include/debug/deque: Likewise.
1394 * include/debug/forward_list: Likewise.
1395 * include/debug/list: Likewise.
1396 * include/debug/safe_iterator.h: Likewise.
1397 * include/debug/vector: Likewise.
1398 * include/std/array: Likewise.
1399 * testsuite/23_containers/array/creation/3_neg.cc: Use
1401 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
1403 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
1404 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
1405 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
1406 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
1408 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
1410 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1411 Adjust dg-error line numbers.
1412 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
1414 * testsuite/23_containers/deque/debug/invalidation/4.cc:
1416 * testsuite/23_containers/deque/types/1.cc: Use
1418 * testsuite/23_containers/list/types/1.cc: Cast result to void.
1419 * testsuite/23_containers/priority_queue/members/7161.cc:
1421 * testsuite/23_containers/queue/members/7157.cc: Likewise.
1422 * testsuite/23_containers/vector/59829.cc: Likewise.
1423 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
1425 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
1427 * testsuite/23_containers/vector/types/1.cc: Use
1430 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
1432 * include/bits/iterator_concepts.h (iter_move): Add
1434 * include/bits/range_access.h (begin, end, cbegin, cend)
1435 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
1436 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1437 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
1438 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1439 (ranges::empty, ranges::data, ranges::cdata): Likewise.
1440 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
1441 (back_insert_iterator, front_insert_iterator, insert_iterator)
1442 (move_iterator, move_sentinel, common_iterator)
1443 (counted_iterator): Likewise.
1444 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
1446 * include/bits/stream_iterator.h (istream_iterator)
1447 (ostream_iterartor): Likewise.
1448 * include/bits/streambuf_iterator.h (istreambuf_iterator)
1449 (ostreambuf_iterator): Likewise.
1450 * include/std/ranges (views::single, views::iota, views::all)
1451 (views::filter, views::transform, views::take, views::take_while)
1452 (views::drop, views::drop_while, views::join, views::lazy_split)
1453 (views::split, views::counted, views::common, views::reverse)
1454 (views::elements): Likewise.
1455 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
1456 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
1457 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
1459 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
1460 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
1462 * testsuite/21_strings/basic_string/range_access/char/1.cc:
1463 Cast result to void.
1464 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
1466 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1468 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1470 * testsuite/23_containers/array/range_access.cc: Likewise.
1471 * testsuite/23_containers/deque/range_access.cc: Likewise.
1472 * testsuite/23_containers/forward_list/range_access.cc:
1474 * testsuite/23_containers/list/range_access.cc: Likewise.
1475 * testsuite/23_containers/map/range_access.cc: Likewise.
1476 * testsuite/23_containers/multimap/range_access.cc: Likewise.
1477 * testsuite/23_containers/multiset/range_access.cc: Likewise.
1478 * testsuite/23_containers/set/range_access.cc: Likewise.
1479 * testsuite/23_containers/unordered_map/range_access.cc:
1481 * testsuite/23_containers/unordered_multimap/range_access.cc:
1483 * testsuite/23_containers/unordered_multiset/range_access.cc:
1485 * testsuite/23_containers/unordered_set/range_access.cc:
1487 * testsuite/23_containers/vector/range_access.cc: Likewise.
1488 * testsuite/24_iterators/customization_points/iter_move.cc:
1490 * testsuite/24_iterators/istream_iterator/sentinel.cc:
1492 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
1494 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
1495 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
1496 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
1497 * testsuite/24_iterators/range_access/range_access.cc:
1499 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1500 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
1501 * testsuite/28_regex/range_access.cc: Likewise.
1502 * testsuite/experimental/string_view/range_access/char/1.cc:
1504 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
1506 * testsuite/ext/vstring/range_access.cc: Likewise.
1507 * testsuite/std/ranges/adaptors/take.cc: Likewise.
1508 * testsuite/std/ranges/p2259.cc: Likewise.
1510 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1512 * include/bits/random.tcc (linear_congruential_engine): Do not
1513 define static constexpr members when they are implicitly inline.
1514 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
1515 (__ratio_add, __ratio_subtract): Likewise.
1516 * include/std/type_traits (integral_constant): Likewise.
1517 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1520 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1522 * testsuite/util/testsuite_common_types.h: Replace uses of
1523 tr1::unordered_map and tr1::unordered_set with their C++11
1525 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
1526 dg-error line number.
1527 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
1528 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
1530 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
1532 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
1534 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
1536 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
1539 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1541 * include/std/memory_resource (polymorphic_allocator::delete_object):
1542 Call destructor directly instead of using destroy.
1543 (allocator_traits<polymorphic_allocator<T>>): Define partial
1546 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1548 * testsuite/20_util/function_objects/binders/3113.cc: Remove
1549 trailing whitespace.
1550 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1551 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1552 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1554 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1555 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
1557 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1559 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1562 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1564 * doc/xml/manual/evolution.xml: Document deprecation.
1565 * doc/html/*: Regenerate.
1566 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
1567 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
1568 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
1570 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
1571 for C++11 and C++14 changes to std::random_shuffle and
1573 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
1574 use deprecated algorithms.
1575 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
1576 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
1577 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1579 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1582 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1584 * testsuite/23_containers/forward_list/operations/3.cc:
1585 Use lambda instead of std::bind2nd.
1586 * testsuite/20_util/function_objects/binders/3113.cc: Add
1587 options for testing deprecated features.
1588 * testsuite/20_util/pair/cons/99957.cc: Likewise.
1589 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1590 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1591 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1593 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
1594 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
1595 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
1596 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1597 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
1598 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
1599 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
1601 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
1603 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
1606 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1608 * include/bits/regex_executor.h (_State_info): Replace
1609 unique_ptr<bool[]> with array of bool.
1610 * include/bits/regex_executor.tcc: Likewise.
1611 * include/bits/regex_scanner.tcc: Replace std::strchr with
1613 * include/std/regex: Replace standard headers with smaller
1615 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
1616 <string.h> for strlen.
1617 * testsuite/28_regex/traits/char/lookup_collatename.cc:
1620 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1622 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
1623 RAII class template.
1624 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
1625 instead of unique_ptr.
1627 2021-08-02 Patrick Palka <ppalka@redhat.com>
1630 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
1631 Add missing std::move in return statement.
1632 (__partition_copy_fn::operator()): Rename templtae parameter
1633 _O2 to _Out2. Uglify function parameters out_true and out_false.
1634 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
1635 std::move to recursive call that unwraps a __normal_iterator
1637 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
1638 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
1640 2021-08-02 Patrick Palka <ppalka@redhat.com>
1643 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
1644 the const& overload unconstrained and return a const reference
1645 as per LWG 3533. Make unconditionally noexcept.
1646 (elements_view::base): Revert accidental r12-569 change.
1647 (elements_view::_Iterator::base): Make the const& overload
1648 unconstrained and return a const reference as per LWG 3533.
1649 Make unconditionally noexcept.
1651 2021-08-02 Patrick Palka <ppalka@redhat.com>
1654 * include/std/ranges (join_view::_Iterator::_Iterator): Add
1657 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
1660 * src/filesystem/ops-common.h (get_temp_directory_from_env):
1661 Add error_code parameter.
1662 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
1663 argument to get_temp_directory_from_env and check it.
1664 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1666 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
1668 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1669 Add dg-error for c++11_only target.
1671 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
1674 * configure.ac: Check for secure_getenv.
1675 * config.h.in: Regenerate.
1676 * configure: Regenerate.
1677 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
1678 helper function to obtain path from the environment.
1679 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
1680 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1681 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1682 Print messages if test cannot be run.
1683 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1684 Likewise. Fix incorrect condition. Use "TMP" to work with
1685 Windows as well as POSIX.
1687 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
1689 * src/c++17/memory_resource.cc: Use __exchange instead
1692 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1694 * include/experimental/optional (__throw_bad_optional_access):
1695 Replace GNU attribute with C++11 attribute.
1696 (optional::value, optional::value_or): Use if statements
1697 instead of conditional expressions.
1698 * include/std/optional (__throw_bad_optional_access)
1699 (optional::value, optional::value_or): Likewise.
1701 2021-07-27 Marek Polacek <polacek@redhat.com>
1705 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1707 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1710 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1712 * include/bits/cow_string.h: Consistently use tab for
1715 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1717 * include/Makefile.am: Add new header.
1718 * include/Makefile.in: Regenerate.
1719 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1720 (basic_string): Move definition of Copy-on-Write string to
1722 * include/bits/basic_string.tcc: Likewise.
1723 * include/bits/cow_string.h: New file.
1725 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1727 * include/std/algorithm: Do not include <utility>.
1728 * include/std/functional: Likewise.
1729 * include/std/regex: Include <bits/stl_pair.h> instead of
1731 * include/debug/map.h: Likewise.
1732 * include/debug/multimap.h: Likewise.
1733 * include/debug/multiset.h: Likewise.
1734 * include/debug/set.h: Likewise.
1735 * include/debug/vector: Likewise.
1736 * include/bits/fs_path.h: Likewise.
1737 * include/bits/unique_ptr.h: Do not include <utility>.
1738 * include/experimental/any: Likewise.
1739 * include/experimental/executor: Likewise.
1740 * include/experimental/memory: Likewise.
1741 * include/experimental/optional: Likewise.
1742 * include/experimental/socket: Use __exchange instead
1744 * src/filesystem/ops-common.h: Likewise.
1745 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
1746 errors to not use a hardcoded line number.
1747 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
1748 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
1749 Include <utility> for std::as_const.
1750 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
1752 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1754 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
1756 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
1757 Adjust dg-error line number.
1759 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1761 * include/Makefile.am: Add bits/utility.h header.
1762 * include/Makefile.in: Regenerate.
1763 * include/bits/utility.h: New file.
1764 * include/std/utility (tuple_size, tuple_element): Move
1766 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
1768 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
1769 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
1770 * include/bits/ranges_util.h: Include new header instead of
1772 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
1773 partial specializations for std::pair here.
1774 (get): Move overloads for std::pair here.
1775 * include/std/any: Include new header instead of <utility>.
1776 * include/std/array: Likewise.
1777 * include/std/memory_resource: Likewise.
1778 * include/std/optional: Likewise.
1779 * include/std/variant: Likewise.
1780 * include/std/tuple: Likewise.
1781 (__is_tuple_like_impl<tuple<T...>>): Move here.
1782 (get) Declare overloads for std::array.
1783 * include/std/version (__cpp_lib_tuples_by_type): Change type
1785 * testsuite/20_util/optional/84601.cc: Include <utility>.
1786 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
1788 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1789 Adjust dg-error line numbers.
1790 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
1791 * testsuite/std/ranges/access/cend.cc: Likewise.
1792 * testsuite/std/ranges/access/end.cc: Likewise.
1793 * testsuite/std/ranges/single_view.cc: Likewise.
1795 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
1797 * include/std/future: Include <bits/atomic_base.h> instead of
1800 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
1802 * include/bits/stl_relops.h: Update documentation comments.
1804 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1807 * include/bits/hashtable.h (_Hashtable): Replace mixin with
1808 _Enable_default_ctor. Construct it explicitly in all
1809 non-forwarding, non-defaulted constructors.
1810 * testsuite/23_containers/unordered_map/cons/default.cc: Check
1811 non-default constructors can be used.
1812 * testsuite/23_containers/unordered_set/cons/default.cc:
1815 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
1817 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
1819 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1822 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
1823 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
1824 (allocator::allocate, allocator::deallocate): Use new macros.
1826 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1829 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
1830 constructor parameter to reference and use addressof.
1831 * testsuite/util/testsuite_iterators.h: Define deleted operator&
1832 overloads for test iterators.
1834 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1836 * include/bits/std_function.h (_Function_base): Add
1837 default member initializers and define constructor as defaulted.
1838 (function::_M_invoker): Add default member initializer.
1840 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1843 * doc/xml/manual/debug_mode.xml: Update documentation about
1844 debug capability of std::array.
1845 * doc/html/*: Regenerate.
1846 * include/debug/array: New file.
1848 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
1851 * include/ext/rope (sequence_buffer): Add move constructor and
1852 move assignment operator.
1853 * testsuite/ext/rope/101542.cc: New test.
1855 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1858 * src/c++17/fs_ops.cc (fs::create_directories): Use status
1859 instead of symlink_status.
1860 * src/filesystem/ops.cc (fs::create_directories): Likewise.
1861 * testsuite/27_io/filesystem/operations/create_directories.cc:
1862 Check symlink to existing directory.
1863 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
1864 not test with symlinks on Windows.
1865 * testsuite/experimental/filesystem/operations/create_directories.cc:
1866 Check symlink to existing directory.
1867 * testsuite/experimental/filesystem/operations/create_directory.cc:
1868 Do not test with symlinks on Windows.
1870 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1873 * include/bits/hashtable.h (_Hashtable): Conditionally delete
1874 default constructor by deriving from _Enable_special_members.
1875 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
1876 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
1878 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1881 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
1882 * testsuite/27_io/filesystem/operations/create_directory.cc:
1883 Test creating directory with name of existing symlink to
1885 * testsuite/experimental/filesystem/operations/create_directory.cc:
1888 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1890 * include/std/tuple (get<I>): Add deleted overload for bad
1892 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1895 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1897 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
1898 Use __int_traits unconditionally.
1900 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1902 * include/bits/random.h (_Shift::__value): Use constexpr.
1903 (_Select_uint_least_t::type): Use using-declaration.
1905 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1908 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1910 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
1911 instead of diagnostic pragmas.
1912 * include/bits/functional_hash.h: Likewise.
1913 * include/bits/iterator_concepts.h (__is_signed_int128)
1914 (__is_unsigned_int128): Likewise.
1915 * include/bits/max_size_type.h (__max_size_type): Likewise.
1916 (numeric_limits<__max_size_type>): Likewise.
1917 * include/bits/std_abs.h (abs): Likewise.
1918 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
1919 * include/bits/uniform_int_dist.h (uniform_int_distribution):
1921 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
1923 * include/std/type_traits (__is_integral_helper<INT_N>)
1924 (__is_signed_integer, __is_unsigned_integer)
1925 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
1926 * include/std/limits (__INT_N): Add __extension__ keyword.
1927 * include/bits/random.h (_Select_uint_least_t)
1928 (random_device): Likewise.
1930 2021-07-16 Patrick Palka <ppalka@redhat.com>
1933 * include/std/ranges (_CachedPosition::_M_get): For non-forward
1934 ranges, just call __builtin_unreachable.
1935 * testsuite/std/ranges/istream_view.cc (test05): New test.
1937 2021-07-16 Patrick Palka <ppalka@redhat.com>
1940 * include/std/ranges (split_view::split_view): Use std::move.
1941 (split_view::_Iterator::_Iterator): Remove redundant
1942 default_initializable constraint.
1943 (split_view::_Sentinel::_Sentinel): Declare.
1944 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
1946 2021-07-16 Marek Polacek <polacek@redhat.com>
1948 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
1951 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1953 * include/bits/unique_ptr.h: Adjust doxygen markup.
1955 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1958 * include/std/type_traits: Adjust doxygen markup.
1960 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1962 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
1963 uses of non-standard integer types.
1964 * include/bits/functional_hash.h: Likewise.
1965 * include/bits/iterator_concepts.h: Likewise.
1966 * include/bits/max_size_type.h: Likewise.
1967 * include/bits/std_abs.h: Likewise.
1968 * include/bits/stl_algobase.h: Likewise.
1969 * include/bits/uniform_int_dist.h: Likewise.
1970 * include/ext/numeric_traits.h: Likewise.
1971 * include/std/type_traits: Likewise.
1973 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
1976 * include/std/tuple (tuple_element): Improve static_assert text.
1977 (__get_helper): Add deleted overload.
1978 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
1979 __get_helper directly.
1980 (__get_helper2): Remove.
1981 (__find_uniq_type_in_pack): New constexpr helper function.
1982 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
1984 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1986 * testsuite/20_util/tuple/element_access/101427.cc: New test.
1988 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
1991 * include/bits/c++config (__replacement_assert): Add noexcept.
1992 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
1993 instead of __replacement_assert.
1995 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
1997 * include/std/string_view (basic_string_view(It, End)): Add
1999 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
2000 Check noexcept-specifier. Also check construction without CTAD.
2002 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2005 * include/std/string_view (ends_with): Use traits_type::compare
2008 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2010 * include/std/string_view: Only include <bits/ranges_base.h>
2011 once, and only for C++20 and later.
2013 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
2016 * include/std/span (as_writable_bytes): Add requires-clause.
2017 * testsuite/23_containers/span/101411.cc: New test.
2019 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
2021 * include/std/mutex (__lock_impl): Check
2022 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
2024 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
2027 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
2028 Remove noexcept-specifier.
2029 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
2030 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
2033 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
2035 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
2036 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
2037 Add some more predefined macros.
2038 * include/bits/fs_fwd.h: Move @addtogroup commands inside
2039 namespaces. Add better documentation.
2040 * include/bits/fs_path.h: Likewise.
2041 * include/experimental/bits/fs_fwd.h: Likewise.
2042 * include/experimental/bits/fs_path.h: Likewise.
2043 * include/ext/throw_allocator.h: Fix typo and improve docs.
2044 * include/std/chrono: Move @addtogroup commands.
2045 * include/std/system_error: Move @addtogroup commands.
2046 * libsupc++/exception: Improve documentation.
2047 * libsupc++/exception.h: Add @since documentation.
2049 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2052 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
2053 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
2054 (PREDEFINED): Add/fix some more macros that need to be expanded.
2055 * include/bits/random.h: Stop Doxygen from documenting internal
2056 implementation details.
2057 * include/bits/random.tcc: Likewise.
2058 * include/bits/this_thread_sleep.h: Fix @file name.
2059 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
2060 document internal implementation details.
2061 * include/experimental/bits/simd_detail.h: Do not document
2062 internal implementation details.
2063 * include/experimental/simd: Define Doxygen groups.
2064 * include/experimental/type_traits: Improve documentation for
2065 the header file. Define groups. Use @since commands.
2066 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
2067 declaration before undocumented region.
2068 * include/std/type_traits (true_type, false_type): Use using
2069 declaration instead of typedef.
2070 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
2071 (is_nothrow_invocable_r_v): Move definitions next to other C++17
2073 Do not document internal implementation details. Move misplaced
2074 group-end command. Define group for variable templates.
2075 * include/std/variant: Do not document internal implementation
2077 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2080 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2082 * include/experimental/simd: Do not define anything pre-C++17.
2084 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2086 * include/bits/random.tcc [__cpp_inline_variables]: Remove
2087 redundant definitions of static constexpr member variables.
2088 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2091 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2093 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
2094 explicit instantiation declarations.
2095 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
2096 explicit instantiation definitions.
2098 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2101 * testsuite/17_intro/names.cc: Fix #if condition for names used
2104 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2107 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
2108 Fail gracefully if element_type is incomplete.
2109 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
2110 the standard doesn't require this test to work for array types.
2111 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
2112 types can be used with array specialization.
2113 * testsuite/20_util/unique_ptr/101236.cc: New test.
2115 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2117 * doc/xml/manual/intro.xml: Document LWG 415 change.
2118 * doc/html/manual/bugs.html: Regenerate.
2119 * include/bits/istream.tcc (ws): Create sentry and catch
2121 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
2122 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
2124 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2126 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
2127 directly instead of using _M_write. Do setstate(__err) all
2128 outside the try-catch block.
2129 * include/std/ostream (basic_ostream::_M_write): Declare
2130 private. Use __ostream_insert. Do not define for the versioned
2133 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2135 * doc/xml/manual/intro.xml: Document LWG 581 change.
2136 * doc/html/manual/bugs.html: Regenerate.
2137 * include/bits/basic_ios.tcc: Whitespace.
2138 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
2140 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
2142 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
2144 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
2145 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
2148 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2150 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
2151 is set, not if eofbit is set.
2152 (tellp, seekp, seekp): Create sentry object. Do not set badbit
2154 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
2155 Adjust expected behaviour.
2156 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
2158 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
2160 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
2162 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
2163 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
2164 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
2165 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
2167 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2169 * include/std/syncstream (basic_syncbuf::swap()): Remove
2170 noexcept, as per LWG 3498.
2172 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2175 * testsuite/17_intro/names.cc: Undef more names for newlib and
2176 also for arm-none-linux-gnueabi.
2177 * testsuite/experimental/names.cc: Disable PCH.
2179 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
2181 * include/experimental/bits/simd.h (__bit_cast): Implement via
2182 __builtin_bit_cast #if available.
2183 (__proposed::simd_bit_cast): Add overloads for simd and
2184 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
2185 available), which return an object of the requested type with
2186 the same bits as the argument.
2187 * include/experimental/bits/simd_math.h: Use simd_bit_cast
2188 instead of __bit_cast to allow casts to fixed_size_simd.
2189 (copysign): Remove branch that was only required if __bit_cast
2190 cannot be constexpr.
2191 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
2192 from __bit_cast to __proposed::simd_bit_cast since the former
2193 will not cast fixed_size objects anymore.
2195 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2197 * include/experimental/bits/simd_math.h
2198 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
2199 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
2202 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2204 * include/experimental/bits/simd.h (__execute_on_index_sequence)
2205 (__execute_on_index_sequence_with_return)
2206 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
2209 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2211 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
2212 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
2215 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2217 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
2218 implementation doesn't require a _VecBltnBtmsk ABI tag, it
2219 requires either a 64-Byte input (in which case AVX512F must be
2220 available) or AVX512VL.
2222 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2224 * include/experimental/bits/simd_math.h: Undefine internal
2226 (frexp): Move #if to a more sensible position and reformat
2228 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
2229 duplicating the code here.
2230 (modf): Simplify condition.
2232 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2234 * include/experimental/bits/simd_math.h (fabs): Remove
2235 fabs(simd<integral>) overload.
2237 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2239 * include/experimental/bits/simd_converter.h
2240 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
2241 * include/experimental/bits/simd_fixed_size.h
2242 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
2243 arguments by const-ref.
2244 (_S_masked_unary): Pass _SimdTuple by const-ref.
2246 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2248 * include/experimental/bits/simd_fixed_size.h
2249 (_AbisInSimdTuple): Removed.
2251 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2253 * include/experimental/bits/simd.h: Add missing operator~
2254 overload for simd<floating-point> to __float_bitwise_operators.
2255 * include/experimental/bits/simd_builtin.h
2256 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
2257 implement complement for floating-point vectors.
2258 * include/experimental/bits/simd_fixed_size.h
2259 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
2260 copysign implementation of _SimdTuple members.
2261 * include/experimental/bits/simd_math.h (copysign): Call
2262 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
2263 generic copysign implementation using the new ~ operator.
2265 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
2267 * testsuite/experimental/simd/README.md: Fix typos.
2269 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
2271 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
2273 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
2274 conditional noexcept as per LWG 2762.
2275 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
2276 dereferencing cannot throw.
2277 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
2278 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
2279 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
2281 2021-06-23 Patrick Palka <ppalka@redhat.com>
2284 * testsuite/23_containers/multiset/cons/deduction.cc:
2285 Uncomment CTAD example that was rejected by this bug.
2286 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2288 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
2290 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
2293 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2295 * testsuite/experimental/simd/README.md: New file.
2297 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2299 * testsuite/experimental/simd/driver.sh: Rewrite output
2300 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
2301 to be used twice. Add -x and -o short options. Parse long
2302 options with = instead of separating space generically. Parce
2303 contracted short options. Make unrecognized options an error.
2304 If same-line output is active, trap on EXIT to increment the
2305 progress (only with --percentage), erase the line and print the
2307 * testsuite/experimental/simd/generate_makefile.sh: Initialize
2308 helper files for progress account keeping. Update help target
2309 for changes to DRIVEROPTS.
2311 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2313 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
2314 and associated warning.
2315 * testsuite/Makefile.in: Regenerate.
2317 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
2318 Jonathan Wakely <jwakely@redhat.com>
2319 Ulrich Drepper <drepper@redhat.com>
2321 * include/std/chrono (chrono::year::is_leap()): Optimize.
2323 2021-06-23 Patrick Palka <ppalka@redhat.com>
2326 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
2328 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
2329 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
2330 Mention one of the replaced examples is broken due to PR101174.
2331 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2332 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
2333 ambiguous CTAD examples.
2334 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
2336 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
2338 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
2340 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
2342 * include/std/mutex (__detail::__try_lock_impl): Rename
2343 parameter to avoid clashing with newlib's __lockable macro.
2344 (try_lock): Add 'inline' specifier.
2345 * testsuite/17_intro/names.cc: Add check for __lockable.
2346 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
2348 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
2349 Matthias Kretz <m.kretz@gsi.de>
2351 * include/std/mutex (lock): Replace recursion with iteration
2352 when lockables all have the same type.
2353 (__detail::__try_lock_impl): Likewise. Pass lockables as
2354 parameters, instead of a tuple. Always lock the first one, and
2355 recurse for the rest.
2356 (__detail::__lock_impl): Adjust call to __try_lock_impl.
2357 (__detail::__try_to_lock): Remove.
2358 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
2359 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
2361 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
2363 * testsuite/30_threads/try_lock/5.cc: New test.
2365 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
2367 * include/std/memory (declare_reachable, undeclare_reachable)
2368 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
2369 (pointer_safety): Only define for C++11 to C++20 inclusive.
2370 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
2372 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
2374 * include/bits/random.h (seed_seq): Constrain initializer-list
2376 * include/bits/random.tcc (seed_seq): Add template parameter.
2377 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
2379 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
2382 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
2385 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
2386 Force _M_release() to wake all waiting threads.
2387 * testsuite/30_threads/semaphore/100806.cc: New test.
2389 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
2391 * include/std/mutex (__try_to_lock): Move to __detail namespace.
2392 (struct __try_lock_impl): Replace with ...
2393 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
2394 function templates to implement std::try_lock.
2395 (try_lock): Use new __try_lock_impl.
2396 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
2397 template to implement std::lock.
2398 (lock): Use __lock_impl.
2400 2021-06-21 Patrick Palka <ppalka@redhat.com>
2402 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
2404 2021-06-20 Patrick Palka <ppalka@redhat.com>
2406 * include/std/ranges (__non_propagating_cache::operator bool):
2407 Define for split_view::begin().
2408 (split_view): Define as per P2210.
2409 (views::__detail::__can_split_view): Define.
2410 (views::_Split, views::split): Define.
2411 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
2413 * testsuite/std/ranges/adaptors/split.cc: New test.
2414 * testsuite/std/ranges/p2325.cc (test08a): New test.
2415 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
2417 2021-06-20 Patrick Palka <ppalka@redhat.com>
2419 * include/std/ranges: Rename views::split to views::lazy_split,
2420 split_view to lazy_split_view, etc. throughout.
2421 * testsuite/std/ranges/*: Likewise.
2422 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
2423 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
2425 2021-06-20 Patrick Palka <ppalka@redhat.com>
2427 * include/std/ranges (split_view::_OuterIter::__at_end):
2428 Check _M_trailing_empty.
2429 (split_view::_OuterIter::_M_trailing_empty): Define this
2431 (split_view::_OuterIter::operator++): Set _M_trailing_empty
2433 (split_view::_OuterIter::operator==): Compare
2435 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
2436 split parts instead of one.
2437 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
2439 2021-06-20 Patrick Palka <ppalka@redhat.com>
2441 * include/std/ranges (split_view::_InnerIter::base): Define as
2444 2021-06-19 Patrick Palka <ppalka@redhat.com>
2446 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
2447 Consider _Base instead of _Vp as per LWG 3555.
2448 (elements_view::_Iterator::_S_iter_concept): Likewise.
2450 2021-06-19 Patrick Palka <ppalka@redhat.com>
2452 * include/std/ranges (split_view::_OuterIter::value_type::begin):
2453 Remove the non-const overload, and remove the copyable constraint
2454 on the const overload as per LWG 3553.
2456 2021-06-19 Patrick Palka <ppalka@redhat.com>
2458 * include/bits/stl_iterator.h
2459 (__detail::__common_iter_use_postfix_proxy): Add
2460 move_constructible constraint as per LWG 3546.
2461 (common_iterator::__postfix_proxy): Adjust initializer of
2462 _M_keep as per LWG 3546.
2464 2021-06-18 Patrick Palka <ppalka@redhat.com>
2467 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
2468 to limit comparison complexity to 3*N/2.
2469 (__minmax_element_fn::operator()): Likewise.
2470 (shift_right): Avoid premature std::move of __result.
2471 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
2473 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
2476 2021-06-18 Patrick Palka <ppalka@redhat.com>
2478 * include/std/concepts (convertible_to): Just use declval as per
2481 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
2484 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
2485 incorrect static_assert with ones matching the 'Mandates'
2486 conditions in the standard.
2487 * testsuite/26_numerics/reduce/95833.cc: New test.
2489 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
2491 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
2492 diagnostic pragma to suppress -Wstringop-overread error.
2494 2021-06-18 Patrick Palka <ppalka@redhat.com>
2496 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
2497 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
2498 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
2499 * include/bits/ranges_util.h: ... here.
2500 * include/std/ranges (__detail::find, __detail::find_if)
2501 (__detail::find_if_not, __detail::mismatch): Remove.
2502 (filter_view): Use ranges::find_if instead.
2503 (drop_while_view): Use ranges::find_if_not instead.
2504 (split_view): Use ranges::find and ranges::mismatch instead.
2506 2021-06-18 Patrick Palka <ppalka@redhat.com>
2508 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
2509 default_initializable requirement.
2510 * include/bits/ranges_base.h (ranges::view): Likewise.
2511 * include/bits/ranges_util.h (subrange): Constrain the default
2513 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
2515 (front_insert_iterator): Likewise.
2516 (insert_iterator): Likewise. Remove NSDMIs.
2517 (common_iterator): Constrain the default ctor.
2518 (counted_iterator): Likewise.
2519 * include/bits/stream_iterator.h (ostream_iterator): Remove the
2521 * include/std/ranges (__detail::__box::operator=): Handle
2522 self-assignment in the primary template.
2523 (__detail::__box): In the partial specialization: adjust
2524 constraints as per P2325. Add specialized operator= for the
2525 case when the wrapped type is not copyable. Constrain the
2526 default ctor. Avoid list-initialization.
2527 (single_view): Constraint the default ctor.
2528 (iota_view): Relax semiregular constraint to copyable.
2529 Constrain the default ctor.
2530 (iota_view::_Iterator): Constraint the default ctor.
2531 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
2532 Remove redundant checks for empty _M_stream.
2533 (basic_istream_view::_Iterator): Likewise.
2534 (ref_view): Remove the default ctor. Remove NSDMIs.
2535 (ref_view::_Iterator): Constrain the default ctor.
2536 (__detail::__non_propagating_cache::operator=): Define overload
2537 for assigning from a value of the underlying type.
2538 (filter_view): Likewise.
2539 (filter_view::_Iterator): Likewise.
2540 (transform_view): Likewise.
2541 (transform_view::_Iterator): Likewise.
2542 (take_view): Likewise.
2543 (take_view::_Iterator): Likewise.
2544 (take_while_view): Likewise.
2545 (take_while_view::_Iterator): Likewise.
2546 (drop_while_view): Likewise.
2547 (drop_while_view::_Iterator): Likewise.
2548 (join_view): Likewise.
2549 (split_view::_OuterIter::__current): Adjust after changing the
2551 (split_view::_M_current): Wrap it in a __non_propagating_cache.
2552 (split_view::split_view): Constrain the default ctor.
2553 (common_view): Constrain the default ctor.
2554 (reverse_view): Likewise.
2555 (elements_view): Likewise.
2556 * include/std/span (enable_view<span<_ElementType, _Extent>>):
2557 Define this partial specialization to true unconditionally.
2558 * include/std/version (__cpp_lib_ranges): Adjust value.
2559 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
2560 Don't attempt to default construct a back_insert_iterator.
2561 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
2562 Don't attempt to default construct a front_insert_iterator.
2563 * testsuite/24_iterators/insert_iterator/constexpr.cc:
2564 Don't attempt to default construct an insert_iterator.
2565 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
2566 Remove this test for default constructibility of ostream_iterator.
2567 * testsuite/std/ranges/97600.cc: Don't attempt to default
2568 construct a basic_istream_view.
2569 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
2571 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
2572 (test02): Adjust now that __box is copyable-box not
2575 * testsuite/std/ranges/p2325.cc: New test.
2576 * testsuite/std/ranges/single_view.cc (test06): New test.
2577 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
2578 require default_initializable.
2580 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
2583 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
2584 define when is_constant_evaluated is available.
2585 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
2587 (__constant_string_p, __constant_array_p): Remove.
2588 (char_traits): Use is_constant_evaluated directly.
2589 * include/std/version (__cpp_lib_constexpr_char_traits)
2590 (__cpp_lib_constexpr_string): Only define when
2591 is_constant_evaluated is available.
2593 2021-06-17 Patrick Palka <ppalka@redhat.com>
2596 * include/std/ranges (__adaptor::_Partial): For the "simple"
2597 forwarding partial specializations, also require that
2598 the extra arguments are trivially copyable.
2599 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
2601 2021-06-17 Patrick Palka <ppalka@redhat.com>
2604 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
2605 template form of _S_has_simple_extra_args.
2606 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
2607 parameter pack. Try to treat _S_has_simple_extra_args as a
2608 variable template parameterized by _Args.
2609 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
2610 __adaptor_has_simple_extra_args.
2611 (views::_Take::_S_has_simple_extra_args): Templatize according
2612 to the type of the extra argument.
2613 (views::_Drop::_S_has_simple_extra_args): Likewise.
2614 (views::_Split::_S_has_simple_extra_args): Define.
2615 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
2616 Adjust after changes to _S_has_simple_extra_args mechanism.
2619 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
2621 * include/bits/iterator_concepts.h (__decay_copy): Name type.
2623 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
2625 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2626 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2627 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2628 (ranges::empty, ranges::data, ranges::cdata): Remove final
2629 keywords and deleted operator& overloads.
2630 * testsuite/24_iterators/customization_points/iter_move.cc: Use
2631 new is_customization_point_object function.
2632 * testsuite/24_iterators/customization_points/iter_swap.cc:
2634 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
2636 * testsuite/std/ranges/access/begin.cc: Likewise.
2637 * testsuite/std/ranges/access/cbegin.cc: Likewise.
2638 * testsuite/std/ranges/access/cdata.cc: Likewise.
2639 * testsuite/std/ranges/access/cend.cc: Likewise.
2640 * testsuite/std/ranges/access/crbegin.cc: Likewise.
2641 * testsuite/std/ranges/access/crend.cc: Likewise.
2642 * testsuite/std/ranges/access/data.cc: Likewise.
2643 * testsuite/std/ranges/access/empty.cc: Likewise.
2644 * testsuite/std/ranges/access/end.cc: Likewise.
2645 * testsuite/std/ranges/access/rbegin.cc: Likewise.
2646 * testsuite/std/ranges/access/rend.cc: Likewise.
2647 * testsuite/std/ranges/access/size.cc: Likewise.
2648 * testsuite/std/ranges/access/ssize.cc: Likewise.
2649 * testsuite/util/testsuite_iterators.h
2650 (is_customization_point_object): New function.
2652 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2654 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2655 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2656 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2657 (ranges::empty, ranges::data, ranges::cdata): Make types final.
2658 Add deleted operator& overloads.
2659 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
2661 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
2662 ill-formed & expressions with using-declarations. Add checks for
2663 other function objects.
2665 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2667 * include/bits/ranges_util.h (view_interface): Add noexcept to
2668 empty, operator bool, data and size members.
2669 (subrange): Add noexcept to constructors.
2670 * include/std/ranges (single_view, ref_view): Add noexcept to
2672 (views::single, views::all): Add noexcept.
2673 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
2674 * testsuite/std/ranges/single_view.cc: Likewise.
2676 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2678 * include/bits/ranges_util.h (subrange): Add __size_type typedef
2679 and use it to simplify declarations.
2680 (subrange(i, s, n)): Remove assertion.
2681 * testsuite/std/ranges/subrange/constexpr.cc: New test.
2683 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2685 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
2686 Replace with function object.
2687 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
2688 __decay_copy unqualified.
2689 * include/bits/ranges_base.h (__member_end, __adl_end):
2690 Likewise. Use __range_iter_t for type of ranges::begin.
2691 (__member_rend): Use correct value category for rbegin argument.
2692 (__member_data): Use __decay_copy unqualified.
2693 (__begin_data): Use __range_iter_t for type of ranges::begin.
2695 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2697 * include/bits/ranges_base.h (ranges::empty): Check whether
2698 conversion to bool can throw.
2699 * testsuite/std/ranges/access/empty.cc: Check for correct
2702 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2705 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
2706 use the type if it's a reference.
2707 * testsuite/20_util/common_reference/100894.cc: New test.
2709 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2711 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2712 Add dg-require-filesystem-ts directive.
2714 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2717 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
2718 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
2720 * testsuite/20_util/any/cons/101034.cc: New test.
2722 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2724 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
2725 -std=gnu++17 option.
2727 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2730 * libsupc++/compare (compare_partial_order_fallback): Add
2731 constraint using reversed parameter order, as per LWG 3465.
2732 * testsuite/18_support/comparisons/algorithms/fallback.cc:
2733 Adjust expected result.
2735 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2737 * libsupc++/compare (__decayed_same_as): New helper concept.
2738 (strong_order, weak_order, partial_order): Constrain with new
2739 concept instead of using static_assert.
2740 (compare_strong_order_fallback, compare_weak_order_fallback)
2741 (compare_partial_order_fallback): Likewise. Do not deduce return
2742 types. Remove redundant if-constexpr checks.
2743 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
2745 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2748 * include/std/tuple: Use reserved form of attribute name.
2749 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
2750 check for no_unique_address.
2751 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
2753 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
2756 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
2758 * include/bits/fs_path.h (operator==, operator<=>): Use new
2759 _S_compare function.
2760 (path::_S_compare): New function to call path::compare in a
2761 context where path::iterator is complete.
2762 * include/experimental/bits/fs_path.h (operator<, operator==):
2763 Define after path::iterator is complete.
2764 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
2766 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2769 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
2771 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
2772 test logic with constexpr check for is_always_lock_free.
2774 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
2777 * include/std/optional (optional::operator=(const optional<U>&)):
2778 Fix value category used in is_assignable check.
2779 * testsuite/20_util/optional/assignment/100982.cc: New test.
2781 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
2783 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
2784 * include/bits/iterator_concepts.h (indirectly_readable_traits):
2785 Add LWG issue number to comment.
2786 * include/std/memory_resource (polymorphic_allocator::release):
2788 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
2789 dg-warning for deprecation. Also check std::allocator<void>.
2791 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
2794 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
2795 Change parameter type from _Tp to _Tp*.
2796 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
2797 coverage of types tested.
2799 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
2801 * include/std/barrier (__tree_barrier::_M_arrive): Remove
2802 unnecessary hasher instantiation.
2804 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
2806 * include/experimental/propagate_const (swap): Constrain.
2807 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
2809 2021-06-07 Avi Kivity <avi@scylladb.com>
2812 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
2813 Add missing typename.
2815 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
2818 * include/std/optional (operator<=>(const optional<T>& const U&)):
2819 Add missing constraint and add workaround for template
2821 * testsuite/20_util/optional/relops/three_way.cc: Check that
2822 type without equality comparison cannot be compared when wrapped
2825 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
2828 * include/bits/ranges_base.h (_SSize): Return signed type.
2829 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
2831 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2833 * include/bits/ranges_base.h (_SSize): Return the result of
2834 ranges::size converted to the wider of make-signed-like-t<S> and
2835 ptrdiff_t, rather than the ranges different type.
2836 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
2837 for an iota_view that uses an integer class type for its
2840 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2843 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
2844 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
2846 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2849 * include/bits/iterator_concepts.h (__detail::__decay_copy)
2850 (__detail::__member_begin, __detail::__adl_begin): Move to
2851 namespace ranges::__cust_access.
2852 (__detail::__ranges_begin): Likewise, and rename to __begin.
2853 Remove redundant static assertion.
2854 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
2855 Use lvalue in noexcept specifier.
2856 (__as_const): Add non-deduced parameter for value category.
2857 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
2859 (__member_size, __adl_size, __member_empty, __size0_empty):
2860 (__eq_iter_empty, __adl_data): Use lvalue objects in
2862 (__sentinel_size): Likewise. Add check for conversion to
2864 (__member_data): Allow non-lvalue types to satisfy the concept,
2865 but use lvalue object in requirements.
2866 (_Size, _SSize): Remove forwarding to always use an lvalue.
2867 (_Data): Likewise. Add static assertion for arrays.
2868 * testsuite/std/ranges/access/cdata.cc: Adjust expected
2869 behaviour for rvalues. Add negative tests for ill-formed
2871 * testsuite/std/ranges/access/data.cc: Likewise.
2872 * testsuite/std/ranges/access/empty.cc: Adjust expected
2873 behaviour for rvalues.
2874 * testsuite/std/ranges/access/size.cc: Likewise.
2876 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
2878 * include/std/any (any::_Manager::_S_access): New static
2879 function to access the contained value.
2880 (any::emplace, __any_caster): Use _S_access member of the
2883 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2885 * doc/xml/manual/status_cxx2020.xml:
2886 * doc/html/*: Regenerate.
2887 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
2889 * include/std/version (__cpp_lib_generic_unordered_lookup):
2891 * testsuite/23_containers/unordered_map/operations/1.cc: Check
2893 * testsuite/23_containers/unordered_set/operations/1.cc:
2896 2021-06-03 Patrick Palka <ppalka@redhat.com>
2898 * include/bits/ranges_algo.h (__detail::__can_reread_output):
2899 Factor out this concept from ...
2900 (__unique_copy_fn::operator()): ... here. Use the concept
2902 * testsuite/std/ranges/range.cc: Remove now ill-formed use
2903 of range_value_t on an output_range.
2904 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2905 Define value_type, pointer and reference member types to void.
2907 2021-06-03 Patrick Palka <ppalka@redhat.com>
2910 * include/std/ranges (_RangeAdaptorClosure): Document
2911 _S_has_simple_call_op mechanism.
2912 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
2913 (__closure_has_simple_call_op): New concept.
2914 (__adaptor_has_simple_extra_args): Likewise.
2915 (_Partial<_Adaptor, _Args...>): New partial specialization.
2916 (_Partial<_Adaptor, _Arg>): Likewise.
2917 (_Pipe<_Lhs, _Rhs>): Likewise.
2918 (views::_All::_S_has_simple_call_op): Define to true.
2919 (views::_Filter::_S_has_simple_extra_args): Likewise.
2920 (views::_Transform::_S_has_simple_extra_args): Likewise.
2921 (views::_Take::_S_has_simple_extra_args): Likewise.
2922 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
2923 (views::_Drop::_S_has_simple_extra_args): Likewise.
2924 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
2925 (views::_Join::_S_has_simple_call_op): Likewise.
2926 (views::_Split): Document why we don't define
2927 _S_has_simple_extra_args to true for this adaptor.
2928 (views::_Common::_S_has_simple_call_op): Define to true.
2929 (views::_Reverse::_S_has_simple_call_op): Likewise.
2930 (views::_Elements::_S_has_simple_call_op): Likewise.
2931 * testsuite/std/ranges/adaptors/100577.cc: New test.
2933 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2937 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
2938 Value-initialize subobject.
2939 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
2941 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
2944 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2947 * testsuite/23_containers/unordered_map/96088.cc: Adjust
2948 expected number of allocations.
2949 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2951 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2953 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
2954 * doc/xml/manual/status_cxxtr1.xml: Likewise.
2955 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
2956 * doc/html/*: Regenerate.
2958 2021-06-01 Patrick Palka <ppalka@redhat.com>
2961 * testsuite/23_containers/deque/allocator/default_init.cc,
2962 testsuite/23_containers/forward_list/allocator/default_init.cc,
2963 testsuite/23_containers/list/allocator/default_init.cc,
2964 testsuite/23_containers/map/allocator/default_init.cc,
2965 testsuite/23_containers/set/allocator/default_init.cc,
2966 testsuite/23_containers/vector/allocator/default_init.cc,
2967 testsuite/23_containers/vector/bool/allocator/default_init.cc:
2970 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2972 * testsuite/23_containers/unordered_map/96088.cc: Change
2973 effective target to c++17.
2974 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2976 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2978 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
2979 isblank for C++11 and later.
2981 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2984 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
2985 Fix return value for no-op case.
2986 * testsuite/24_iterators/range_operations/advance.cc: Test
2987 return values of three-argument overload.
2989 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2992 * python/Makefile.am: Use archive name for printer hook if no
2993 dynamic library name is available.
2994 * python/Makefile.in: Regenerate.
2996 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
2998 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
2999 Compilers for Linux: Compatibility with GNU Compilers" article.
3000 * doc/html/manual/abi.html: Regenerate.
3002 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
3004 * include/debug/formatter.h
3005 (_Error_formatter::_Parameter::_Named): New.
3006 (_Error_formatter::_Parameter::_Type): Inherit latter.
3007 (_Error_formatter::_Parameter::_M_integer): Likewise.
3008 (_Error_formatter::_Parameter::_M_string): Likewise.
3009 * src/c++11/debug.cc: Include <cstring>.
3010 (_Print_func_t): New.
3011 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
3012 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
3013 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
3014 (print_type): Rename in...
3015 (print_type_info): ...this. Use pretty_print.
3016 (print_address, print_integer): New.
3017 (print_named_name, print_iterator_constness, print_iterator_state): New.
3018 (print_iterator_seq_type): New.
3019 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
3020 (print_field): Use latters.
3021 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
3022 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
3023 Change signature to...
3024 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
3025 ...this and adapt. Remove intermediate buffer to render input string.
3026 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
3028 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
3031 * include/bits/ranges_base.h (advance, distance, next, prev):
3032 Replace function templates with function objects.
3033 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
3034 Adjust for changes to function objects.
3035 * testsuite/std/ranges/adaptors/elements.cc: Add using
3036 declarations for names from namespace ranges.
3037 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3038 * testsuite/24_iterators/range_operations/100768.cc: New test.
3040 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
3043 * include/bits/hashtable_policy.h (_Select2nd): New.
3044 (_NodeBuilder<>): New.
3045 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
3046 (_AllocNode<>::operator()): Likewise.
3047 * include/bits/hashtable.h
3048 (_Hashtable<>::__node_builder_t): New.
3049 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
3051 (_Hashtable<>::_S_forward_key): New.
3052 (_Hashtable<>::_M_insert): Use latter.
3053 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
3054 Instantiate node first, compute hash code second.
3055 * testsuite/23_containers/unordered_map/96088.cc: New test.
3056 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
3057 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
3058 * testsuite/23_containers/unordered_set/96088.cc: New test.
3059 * testsuite/util/replacement_memory_operators.h
3060 (counter::_M_increment): New.
3061 (counter::_M_decrement): New.
3062 (counter::reset()): New.
3064 2021-05-24 Patrick Palka <ppalka@redhat.com>
3067 * include/std/ranges (__detail::__non_propagating_cache): Move
3068 definition up to before that of _CachedPosition. Make base
3069 class _Optional_base protected instead of private. Add const
3070 overload for operator*.
3071 (__detail::_CachedPosition): Rewrite the partial specialization
3072 for forward ranges as a derived class of __non_propagating_cache.
3073 Remove the size constraint on the partial specialization for
3074 random access ranges. Add copy/move/copy-assignment/move-assignment
3075 members to the offset partial specialization for random
3076 access ranges that propagate the cached value but additionally
3077 invalidate it in the source object on move.
3078 * testsuite/std/ranges/adaptors/100479.cc: New test.
3080 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
3082 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
3083 call to ranges::next.
3084 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
3085 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
3087 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
3090 2021-05-21 Patrick Palka <ppalka@redhat.com>
3093 * include/std/ranges (drop_while_view::begin): Assert the
3094 precondition added by LWG 3490.
3096 2021-05-21 Patrick Palka <ppalka@redhat.com>
3099 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
3100 Split out this member function from ...
3101 (iota_view::_Sentinel::operator-): ... here, for sake of access
3103 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
3105 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3107 * include/bits/random.tcc (__representable_as_double)
3108 (__p1_representable_as_double): Add "" to static asserts.
3110 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3113 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
3114 (__glibcxx_constexpr_assert): ... this.
3115 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
3116 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
3117 or __glibcxx_assert_impl.
3118 (__glibcxx_assert_2): Remove
3119 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
3120 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
3121 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3122 Adjust expected error.
3123 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3125 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3128 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3130 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3132 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3134 * testsuite/23_containers/span/back_neg.cc: Likewise.
3135 * testsuite/23_containers/span/front_neg.cc: Likewise.
3136 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
3138 2021-05-20 Patrick Palka <ppalka@redhat.com>
3141 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
3142 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
3143 (reverse_iterator::reference): Likewise, but with iter_reference_t.
3144 (reverse_iterator::value_type): Likewise, but with iter_value_t.
3145 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
3146 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
3148 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
3151 * include/std/charconv (to_chars): Hide the overloads for
3152 floating-point types for 16 bit targets.
3153 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
3154 * testsuite/20_util/to_chars/double.cc: Run this test only on
3156 * testsuite/20_util/to_chars/float.cc: Likewise.
3157 * testsuite/20_util/to_chars/long_double.cc: Likewise.
3159 2021-05-18 Patrick Palka <ppalka@redhat.com>
3162 * include/std/ranges (elements_view::_Sentinel::operator-): Use
3163 _M_distance_from in the other operator- overload too.
3164 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
3166 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
3168 * testsuite/lib/prune.exp: Add note about 'dg-note'.
3170 2021-05-18 Patrick Palka <ppalka@redhat.com>
3173 * include/std/ranges (__box::__box): Use non-list-initialization
3174 in member initializer list of in-place constructor of the
3175 partial specialization for semiregular types.
3176 (__box::operator->): Use std::__addressof.
3177 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
3179 * testsuite/std/ranges/single_view.cc (test04): New test.
3181 2021-05-18 Patrick Palka <ppalka@redhat.com>
3184 * include/std/ranges (reverse_view::_S_needs_cached_begin):
3185 Set to true if the underlying non-common random-access range
3186 doesn't have a sized sentinel.
3188 2021-05-18 Patrick Palka <ppalka@redhat.com>
3191 * include/std/ranges (elements_view::_Iterator): Also befriend
3193 (elements_view::_Sentinel::_M_equal): Templatize.
3194 (elements_view::_Sentinel::_M_distance_from): Split out from ...
3195 (elements_view::_Sentinel::operator-): ... here. Depend on
3196 _Base2 instead of _Base in the return type.
3197 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
3200 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
3202 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
3203 until value change observed.
3204 (__waiter_base::_M_laundered): New member.
3205 (__waiter_base::_M_notify): Check _M_laundered to determine
3206 whether to wake one or all.
3207 (__detail::__atomic_compare): Return true if call to
3208 __builtin_memcmp() == 0.
3209 (__waiter_base::_S_do_spin_v): Adjust predicate.
3210 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
3213 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3216 * include/experimental/bits/fs_path.h (__is_constructible_from):
3217 Test construction from a const lvalue, not an rvalue.
3218 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
3219 * testsuite/experimental/filesystem/path/construct/100630.cc:
3222 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
3225 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
3226 Declare (but do not define) partial specialization.
3227 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
3229 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3231 * include/std/thread (jthread::_S_create): Fix static assert
3233 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
3234 * testsuite/30_threads/jthread/jthread.cc: Do not require
3235 pthread effective target.
3236 * testsuite/30_threads/jthread/2.cc: Moved to...
3237 * testsuite/30_threads/jthread/version.cc: ...here.
3239 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3241 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
3242 * doc/Makefile.in: Regenerate.
3243 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
3245 * scripts/run_doxygen (print_usage): Always print to stdout and
3247 (fail): New function for exiting on error.
3248 (parse_options): Handle --latex_cmd. Do not treat --help the
3249 same as errors. Simplify handling of required arguments.
3251 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
3253 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3254 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
3255 warnings. Replace bitwise AND with logical AND in loop
3257 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3258 Replace bitwise AND with logical AND in loop condition.
3259 * testsuite/util/pstl/test_utils.h: Remove unused parameter
3262 2021-05-11 Patrick Palka <ppalka@redhat.com>
3264 * src/c++17/ryu/LOCAL_PATCHES: Update.
3265 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
3266 Remove declarations for never-defined functions.
3267 * testsuite/20_util/to_chars/4.cc: New test.
3269 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
3271 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
3272 alternative for macro.
3273 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
3275 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
3278 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
3280 * include/bits/allocator.h (allocator<void>) [C++20]: Add
3281 missing noexcept to constructor. Restore missing POCMA and
3282 is_always_equal_traits.
3283 [C++17]: Make construct and destroy members private and
3284 declare allocator_traits as a friend.
3285 * include/bits/memoryfwd.h (allocator_traits): Declare.
3286 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
3287 Add nodiscard attribute. Add static assertion for LWG 3307.
3288 * include/ext/new_allocator.h (new_allocator::allocate): Add
3289 static assertion for LWG 3307.
3290 * testsuite/20_util/allocator/void.cc: Check that converting
3291 constructor is noexcept. Check for propagation traits and
3292 size_type and difference_type. Check that pointer and
3293 const_pointer are gone in C++20.
3295 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3297 * include/std/stop_token: Remove TODO comment.
3299 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3301 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
3302 Initialize a non-reference deleter from an rvalue, as per LWG
3304 (__shared_ptr::_UniqCompatible): Add missing constraint.
3305 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
3306 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
3309 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3311 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
3312 -std=gnu++17 from dg-options directive.
3313 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
3315 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
3317 * testsuite/17_intro/headers/c++2017/operator_names.cc:
3319 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
3320 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
3321 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
3323 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
3324 * testsuite/18_support/byte/81076.cc: Likewise.
3325 * testsuite/18_support/byte/global_neg.cc: Likewise.
3326 * testsuite/18_support/byte/ops.cc: Likewise.
3327 * testsuite/18_support/byte/requirements.cc: Likewise.
3328 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
3329 * testsuite/18_support/launder/1.cc: Likewise.
3330 * testsuite/18_support/launder/nodiscard.cc: Likewise.
3331 * testsuite/18_support/launder/requirements.cc: Likewise.
3332 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
3333 * testsuite/18_support/new_aligned.cc: Likewise.
3334 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
3336 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
3338 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
3339 * testsuite/20_util/addressof/requirements/constexpr.cc:
3341 * testsuite/20_util/as_const/1.cc: Likewise.
3342 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
3343 * testsuite/20_util/bind/83427.cc: Likewise.
3344 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
3345 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
3346 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
3348 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
3350 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
3351 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
3353 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
3354 * testsuite/20_util/from_chars/requirements.cc: Likewise.
3355 * testsuite/20_util/function/91456.cc: Likewise.
3356 * testsuite/20_util/function/cons/deduction.cc: Likewise.
3357 * testsuite/20_util/function_objects/83607.cc: Likewise.
3358 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
3359 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
3360 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
3361 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
3362 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
3364 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
3366 * testsuite/20_util/has_unique_object_representations/value.cc:
3368 * testsuite/20_util/hash/nullptr.cc: Likewise.
3369 * testsuite/20_util/in_place/requirements.cc: Likewise.
3370 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
3371 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
3373 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
3375 * testsuite/20_util/is_aggregate/value.cc: Likewise.
3376 * testsuite/20_util/is_invocable/83395.cc: Likewise.
3377 * testsuite/20_util/is_invocable/91456.cc: Likewise.
3378 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
3380 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
3382 * testsuite/20_util/is_invocable/value.cc: Likewise.
3383 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
3384 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
3385 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
3386 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
3388 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
3389 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
3390 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
3392 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
3394 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
3395 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
3397 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
3399 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
3401 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
3403 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
3405 * testsuite/20_util/is_swappable/value.cc: Likewise.
3406 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
3408 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
3410 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
3411 * testsuite/20_util/logical_traits/83134.cc: Likewise.
3412 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
3414 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
3416 * testsuite/20_util/logical_traits/value.cc: Likewise.
3417 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
3418 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
3419 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
3421 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
3422 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
3423 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
3424 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
3425 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
3427 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
3429 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
3430 * testsuite/20_util/to_chars/3.cc: Likewise.
3431 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
3432 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
3433 * testsuite/20_util/to_chars/requirements.cc: Likewise.
3434 * testsuite/20_util/tuple/78939.cc: Likewise.
3435 * testsuite/20_util/tuple/apply/1.cc: Likewise.
3436 * testsuite/20_util/tuple/apply/2.cc: Likewise.
3437 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
3438 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
3439 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
3440 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
3441 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
3442 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
3443 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
3445 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
3446 * testsuite/20_util/void_t/1.cc: Likewise.
3447 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
3448 * testsuite/24_iterators/container_access.cc: Likewise.
3449 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
3451 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
3453 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
3455 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
3457 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
3458 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
3460 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
3461 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
3463 * testsuite/26_numerics/lcm/1.cc: Likewise.
3464 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
3465 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
3466 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
3468 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
3470 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
3472 * testsuite/27_io/types/4.cc: Likewise.
3473 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
3474 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
3475 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3477 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3479 * testsuite/20_util/function_objects/searchers.cc: Remove
3480 -std=gnu++17 from dg-options directive.
3481 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
3483 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3485 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
3487 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
3489 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
3491 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
3493 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
3495 * testsuite/25_algorithms/clamp/1.cc: Likewise.
3496 * testsuite/25_algorithms/clamp/2.cc: Likewise.
3497 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
3498 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
3500 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
3502 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
3503 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
3505 * testsuite/25_algorithms/sample/1.cc: Likewise.
3506 * testsuite/25_algorithms/sample/2.cc: Likewise.
3507 * testsuite/25_algorithms/sample/3.cc: Likewise.
3508 * testsuite/25_algorithms/sample/81221.cc: Likewise.
3509 * testsuite/25_algorithms/search/searcher.cc: Likewise.
3510 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
3511 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
3512 * testsuite/26_numerics/reduce/1.cc: Likewise.
3513 * testsuite/26_numerics/reduce/2.cc: Likewise.
3514 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
3515 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
3516 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
3518 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3520 * testsuite/23_containers/array/cons/deduction.cc: Remove
3521 -std=gnu++17 from dg-options directive.
3522 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
3523 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
3525 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
3527 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
3529 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
3530 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
3532 * testsuite/23_containers/forward_list/cons/deduction.cc:
3534 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
3536 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
3537 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
3539 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
3540 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
3541 * testsuite/23_containers/map/modifiers/insert/83226.cc:
3543 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
3545 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
3546 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
3548 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3549 * testsuite/23_containers/multimap/modifiers/extract.cc:
3551 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
3552 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3553 * testsuite/23_containers/multiset/modifiers/extract.cc:
3555 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
3556 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
3557 * testsuite/23_containers/queue/deduction.cc: Likewise.
3558 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
3560 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3561 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
3562 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
3563 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
3564 * testsuite/23_containers/stack/deduction.cc: Likewise.
3565 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
3567 * testsuite/23_containers/unordered_map/cons/deduction.cc:
3569 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
3571 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
3573 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
3575 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
3577 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3579 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
3581 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
3583 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3585 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
3587 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
3589 * testsuite/23_containers/unordered_set/cons/deduction.cc:
3591 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
3593 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
3595 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
3597 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
3598 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
3599 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
3602 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3604 * testsuite/21_strings/basic_string/79162.cc: Remove
3605 -std=gnu++17 from dg-options directive.
3606 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
3607 * testsuite/21_strings/basic_string/cons/char/79162.cc:
3609 * testsuite/21_strings/basic_string/cons/char/86138.cc:
3611 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
3612 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
3614 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
3616 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
3617 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
3619 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
3621 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
3622 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
3624 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
3626 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
3627 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
3628 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
3629 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
3631 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
3633 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
3635 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
3637 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
3639 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
3641 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
3643 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
3645 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
3647 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
3649 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
3651 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
3653 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
3655 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
3657 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
3659 * testsuite/21_strings/basic_string/operators/char/5.cc:
3661 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
3663 * testsuite/21_strings/basic_string_view/capacity/1.cc:
3665 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
3667 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
3669 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
3671 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
3673 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
3675 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
3677 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
3679 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
3681 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
3683 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
3685 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
3687 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3689 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
3691 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3693 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
3695 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
3697 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
3699 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3701 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3703 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3705 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3707 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
3709 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3711 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
3713 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
3715 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3717 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
3718 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
3720 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
3722 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
3724 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
3726 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
3728 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
3730 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
3732 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
3734 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
3736 * testsuite/21_strings/basic_string_view/literals/types.cc:
3738 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
3740 * testsuite/21_strings/basic_string_view/literals/values.cc:
3742 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3744 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3746 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3748 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3750 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
3752 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
3754 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
3756 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
3758 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
3760 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
3762 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
3764 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
3766 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
3768 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
3770 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
3772 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
3774 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
3776 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
3778 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3780 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3782 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
3784 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
3786 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
3788 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
3790 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
3792 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
3794 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
3796 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
3798 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
3800 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
3802 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
3804 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
3806 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
3808 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
3810 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
3812 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
3814 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
3816 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3818 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
3820 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3822 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
3824 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
3826 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
3828 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
3830 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
3832 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3834 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3836 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3838 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3840 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3842 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3844 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
3846 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3848 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
3850 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
3852 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
3853 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
3854 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
3856 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
3858 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3860 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
3861 from dg-options directive.
3862 * testsuite/20_util/memory_resource/2.cc: Likewise.
3863 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
3864 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
3866 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
3868 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
3870 * testsuite/20_util/monotonic_buffer_resource/release.cc:
3872 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
3874 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
3875 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
3877 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3878 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
3879 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
3881 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
3883 * testsuite/20_util/synchronized_pool_resource/cons.cc:
3885 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
3887 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
3889 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
3891 * testsuite/20_util/synchronized_pool_resource/options.cc:
3893 * testsuite/20_util/synchronized_pool_resource/release.cc:
3895 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
3897 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
3899 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
3901 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
3903 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
3905 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
3907 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
3909 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3911 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3912 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
3914 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3916 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
3918 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3919 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
3920 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3921 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
3922 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3923 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
3925 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3926 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
3928 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3929 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
3930 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3932 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
3934 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3936 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
3938 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3940 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
3942 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3944 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
3946 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3947 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
3949 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3951 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3953 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
3955 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
3956 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
3957 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
3958 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
3959 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
3960 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
3961 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
3962 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
3964 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
3966 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
3967 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
3968 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
3970 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
3971 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
3973 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
3974 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
3975 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
3976 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
3978 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3980 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
3981 dg-options directive.
3982 * testsuite/20_util/any/assign/2.cc: Likewise.
3983 * testsuite/20_util/any/assign/emplace.cc: Likewise.
3984 * testsuite/20_util/any/assign/exception.cc: Likewise.
3985 * testsuite/20_util/any/assign/self.cc: Likewise.
3986 * testsuite/20_util/any/cons/1.cc: Likewise.
3987 * testsuite/20_util/any/cons/2.cc: Likewise.
3988 * testsuite/20_util/any/cons/90415.cc: Likewise.
3989 * testsuite/20_util/any/cons/92156.cc: Likewise.
3990 * testsuite/20_util/any/cons/aligned.cc: Likewise.
3991 * testsuite/20_util/any/cons/explicit.cc: Likewise.
3992 * testsuite/20_util/any/cons/in_place.cc: Likewise.
3993 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
3994 * testsuite/20_util/any/make_any.cc: Likewise.
3995 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3996 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
3997 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
3998 * testsuite/20_util/any/misc/swap.cc: Likewise.
3999 * testsuite/20_util/any/modifiers/1.cc: Likewise.
4000 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
4001 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
4002 * testsuite/20_util/any/observers/type.cc: Likewise.
4003 * testsuite/20_util/any/requirements.cc: Likewise.
4004 * testsuite/20_util/any/typedefs.cc: Likewise.
4005 * testsuite/20_util/optional/77288.cc: Likewise.
4006 * testsuite/20_util/optional/84601.cc: Likewise.
4007 * testsuite/20_util/optional/assignment/1.cc: Likewise.
4008 * testsuite/20_util/optional/assignment/2.cc: Likewise.
4009 * testsuite/20_util/optional/assignment/3.cc: Likewise.
4010 * testsuite/20_util/optional/assignment/4.cc: Likewise.
4011 * testsuite/20_util/optional/assignment/5.cc: Likewise.
4012 * testsuite/20_util/optional/assignment/6.cc: Likewise.
4013 * testsuite/20_util/optional/assignment/7.cc: Likewise.
4014 * testsuite/20_util/optional/assignment/8.cc: Likewise.
4015 * testsuite/20_util/optional/assignment/9.cc: Likewise.
4016 * testsuite/20_util/optional/bad_access.cc: Likewise.
4017 * testsuite/20_util/optional/cons/77727.cc: Likewise.
4018 * testsuite/20_util/optional/cons/85642.cc: Likewise.
4019 * testsuite/20_util/optional/cons/copy.cc: Likewise.
4020 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
4021 * testsuite/20_util/optional/cons/default.cc: Likewise.
4022 * testsuite/20_util/optional/cons/move.cc: Likewise.
4023 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
4024 * testsuite/20_util/optional/cons/value.cc: Likewise.
4025 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
4026 * testsuite/20_util/optional/constexpr/cons/default.cc:
4028 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
4029 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
4030 * testsuite/20_util/optional/constexpr/make_optional.cc:
4032 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
4033 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
4034 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
4035 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
4036 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
4037 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
4038 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
4039 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
4040 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
4041 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
4042 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
4043 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
4044 * testsuite/20_util/optional/hash.cc: Likewise.
4045 * testsuite/20_util/optional/in_place.cc: Likewise.
4046 * testsuite/20_util/optional/make_optional.cc: Likewise.
4047 * testsuite/20_util/optional/nullopt.cc: Likewise.
4048 * testsuite/20_util/optional/observers/1.cc: Likewise.
4049 * testsuite/20_util/optional/observers/2.cc: Likewise.
4050 * testsuite/20_util/optional/observers/3.cc: Likewise.
4051 * testsuite/20_util/optional/observers/4.cc: Likewise.
4052 * testsuite/20_util/optional/observers/5.cc: Likewise.
4053 * testsuite/20_util/optional/observers/6.cc: Likewise.
4054 * testsuite/20_util/optional/relops/1.cc: Likewise.
4055 * testsuite/20_util/optional/relops/2.cc: Likewise.
4056 * testsuite/20_util/optional/relops/3.cc: Likewise.
4057 * testsuite/20_util/optional/relops/4.cc: Likewise.
4058 * testsuite/20_util/optional/relops/5.cc: Likewise.
4059 * testsuite/20_util/optional/relops/6.cc: Likewise.
4060 * testsuite/20_util/optional/relops/7.cc: Likewise.
4061 * testsuite/20_util/optional/requirements.cc: Likewise.
4062 * testsuite/20_util/optional/swap/1.cc: Likewise.
4063 * testsuite/20_util/optional/swap/2.cc: Likewise.
4064 * testsuite/20_util/optional/typedefs.cc: Likewise.
4065 * testsuite/20_util/variant/80165.cc: Likewise.
4066 * testsuite/20_util/variant/85183.cc: Likewise.
4067 * testsuite/20_util/variant/86874.cc: Likewise.
4068 * testsuite/20_util/variant/87431.cc: Likewise.
4069 * testsuite/20_util/variant/87619.cc: Likewise.
4070 * testsuite/20_util/variant/91807.cc: Likewise.
4071 * testsuite/20_util/variant/any.cc: Likewise.
4072 * testsuite/20_util/variant/compile.cc: Likewise.
4073 * testsuite/20_util/variant/deduction.cc: Likewise.
4074 * testsuite/20_util/variant/exception_safety.cc: Likewise.
4075 * testsuite/20_util/variant/hash.cc: Likewise.
4076 * testsuite/20_util/variant/index_type.cc: Likewise.
4077 * testsuite/20_util/variant/relops/89851.cc: Likewise.
4078 * testsuite/20_util/variant/relops/90008.cc: Likewise.
4079 * testsuite/20_util/variant/run.cc: Likewise.
4080 * testsuite/20_util/variant/visit.cc: Likewise.
4082 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4084 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
4085 -std=gnu++17 from dg-options directive.
4086 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
4087 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
4088 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
4089 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
4090 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
4091 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
4092 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
4093 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
4095 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
4096 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
4097 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
4098 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
4099 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
4100 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
4102 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
4103 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
4105 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4107 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
4108 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
4109 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
4110 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
4111 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
4112 * testsuite/27_io/filesystem/operations/create_directories.cc:
4114 * testsuite/27_io/filesystem/operations/create_directory.cc:
4116 * testsuite/27_io/filesystem/operations/create_symlink.cc:
4118 * testsuite/27_io/filesystem/operations/current_path.cc:
4120 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
4121 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
4122 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
4123 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
4124 * testsuite/27_io/filesystem/operations/last_write_time.cc:
4126 * testsuite/27_io/filesystem/operations/permissions.cc:
4128 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
4129 * testsuite/27_io/filesystem/operations/read_symlink.cc:
4131 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
4132 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
4133 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
4134 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
4135 * testsuite/27_io/filesystem/operations/resize_file.cc:
4137 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
4138 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
4139 * testsuite/27_io/filesystem/operations/symlink_status.cc:
4141 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
4143 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
4145 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
4146 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
4147 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
4148 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
4149 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
4150 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
4151 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
4152 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
4153 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
4154 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
4155 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
4156 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
4157 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
4158 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
4159 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
4160 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
4161 * testsuite/27_io/filesystem/path/construct/default.cc:
4163 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
4164 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
4165 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
4166 * testsuite/27_io/filesystem/path/construct/string_view.cc:
4168 * testsuite/27_io/filesystem/path/decompose/extension.cc:
4170 * testsuite/27_io/filesystem/path/decompose/filename.cc:
4172 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4174 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
4176 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
4178 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
4180 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
4182 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
4183 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
4185 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
4186 * testsuite/27_io/filesystem/path/generation/normal.cc:
4188 * testsuite/27_io/filesystem/path/generation/normal2.cc:
4190 * testsuite/27_io/filesystem/path/generation/proximate.cc:
4192 * testsuite/27_io/filesystem/path/generation/relative.cc:
4194 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
4195 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
4197 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
4198 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
4199 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
4200 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
4201 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
4202 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
4203 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
4205 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
4207 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
4209 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
4211 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
4212 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
4213 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
4215 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
4216 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
4217 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
4218 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
4220 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
4221 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
4222 * testsuite/27_io/filesystem/path/query/has_extension.cc:
4224 * testsuite/27_io/filesystem/path/query/has_filename.cc:
4226 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
4228 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
4230 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
4232 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
4234 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
4236 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
4237 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
4239 * testsuite/27_io/filesystem/path/query/is_relative.cc:
4241 * testsuite/experimental/filesystem/path/construct/string_view.cc:
4244 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4246 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
4247 Remove -std=gnu++17 from dg-options.
4248 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
4250 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
4252 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
4254 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
4255 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
4257 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
4259 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
4261 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
4263 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
4265 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
4267 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
4269 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
4271 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
4273 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
4275 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
4277 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
4279 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
4281 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
4283 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
4285 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
4287 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
4289 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
4291 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
4293 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
4295 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
4297 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
4299 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
4301 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
4303 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4305 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
4307 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
4309 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
4311 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
4313 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
4315 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
4317 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
4319 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
4321 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4323 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
4325 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
4326 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
4328 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
4330 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
4332 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
4334 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
4336 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
4337 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
4338 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
4339 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
4340 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
4341 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
4342 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
4343 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
4345 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
4346 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
4347 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
4349 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
4352 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4354 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
4355 for additional errors in C++20.
4356 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4358 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
4359 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
4361 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4363 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
4364 clash with std::any.
4366 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
4368 * include/std/istream (__rvalue_stream_extraction_t): Replace
4369 use of __rval_streamable.
4370 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
4371 (__rval_streamable): Remove.
4372 (_Require_derived_from_ios_base, __derived_from_ios_base): New
4373 helper for checking constraints.
4374 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
4375 reference to the wrong subclause of the standard.
4376 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
4378 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
4380 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
4382 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
4384 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
4387 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
4389 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
4390 Improve static_assert messages.
4391 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
4392 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
4394 2021-05-06 Patrick Palka <ppalka@redhat.com>
4396 * include/std/ranges (filter_view::_Iterator::base): Make the
4397 const& overload unconstrained and return a const reference as
4398 per LWG 3533. Make unconditionally noexcept.
4399 (transform_view::_Iterator::base): Likewise.
4400 (elements_view::_Iterator::base): Likewise.
4402 2021-05-06 Patrick Palka <ppalka@redhat.com>
4404 * include/bits/stl_iterator.h (move_iterator::base): Make the
4405 const& overload unconstrained and return a const reference as
4406 per LWG 3391. Make unconditionally noexcept.
4407 (counted_iterator::base): Likewise.
4408 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
4409 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
4410 has_member_base concept to decay-copy the result of base().
4412 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
4414 * include/std/type_traits (remove_cvref_t): Define in terms of
4416 * testsuite/20_util/remove_cvref/value.cc: Check alias.
4418 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
4421 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
4423 * include/std/charconv (__from_chars_alnum): Pass unsigned
4424 char to std::isdigit.
4426 2021-05-05 Patrick Palka <ppalka@redhat.com>
4428 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
4429 Remove constraints on this partial specialization.
4430 * include/std/ranges (enable_borrowed_range<iota_view>):
4433 2021-05-05 Patrick Palka <ppalka@redhat.com>
4435 * include/std/ranges (transform_view::_Iterator::iter_swap):
4436 Remove as per LWG 3520.
4437 (join_view::_Iterator::iter_swap): Add indirectly_swappable
4438 constraint as per LWG 3517.
4440 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
4442 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
4444 * testsuite/20_util/function_objects/invoke/version.cc: New test.
4446 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
4448 * include/std/charconv (__from_chars_alnum): Pass unsigned
4449 char to std::isdigit.
4451 2021-05-05 Corentin Gay <gay@adacore.com>
4453 * acinclude.m4: Add VxWorks-specific case for the
4454 configuration of ctypes.
4455 * configure: Regenerate.
4456 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
4458 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
4459 * config/os/vxworks/ctype_configure_char.cc: Likewise.
4460 * config/os/vxworks/ctype_inline.h: Likewise.
4461 * testsuite/28_regex/traits/char/isctype.cc: Defines
4462 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
4463 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
4465 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4467 * include/std/future (promise::set_value): Check for existence
4468 of shared state before dereferncing it.
4469 (promise::set_exception, promise::set_value_at_thread_exit)
4470 (promise::set_exception_at_thread_exit): Likewise.
4471 (promise<R&>::set_value, promise<R&>::set_exception)
4472 (promise<R&>::set_value_at_thread_exit)
4473 (promise<R&>::set_exception_at_thread_exit): Likewise.
4474 (promise<void>::set_value, promise<void>::set_exception)
4475 (promise<void>::set_value_at_thread_exit)
4476 (promise<void>::set_exception_at_thread_exit): Likewise.
4477 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
4478 Remove unused variable.
4480 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4482 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
4483 Do not do arithmetic on null pointer.
4485 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4487 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
4488 (find_key_pointer(key_const_reference, false_type))
4489 (find_key_pointer(key_const_reference, true_type)): Do not
4490 dereference null pointer.
4492 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4494 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
4496 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
4497 non-zero value to null pointer.
4498 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
4499 Use past-the-end iterator for result.
4500 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
4501 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
4503 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4506 * include/std/variant (__get_t): New alias template yielding the
4507 return type of std::get<N> on a variant.
4508 (__visit_result_t): New alias template yielding the result of
4510 (__same_types): Move into namespace __detail::__variant.
4511 (__check_visitor_results): Likewise. Use __invoke_result_t and
4513 (__check_visitor_result): Remove.
4514 (visit): Use __visit_result_t for return type.
4515 * testsuite/20_util/variant/100384.cc: New test.
4517 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4519 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
4520 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
4521 * config.h.in: Regenerate.
4522 * configure: Regenerate.
4523 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
4524 * include/bits/random.h (_Select_uint_least_t<s, 1>):
4525 Use __SIZEOF_INT128__ to decide whether to use __int128.
4526 * include/std/charconv (__to_chars_unsigned_type): Likewise.
4528 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
4530 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
4531 * doc/html/manual/facets.html: Regenerate.
4533 2021-04-30 Patrick Palka <ppalka@redhat.com>
4535 * include/std/ranges (__detail::__non_propating_cache): Define
4537 (join_view): Remove constraints on the value and reference types
4538 of the wrapped iterator type as per P2328.
4539 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
4540 (join_view::_Iterator::operator++): Likewise.
4541 (join_view::_M_inner): Use __non_propating_cache as per P2328.
4542 Remove now-redundant use of __maybe_present_t.
4543 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
4546 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4548 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
4549 Only define for C++17 and later.
4550 * include/std/version (__cpp_lib_semaphore): Fix condition
4551 to match the one in <semaphore>.
4553 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4555 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
4556 * config.h.in: Regenerate.
4557 * configure: Regenerate.
4558 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
4559 * include/bits/postypes.h: Remove include of <stdint.h> and
4560 definition/undefinition of the __STDC_LIMIT_MACROS and
4561 __STDC_CONSTANT_MACROS macros.
4562 (streamoff): Use __INT64_TYPE__ if defined.
4564 2021-04-30 Patrick Palka <ppalka@redhat.com>
4566 * include/std/ranges (split_view::_InnerIter::operator++):
4567 Depend on _Base instead of _Vp directly, as per LWG 3532.
4569 2021-04-30 Patrick Palka <ppalka@redhat.com>
4571 * include/bits/ranges_util.h (subrange::subrange): Avoid
4572 list-initialization in delegating constructor.
4573 * include/std/ranges (single_view): Replace implicit guide
4574 with explicit deduction guide that decays its argument.
4575 (_Single::operator()): Avoid CTAD when constructing the
4577 (_Iota::operator()): Avoid list-initialization.
4578 (__detail::__can_filter_view, _Filter::operator()): Likewise.
4579 (__detail::__can_transform_view, _Transform::operator()): Likewise.
4580 (take_view::begin): Likewise.
4581 (__detail::__can_take_view, _Take::operator()): Likewise.
4582 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
4583 (__detail::__can_drop_view, _Drop::operator()): Likewise.
4584 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
4585 (split_view::split_view): Use views::single when initializing
4587 (__detail::__can_split_view, _Split::operator()): Avoid
4588 list-initialization.
4589 (_Counted::operator()): Likewise.
4590 * testsuite/std/ranges/p2367.cc: New test.
4592 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4595 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
4597 * include/bits/basic_string.tcc (basic_string::swap)
4598 (basic_string::assign): Likewise.
4599 * include/bits/deque.tcc (deque::operator=(const deque&)):
4601 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
4603 * include/bits/vector.tcc (vector::operator=(const vector&)):
4606 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4608 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
4610 * include/std/ostream (operator<<(Ostream&&, const x&)):
4612 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
4613 Adjust dg-error pattern.
4614 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
4616 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
4617 is_extractable trait to replace std::__is_extractable. Make it
4618 work with rvalue streams as well as lvalues, to replace f() and
4619 g() helper functions.
4620 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
4622 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
4623 Define is_insertable trait to replace std::__is_insertable. Make
4624 it work with rvalue streams as well as lvalues, to replace f()
4625 and g() helper functions.
4626 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
4628 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
4629 errors from new constraints.
4630 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
4631 which are no longer expected to compile.
4632 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
4633 Verify LWG 1203 changes.
4635 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4638 * include/experimental/socket (__basic_socket_impl::set_option)
4639 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
4640 Just set error code.
4641 * testsuite/experimental/net/socket/socket_base.cc: CHeck
4642 for <sys/socket.h> not <socket.h>.
4644 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4649 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
4650 Use new effective-target keyword.
4651 * testsuite/experimental/net/internet/address/v4/cons.cc:
4653 * testsuite/experimental/net/internet/address/v4/creation.cc:
4655 * testsuite/experimental/net/internet/address/v4/members.cc:
4657 * testsuite/experimental/net/internet/address/v6/members.cc:
4659 * testsuite/experimental/net/internet/resolver/base.cc:
4661 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
4663 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
4665 * testsuite/experimental/net/internet/socket/opt.cc:
4667 * testsuite/experimental/net/internet/tcp.cc:
4669 * testsuite/experimental/net/internet/udp.cc:
4671 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
4672 New proc to check net_ts_ip et.
4674 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4677 * testsuite/20_util/pair/requirements/structural.cc: New test.
4679 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4681 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
4682 new definitions for constructors and assignment operators using
4683 concepts for constraints.
4684 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
4686 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
4687 expected error messages to also match C++20 errors.
4689 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4692 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
4693 Combine and replace with ...
4694 (_PCC::_DeprConsPair): New SFINAE helper function.
4695 (pair): Merge preprocessor blocks so that all C++03 members
4696 are defined together at the end.
4697 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
4698 Replace _T1 and _T2 parameters with __null_ptr_constant and
4700 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
4701 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
4702 * testsuite/20_util/pair/cons/99957.cc: New test.
4704 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4706 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
4707 * include/std/version (__cpp_lib_constexpr_string): Define.
4708 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4709 Check for __cpp_lib_constexpr_string.
4710 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
4712 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
4714 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4716 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
4717 dealing with errors. Use '@' to prevent shell command being
4719 * doc/Makefile.in: Regenerate.
4721 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4724 * include/bits/std_thread.h (thread::hardware_concurrency): Add
4725 missing noexcept to inline definition for non-gthreads targets.
4727 2021-04-28 Patrick Palka <ppalka@redhat.com>
4733 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
4734 the __value_comp lambda an explicit bool return type.
4735 (__is_permutation_fn::operator()): Give the __proj_scan local
4736 variable auto&& return type. Give the __comp_scan lambda an
4737 explicit bool return type.
4738 (__remove_fn::operator()): Give the __pred lambda an explicit
4740 (__partition_fn::operator()): Don't std::move __first twice
4741 when returning an empty subrange.
4742 (__min_fn::operator()): Don't std::move __comp.
4743 (__max_fn::operator()): Likewise.
4744 (__minmax_fn::operator()): Likewise.
4746 2021-04-27 Patrick Palka <ppalka@redhat.com>
4749 * include/std/ranges (join_view::_Iterator::operator++): Correct
4750 the return type of the lambda to avoid returning a copy of
4751 _M_parent->_M_inner.
4752 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
4754 2021-04-27 Jakub Jelinek <jakub@redhat.com>
4757 2021-04-22 Jakub Jelinek <jakub@redhat.com>
4760 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4762 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4765 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4767 * include/experimental/internet (address_v6::bytes_type): Adjust
4769 (basic_endpoint): Define _M_is_v6() to put all checks for
4770 AF_INET6 in one place.
4771 (basic_endpoint::resize): Simplify.
4772 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
4773 (operator!=(const tcp&, const tcp&)): Likewise.
4774 (operator==(const udp&, const udp&)): Likewise.
4775 (operator!=(const udp&, const udp&)): Likewise.
4776 * testsuite/experimental/net/internet/tcp.cc: New test.
4777 * testsuite/experimental/net/internet/udp.cc: New test.
4779 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4782 * include/experimental/internet (resolver_errc, resolver_category())
4783 (make_error_code, make_error_condition): Define unconditionally,
4784 only make enumerators and use of gai_strerror depend on the
4785 availability of <netdb.h>.
4786 (address_v4::to_string): Use correct constant for string length.
4787 (address_v4::to_string, address_v6::to_string): Define
4788 unconditionally, throw if unsupported.
4789 (make_address_v4, make_address_v6): Define unconditionally.
4790 Return an error if unsupported.
4791 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
4793 * testsuite/experimental/net/internet/socket/opt.cc: Check for
4794 <netinet/in.h> and <netinet/tcp.h> before using types from
4797 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4800 * include/experimental/internet (resolver_base::flags):
4801 Define overloaded operators as hidden friends.
4802 * include/experimental/socket (socket_base::message_flags):
4805 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4807 * include/experimental/internet (tcp::no_delay, v6_only)
4808 (unicast::hops, multicast::hops, multicast::enable_loopback):
4809 Change access of base class and static data members. Add
4810 using-declaration for __socket_crtp::operator=(_Tp).
4811 (multicast::__mcastopt): New type.
4812 (multicast::join_group, multicast::leave_group): Derive from
4813 __mcastopt for common implementation.
4814 * include/experimental/socket: Add comment.
4815 * testsuite/experimental/net/internet/socket/opt.cc: New test.
4816 * testsuite/experimental/net/socket/socket_base.cc: Check for
4817 protected constructor/destructor of socket_base. Check for
4818 explicit constructors of socket option classes.
4820 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4822 * include/experimental/bits/net.h (__socket_base): Add
4823 bool template parameter to allow BooleanSocketOption and
4824 IntegerSocketOption to have different __socket_base<int>
4826 (__socket_base<bool>): Adjust base class.
4827 (__socket_base<int>): Add partial specialization.
4828 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
4829 * include/experimental/socket (socket_base::broadcast)
4830 (socket_base::debug, socket_base::do_not_route)
4831 (socket_base::keep_alive, socket_base::linger)
4832 (socket_base::out_of_band_inline)
4833 (socket_base::receive_buffer_size)
4834 (socket_base::receive_low_watermark)
4835 (socket_base::reuse_address, socket_base::send_buffer_size)
4836 (socket_base::send_low_watermark): Add using-declaration for
4837 __socket_crtp::operator=(_Tp).
4838 * testsuite/experimental/net/socket/socket_base.cc: Check
4839 properties of socket option types.
4841 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4843 * include/experimental/internet (resolver_base::flags): Remove
4844 enumerators. Initialize constants directly with desired values.
4845 Make all operators constexpr and noexcept.
4846 * testsuite/experimental/net/internet/resolver/base.cc: Use
4847 __gnu_test::test_bitmask_values for bitmask type. Check
4848 construction and destruction is protected.
4850 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4852 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
4854 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4857 * include/experimental/internet (net::ip::make_error_code)
4858 (net::ip::make_error_condition, net::ip::make_network_v4)
4859 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
4861 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
4863 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
4864 (add_options_for_libatomic): Use atomic_link_flags.
4866 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4869 * include/experimental/io_context (io_context): Define
4870 dummy_pollfd type so that most member functions still compile
4871 without <poll.h> and struct pollfd.
4873 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4875 * include/experimental/io_context (io_context::async_wait): Add
4877 * include/experimental/socket (basic_socket::async_connect):
4878 Cast wait_type constant to int.
4879 (basic_datagram_socket::async_receive): Likewise.
4880 (basic_datagram_socket::async_receive_from): Likewise.
4881 (basic_datagram_socket::async_send): Likewise.
4882 (basic_datagram_socket::async_send_to): Likewise.
4883 (basic_stream_socket::async_receive): Likewise.
4884 (basic_stream_socket::async_send): Likewise. Use io_context
4885 parameter directly, instead of via an executor.
4886 (basic_socket_acceptor::async_accept): Likewise.
4888 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4890 * include/experimental/socket (socket_base::shutdown_type):
4891 (socket_base::wait_type, socket_base::message_flags):
4892 Remove enumerators. Initialize constants directly with desired
4894 (socket_base::message_flags): Make all operators constexpr and
4896 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
4898 * testsuite/experimental/net/socket/socket_base.cc: New test.
4900 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
4902 * config/os/aix/atomicity.h: Delete.
4904 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4906 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
4907 Handle system_clock as well as steady_clock.
4908 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
4909 * testsuite/30_threads/semaphore/try_acquire_until.cc:
4912 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4914 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
4915 options for libatomic.
4917 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4919 * config/os/gnu-linux/os_defines.h: Fix type in comment.
4921 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4924 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
4925 is not an array type.
4926 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
4927 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
4929 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
4931 * include/bits/atomic_wait.h: Always notify waiters in the
4932 case of 'bare' address notification.
4934 2021-04-22 Jakub Jelinek <jakub@redhat.com>
4937 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4939 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4942 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4945 * include/bits/semaphore_base.h: Remove #error.
4946 * include/std/semaphore: Do not define anything unless one of
4947 the implementations is available.
4949 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
4951 * include/bits/semaphore_base.h: Always reload __old in
4952 __atomic_semaphore::_S_do_try_acquire().
4953 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4956 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
4957 Jonathan Wakely <jwakely@redhat.com>
4960 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
4961 * python/Makefile.in: Regenerate.
4963 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
4965 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
4966 member to __platform_wait.
4968 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
4970 * include/std/latch: Replace tab characters in license text.
4971 * include/std/semaphore: Likewise.
4973 2021-04-21 Jakub Jelinek <jakub@redhat.com>
4976 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
4977 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
4978 * configure: Regenerated.
4979 * config.h.in: Regenerated.
4981 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
4983 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
4984 test for targets not using futexes for semaphores.
4985 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
4986 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4987 Disable for all targets.
4989 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
4991 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
4992 * include/Makefile.in: Regenerate.
4993 * include/bits/this_thread_sleep.h: New file.
4994 * include/bits/atomic_base.h: Adjust all calls
4995 to __atomic_wait/__atomic_notify for new call signatures.
4996 * include/bits/atomic_timed_wait.h: Extensive rewrite.
4997 * include/bits/atomic_wait.h: Likewise.
4998 * include/bits/semaphore_base.h: Adjust all calls
4999 to __atomic_wait/__atomic_notify for new call signatures.
5000 * include/std/atomic: Likewise.
5001 * include/std/barrier: Likewise.
5002 * include/std/latch: Likewise.
5003 * include/std/semaphore: Likewise.
5004 * include/std/thread (this_thread::sleep_for)
5005 (this_thread::sleep_until): Move to new header.
5006 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
5008 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5009 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5010 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5011 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
5012 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
5013 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
5015 2021-04-20 Patrick Palka <ppalka@redhat.com>
5018 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
5020 (move_iterator): Derive from the above in C++20 in order to
5021 conditionally define iterator_category as per P2259.
5022 (move_iterator::__base_cat): No longer used, so remove.
5023 (move_iterator::iterator_category): Remove in C++20.
5024 (__detail::__common_iter_use_postfix_proxy): Define.
5025 (common_iterator::_Proxy): Rename to ...
5026 (common_iterator:__arrow_proxy): ... this.
5027 (common_iterator::__postfix_proxy): Define as per P2259.
5028 (common_iterator::operator->): Adjust.
5029 (common_iterator::operator++): Adjust as per P2259.
5030 (iterator_traits<common_iterator>::_S_iter_cat): Define.
5031 (iterator_traits<common_iterator>::iterator_category): Change as
5033 (__detail::__counted_iter_value_type): Define.
5034 (__detail::__counted_iter_concept): Define.
5035 (__detail::__counted_iter_cat): Define.
5036 (counted_iterator): Derive from the above three classes in order
5037 to conditionally define value_type, iterator_concept and
5038 iterator category respectively as per P2259.
5039 (counted_iterator::operator->): Define as per P2259.
5040 (incrementable_traits<counted_iterator>): Remove as per P2259.
5041 (iterator_traits<counted_iterator>): Adjust as per P2259.
5042 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
5043 (iota_view::_Iterator): Derive from the above in order to
5044 conditionally define iterator_category as per P2259.
5045 (iota_view::_S_iter_cat): Rename to ...
5046 (iota_view::_S_iter_concept): ... this.
5047 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
5048 (iota_view::iterator_category): Remove.
5049 (__detail::__filter_view_iter_cat): Define.
5050 (filter_view::_Iterator): Derive from the above in order to
5051 conditionally define iterator_category as per P2259.
5052 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
5053 (filter_view::_Iterator::iterator_category): Remove.
5054 (transform_view::_Base): Define.
5055 (transform_view::__iter_cat): Define.
5056 (transform_view::_Iterator): Derive from the above in order to
5057 conditionally define iterator_category as per P2259.
5058 (transform_view::_Iterator::_Base): Just alias
5059 transform_view::_Base.
5060 (transform_view::_Iterator::_S_iter_cat): Move to struct
5061 transform_view::__iter_cat.
5062 (transform_view::_Iterator::iterator_category): Remove.
5063 (transform_view::_Sentinel::_Base): Just alias
5064 transform_view::_Base.
5065 (join_view::_Base): Define.
5066 (join_view::_Outer_iter): Define.
5067 (join_view::_Inner_iter): Define.
5068 (join_view::_S_ref_is_glvalue): Define.
5069 (join_view::__iter_cat): Define.
5070 (join_view::_Iterator): Derive from it in order to conditionally
5071 define iterator_category as per P2259.
5072 (join_view::_Iterator::_Base): Just alias join_view::_Base.
5073 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
5074 join_view::_S_ref_is_glvalue.
5075 (join_view::_Iterator::_S_iter_cat): Move to struct
5076 transform_view::__iter_cat.
5077 (join_view::_Iterator::_Outer_iter): Just alias
5078 join_view::_Outer_iter.
5079 (join_view::_Iterator::_Inner_iter): Just alias
5080 join_view::_Inner_iter.
5081 (join_view::_Iterator::iterator_category): Remove.
5082 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
5083 (__detail::__split_view_outer_iter_cat): Define.
5084 (__detail::__split_view_inner_iter_cat): Define.
5085 (split_view::_Base): Define.
5086 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
5087 in order to conditionally define iterator_category as per P2259.
5088 (split_view::_Outer_iter::iterator_category): Remove.
5089 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
5090 in order to conditionally define iterator_category as per P2259.
5091 (split_view::_Inner_iter::_S_iter_cat): Move to
5092 __split_view_inner_iter_cat.
5093 (split_view::_Inner_iter::iterator_category): Remove.
5094 (elements_view::_Base): Define.
5095 (elements_view::__iter_cat): Define.
5096 (elements_view::_Iterator): Derive from the above in order to
5097 conditionall define iterator_category as per P2259.
5098 (elements_view::_Iterator::_Base): Just alias
5099 elements_view::_Base.
5100 (elements_view::_Iterator::_S_iter_concept)
5101 (elements_view::_Iterator::iterator_concept): Define as per
5103 (elements_view::_Iterator::iterator_category): Remove.
5104 (elements_view::_Sentinel::_Base): Just alias
5105 elements_view::_Base.
5106 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
5107 Adjust constraints on iterator_traits<counted_iterator>.
5108 * testsuite/std/ranges/p2259.cc: New test.
5110 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5113 * include/std/charconv (__cpp_lib_to_chars): Define
5115 * include/std/version (__cpp_lib_to_chars): Likewise..
5116 * testsuite/20_util/from_chars/4.cc: Only check feature test
5117 macro, not _GLIBCXX_HAVE_USELOCALE.
5118 * testsuite/20_util/from_chars/5.cc: Likewise.
5119 * testsuite/20_util/from_chars/6.cc: Likewise.
5120 * testsuite/20_util/to_chars/long_double.cc: Likewise.
5122 2021-04-20 Jakub Jelinek <jakub@redhat.com>
5124 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
5125 versions with _IEEE128_ substring are found, set ieee_version_found
5126 to true. Ignore missing symbols with _IEEE128_ in version name if
5127 !ieee_version_found. Use i->first as version_name instead of
5128 i->second.version_name if the latter is empty.
5129 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5131 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
5133 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
5136 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5138 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
5139 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
5141 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5143 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5144 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5145 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
5146 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5147 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5148 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5150 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5152 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
5153 add libatomic options for 32-bit sparc*-*-linux-gnu.
5155 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5158 * libsupc++/Makefile.am: Add atomicity.cc here.
5159 * src/c++98/Makefile.am: Remove it from here.
5160 * libsupc++/Makefile.in: Regenerate.
5161 * src/c++98/Makefile.in: Regenerate.
5162 * testsuite/18_support/exception_ptr/96657.cc: New test.
5164 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5167 * include/std/bit: Only include <ext/numeric_traits.h> for
5168 hosted build, use <limits> otherwise.
5170 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5172 * doc/xml/manual/backwards_compatibility.xml: Remove porting
5173 notes for libg++ and libstdc++-v2, and bibliography.
5174 * doc/html/*: Regenerated.
5176 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5179 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
5180 Remove helper concept.
5181 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
5182 deduction guides, as per LWG 3404.
5183 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
5184 template argument deduction fails.
5186 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5188 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
5189 Adjust expected error for C++20 mode.
5190 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
5193 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5196 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
5197 standard headers and XFAIL for effective-target c++20.
5199 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
5202 * include/debug/helper_functions.h (__can_advance(_InputIterator,
5203 const std::pair<_Diff, _Distance_precision>&, int)): New.
5204 (__can_advance(const _Safe_iterator<>&,
5205 const std::pair<_Diff, _Distance_precision>&, int)): New.
5206 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
5208 (__glibcxx_check_can_increment_range): Adapt to use latter.
5209 (__glibcxx_check_can_decrement_range): Likewise.
5210 * include/debug/safe_iterator.h
5211 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5213 (__can_advance(const _Safe_iterator<>&,
5214 const std::pair<_Diff, _Distance_precision>&, int)): New.
5215 * include/debug/safe_iterator.tcc
5216 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5218 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
5219 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
5221 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
5222 (__copy_move_backward_a): Likewise.
5223 (__equal_aux): Likewise.
5224 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
5225 const std::pair<_Diff, _Distance_precision>&, int)): New.
5226 (__can_advance(const std::move_iterator<>&,
5227 const std::pair<_Diff, _Distance_precision>&, int)): New.
5228 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
5230 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
5233 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
5234 to be a valid constexpr function in C++11.
5235 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
5237 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
5239 * include/bits/fs_fwd.h: Fix doxygen group command.
5240 * include/bits/streambuf_iterator.h: Likewise.
5241 * include/bits/uses_allocator_args.h: Likewise.
5242 * include/std/memory: Likewise.
5243 * include/tr1/complex: Likewise.
5245 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5247 * include/bits/basic_string.h: Tweak doxygen comment.
5249 2021-04-08 Patrick Palka <ppalka@redhat.com>
5251 * include/std/ranges (__detail::find): Define.
5252 (split_view::_OuterIter::operator++): Apply proposed resolution
5254 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
5256 2021-04-08 Patrick Palka <ppalka@redhat.com>
5258 * include/std/ranges (__detail::find_if): Simplify.
5259 (__detail::find_if_not): Likewise.
5260 (__detail::min): Remove.
5261 (__detail::mismatch): Simplify.
5262 (take_view::size): Use std::min instead of __detail::min.
5264 2021-04-08 Patrick Palka <ppalka@redhat.com>
5266 * include/std/ranges (__detail::__returnable_element): New
5268 (elements_view): Use this concept in its constraints. Add
5269 missing private access specifier.
5270 (elements_view::_S_get_element): Define as per LWG 3502.
5271 (elements_view::operator*, elements_view::operator[]): Use
5273 (elements_view::operator++): Remove unnecessary constraint
5275 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
5277 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5279 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
5280 out-of-memory error in log file.
5281 * doc/Makefile.in: Regenerate.
5283 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5285 * configure: Regenerate.
5287 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5289 * include/bits/random.h: Fix doxygen group commands.
5290 * include/bits/regex_constants.h: Likewise.
5291 * include/tr1/random.h: Likewise.
5293 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5295 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
5296 New function to determine noexcept-specifier for move
5298 (_Hashtable): Use _S_nothrow_move() on move constructors.
5299 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
5300 Correct static assertion message.
5301 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
5303 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
5305 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
5308 2021-04-08 Patrick Palka <ppalka@redhat.com>
5311 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
5312 on targets without a large long double. XFAIL the execution on
5313 targets with a non-conforming printf.
5315 2021-04-08 Patrick Palka <ppalka@redhat.com>
5318 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
5319 (__adaptor::__adaptor_invocable): New concept.
5320 (__adaptor::__adaptor_partial_app_viable): New concept.
5321 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
5322 non-template base class.
5323 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
5325 (__adaptor::_Partial): New class template that represents
5326 partial application of a range adaptor non-closure.
5327 (__adaptor::__pipe_invocable): New concept.
5328 (__adaptor::_Pipe): New class template.
5329 (__detail::__can_ref_view): New concept.
5330 (__detail::__can_subrange): New concept.
5331 (all): Replace the lambda here with ...
5332 (_All): ... this functor. Add appropriate constraints.
5333 (__detail::__can_filter_view): New concept.
5334 (filter, _Filter): As in all/_All.
5335 (__detail::__can_transform): New concept.
5336 (transform, _Transform): As in all/_All.
5337 (__detail::__can_take_view): New concept.
5338 (take, _Take): As in all/_All.
5339 (__detail::__can_take_while_view): New concept.
5340 (take_while, _TakeWhile): As in all/_All.
5341 (__detail::__can_drop_view): New concept.
5342 (drop, _Drop): As in all/_All.
5343 (__detail::__can_drop_while_view): New concept.
5344 (drop_while, _DropWhile): As in all/_All.
5345 (__detail::__can_join_view): New concept.
5346 (join, _Join): As in all/_All.
5347 (__detail::__can_split_view): New concept.
5348 (split, _Split): As in all/_All. Rename template parameter
5350 (__detail::__already_common): New concept.
5351 (__detail::__can_common_view): New concept.
5352 (common, _Common): As in all/_All.
5353 (__detail::__can_reverse_view): New concept.
5354 (reverse, _Reverse): As in all/_All.
5355 (__detail::__can_elements_view): New concept.
5356 (elements, _Elements): As in all/_All.
5357 (keys, values): Adjust.
5358 * testsuite/std/ranges/adaptors/99433.cc: New test.
5359 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
5360 adding empty range adaptor closure objects to a pipeline doesn't
5361 increase the size of the pipeline.
5363 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
5364 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
5365 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
5366 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
5367 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
5368 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
5369 * testsuite/std/ranges/adaptors/p2281.cc: New test.
5370 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
5371 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
5374 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
5375 expected error message.
5376 (test02): Likewise. Extend test.
5377 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
5378 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
5379 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
5382 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5384 * include/std/string_view: Adjust Doxygen @file comment.
5386 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5388 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
5389 specialization to not match incomplete enum types. Use a
5390 requires-expression instead of instantiating is_convertible.
5391 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
5392 * testsuite/20_util/is_scoped_enum/value.cc: Check with
5393 incomplete types and opaque-enum-declarations.
5395 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
5398 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
5399 non-const member on _M_pathname, to avoid copy-on-write.
5400 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
5401 Check construction from strings that might be shared.
5403 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5405 * include/bits/move.h (forward, move, move_if_noexcept)
5406 (addressof): Add _GLIBCXX_NODISCARD.
5407 * include/bits/ranges_cmp.h (identity::operator()): Add
5408 nodiscard attribute.
5409 * include/c_global/cstddef (to_integer): Likewise.
5410 * include/std/bit (bit_cast): Likewise.
5411 * include/std/utility (as_const, to_underlying): Likewise.
5413 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5415 * include/bits/move.h (forward): Change static_assert message
5416 to be unambiguous about what must be true.
5417 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
5418 * testsuite/20_util/forward/f_neg.cc: Likewise.
5420 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5422 * include/bits/alloc_traits.h: Use markdown for code font.
5423 * include/bits/basic_string.h: Fix @param names.
5424 * include/bits/max_size_type.h: Remove period after @file.
5425 * include/bits/regex.h: Fix duplicate @retval names, and rename.
5426 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
5427 group open to match existing group close.
5428 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
5431 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5433 * include/bits/atomic_base.h: Fix doxygen group close.
5434 * include/bits/basic_ios.h: Likewise.
5435 * include/bits/forward_list.h: Likewise.
5436 * include/bits/fs_dir.h: Likewise.
5437 * include/bits/fs_ops.h: Likewise.
5438 * include/bits/fs_path.h: Likewise.
5439 * include/bits/functional_hash.h: Likewise.
5440 * include/bits/gslice.h: Likewise.
5441 * include/bits/gslice_array.h: Likewise.
5442 * include/bits/hashtable_policy.h: Likewise.
5443 * include/bits/indirect_array.h: Likewise.
5444 * include/bits/locale_classes.h: Likewise.
5445 * include/bits/locale_facets.h: Likewise.
5446 * include/bits/locale_facets_nonio.h: Likewise.
5447 * include/bits/mask_array.h: Likewise.
5448 * include/bits/refwrap.h: Likewise.
5449 * include/bits/regex.h: Likewise.
5450 * include/bits/regex_automaton.h: Likewise.
5451 * include/bits/regex_compiler.h: Likewise.
5452 * include/bits/regex_constants.h: Likewise.
5453 * include/bits/regex_error.h: Likewise.
5454 * include/bits/regex_executor.h: Likewise.
5455 * include/bits/regex_scanner.h: Likewise.
5456 * include/bits/shared_ptr.h: Likewise.
5457 * include/bits/shared_ptr_atomic.h: Likewise.
5458 * include/bits/shared_ptr_base.h: Likewise.
5459 * include/bits/slice_array.h: Likewise.
5460 * include/bits/specfun.h: Likewise.
5461 * include/bits/std_function.h: Likewise.
5462 * include/bits/std_mutex.h: Likewise.
5463 * include/bits/stl_deque.h: Likewise.
5464 * include/bits/stl_iterator.h: Likewise.
5465 * include/bits/stl_iterator_base_types.h: Likewise.
5466 * include/bits/stl_map.h: Likewise.
5467 * include/bits/stl_multimap.h: Likewise.
5468 * include/bits/stl_multiset.h: Likewise.
5469 * include/bits/stl_numeric.h: Likewise.
5470 * include/bits/stl_pair.h: Likewise.
5471 * include/bits/stl_set.h: Likewise.
5472 * include/bits/stl_uninitialized.h: Likewise.
5473 * include/bits/stream_iterator.h: Likewise.
5474 * include/bits/streambuf_iterator.h: Likewise.
5475 * include/bits/unique_ptr.h: Likewise.
5476 * include/bits/unordered_map.h: Likewise.
5477 * include/bits/unordered_set.h: Likewise.
5478 * include/decimal/decimal: Likewise.
5479 * include/experimental/any: Likewise.
5480 * include/experimental/array: Likewise.
5481 * include/experimental/bits/fs_dir.h: Likewise.
5482 * include/experimental/bits/fs_fwd.h: Likewise.
5483 * include/experimental/bits/fs_ops.h: Likewise.
5484 * include/experimental/bits/fs_path.h: Likewise.
5485 * include/experimental/buffer: Likewise.
5486 * include/experimental/internet: Likewise.
5487 * include/experimental/optional: Likewise.
5488 * include/experimental/propagate_const: Likewise.
5489 * include/experimental/socket: Likewise.
5490 * include/ext/pb_ds/assoc_container.hpp: Likewise.
5491 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
5493 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
5494 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
5495 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
5496 * include/ext/pb_ds/exception.hpp: Likewise.
5497 * include/ext/pb_ds/priority_queue.hpp: Likewise.
5498 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
5499 * include/ext/random: Likewise.
5500 * include/std/any: Likewise.
5501 * include/std/atomic: Likewise.
5502 * include/std/bitset: Likewise.
5503 * include/std/chrono: Likewise.
5504 * include/std/complex: Likewise.
5505 * include/std/condition_variable: Likewise.
5506 * include/std/fstream: Likewise.
5507 * include/std/future: Likewise.
5508 * include/std/iostream: Likewise.
5509 * include/std/istream: Likewise.
5510 * include/std/mutex: Likewise.
5511 * include/std/numeric: Likewise.
5512 * include/std/ostream: Likewise.
5513 * include/std/ratio: Likewise.
5514 * include/std/shared_mutex: Likewise.
5515 * include/std/stdexcept: Likewise.
5516 * include/std/streambuf: Likewise.
5517 * include/std/system_error: Likewise.
5518 * include/std/thread: Likewise.
5519 * include/std/valarray: Likewise.
5520 * include/std/variant: Likewise.
5521 * include/tr1/cmath: Likewise.
5522 * include/tr1/regex: Likewise.
5523 * include/tr2/dynamic_bitset: Likewise.
5524 * libsupc++/atomic_lockfree_defines.h: Likewise.
5525 * libsupc++/exception: Likewise.
5526 * libsupc++/exception.h: Likewise.
5527 * libsupc++/exception_ptr.h: Likewise.
5528 * libsupc++/nested_exception.h: Likewise.
5530 2021-03-31 Alexandre Oliva <oliva@adacore.com>
5532 * testsuite/30_threads/future/members/poll.cc: Use faster
5533 after-ready call in the calibration loop.
5535 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
5537 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
5538 * doc/html/manual/status.html: Regenerate.
5540 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
5542 * include/debug/forward_list
5543 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
5544 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
5545 call to safe container allocator aware move constructor.
5546 * include/debug/vector (vector(vector&&, const allocator_type&)):
5547 Fix noexcept qualification.
5548 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
5549 Add allocator-extended move constructor noexceot qualification check.
5550 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
5552 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
5554 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
5556 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
5557 New helper functions and callback.
5558 (random_device::_M_init): Add 'prng' and 'all' enumerators.
5559 Replace switch with fallthrough with a series of 'if' statements.
5560 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
5562 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
5564 (random_device::_M_getval): Check for callback unconditionally
5565 and always pass _M_file pointer.
5566 * testsuite/26_numerics/random/random_device/85494.cc: Remove
5567 effective-target check. Use new random_device_available helper.
5568 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
5569 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
5570 Remove effective-target check.
5571 * testsuite/26_numerics/random/random_device/cons/default.cc:
5573 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
5574 new random_device_available helper. Test "prng" token.
5575 * testsuite/util/testsuite_random.h (random_device_available):
5576 New helper function.
5578 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
5580 * include/debug/string
5581 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
5582 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
5583 (basic_string<>::erase): Adapt to take __const_iterator.
5584 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
5585 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
5586 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
5587 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
5588 (__gnu_debug::u16string, __gnu_debug::u32string): New.
5589 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
5590 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
5591 * testsuite/util/exception/safety.h
5592 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
5593 (insert_base<__gnu_debug::basic_string<>>): Likewise.
5594 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
5595 New partial specialization.
5596 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
5597 * testsuite/21_strings/basic_string/requirements/citerators.cc:
5598 Add test on __gnu_debug::string.
5599 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
5600 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
5601 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
5603 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
5605 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
5607 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
5609 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
5611 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
5613 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
5615 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
5617 2021-03-25 Jakub Jelinek <jakub@redhat.com>
5620 * testsuite/18_support/source_location/consteval.cc (main): Adjust
5621 expected column numbers.
5622 * testsuite/18_support/source_location/1.cc (main): Likewise.
5624 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
5626 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
5628 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
5630 * testsuite/util/exception/safety.h (setup_base::generate):
5631 Support seeding random engine.
5632 (erase_point, erase_range): Adjust range of random numbers to
5633 ensure dereferenceable iterators are used where required.
5634 (generation_prohibited::run): Do not try to erase from empty
5636 * testsuite/util/testsuite_containergen.h (test_containers):
5637 Support seeding random engine.
5639 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
5641 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
5642 line with a check that uses the const being/end overloads.
5644 2021-03-23 Moritz Sichert <sichert@in.tum.de>
5646 * include/std/ranges (reverse_view::begin, reverse_view::end):
5647 Qualify make_reverse_iterator calls to avoid ADL.
5648 * testsuite/std/ranges/adaptors/reverse.cc: Test that
5649 views::reverse works when make_reverse_iterator is defined
5650 in an associated namespace.
5652 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
5654 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
5655 Do not define when compiling with Clang.
5657 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
5659 * include/std/string_view (basic_string_view(Range&&)): Define new
5660 constructor and deduction guide.
5661 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
5662 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
5664 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
5666 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
5667 Add missing 'noexcept' as per LWG 2280.
5668 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
5669 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
5670 * testsuite/24_iterators/range_access/range_access.cc: Check for
5671 expected noexcept specifiers. Check result types of generic
5672 std::begin and std::end overloads.
5673 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
5674 Check for expected noexcept specifiers.
5675 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
5678 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
5680 * include/std/type_traits (is_scoped_enum): Define.
5681 * include/std/version (__cpp_lib_is_scoped_enum): Define.
5682 * testsuite/20_util/is_scoped_enum/value.cc: New test.
5683 * testsuite/20_util/is_scoped_enum/version.cc: New test.
5685 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
5688 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
5689 std::once_flag symbols.
5690 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
5691 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
5692 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5694 * config/abi/pre/gnu.ver: Likewise.
5695 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5696 (struct __once_flag_compat): Remove.
5697 (_ZNSt9once_flag11_M_activateEv): Remove.
5698 (_ZNSt9once_flag9_M_finishEb): Remove.
5700 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
5703 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
5704 Revert to pthread_once_t implementation.
5705 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
5706 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5707 (struct __once_flag_compat): New type matching the reverted
5708 implementation of once_flag using futexes.
5709 (once_flag::_M_activate): Remove, replace with ...
5710 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
5711 (once_flag::_M_finish): Remove, replace with ...
5712 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
5713 * testsuite/30_threads/call_once/66146.cc: Removed.
5715 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
5717 * testsuite/17_intro/names.cc: Exclude j from the list
5718 of test symbols for Darwin.
5720 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
5722 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
5723 to_chars and from_chars for long double.
5725 2021-03-15 Patrick Palka <ppalka@redhat.com>
5727 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
5729 (__max_size_type::operator++): Define.
5730 (__max_size_type::operator--): Likewise.
5731 (__max_size_type::operator<=>): Conditionally define (in place
5732 of the other comparison operators).
5733 (__max_diff_type::operator _Tp): Fix formatting.
5734 (__max_diff_type::operator++): Define.
5735 (__max_diff_type::operator--): Likewise.
5736 (__max_diff_type::operator<=>): Conditionally define (in place
5737 of the other comparison operators).
5738 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
5739 these operator overloads.
5741 2021-03-15 Caroline Tice <cmtice@google.com>
5744 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
5745 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
5746 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
5748 * src/Makefile.in: Regenerate.
5750 2021-03-11 Patrick Palka <ppalka@redhat.com>
5752 * src/c++17/floating_to_chars.cc: Simplify the file as if
5753 __SIZEOF_INT128__ is always defined.
5754 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
5755 a base-10 to_chars overload for the uint128_t class type.
5756 * src/c++17/uint128_t.h: New file.
5757 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
5758 execution FAIL on targets that have a large long double type
5761 2021-03-11 Patrick Palka <ppalka@redhat.com>
5763 * src/c++17/ryu/LOCAL_PATCHES: Update.
5764 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
5765 * src/c++17/ryu/generic_128.h: Likewise.
5766 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
5767 Use uint128_t instead of __uint128_t.
5768 (generic_binary_to_decimal): Likewise.
5770 2021-03-11 Patrick Palka <ppalka@redhat.com>
5772 * src/c++17/ryu/LOCAL_PATCHES: New file.
5774 2021-03-11 Patrick Palka <ppalka@redhat.com>
5776 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
5777 defined alias of unsigned __int128.
5778 (floating_type_traits_binary128::mantissa_t): Use uint128_t
5779 instead of unsigned __int128.
5780 (floating_type_traits<long double>::mantissa_t)
5781 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
5782 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
5783 and uint32_t explicit. Simplify the extraction of mantissa,
5784 exponent and sign bit.
5786 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5788 * include/std/barrier (barrier::arrival_token): New move-only
5789 class that encapsulates the underlying token value.
5791 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5793 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
5794 instead of unqualified() method.
5796 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5799 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
5800 Use acq_rel memory ordering.
5802 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5805 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
5806 helper function to check for permission denied errors.
5807 * src/filesystem/dir.cc (recursive_directory_iterator):
5809 * src/filesystem/dir-common.h (is_permission_denied_error): New
5812 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5815 * include/bits/random.h (normal_distribution): Use
5816 default-initializer for _M_saved and _M_saved_available.
5818 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
5820 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
5821 link with libatomic.
5822 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5823 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5824 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5825 * testsuite/30_threads/barrier/arrive.cc: Likewise.
5826 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5827 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5828 * testsuite/30_threads/barrier/completion.cc: Likewise.
5829 * testsuite/30_threads/latch/3.cc: Likewise.
5830 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
5831 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
5832 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5834 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5837 * include/bits/align.h: Include debug/assertions.h.
5838 * include/bits/codecvt.h: Include bits/c++config.h.
5839 * include/bits/enable_special_members.h: Likewise.
5840 * include/bits/erase_if.h: Likewise.
5841 * include/bits/functional_hash.h: Include <type_traits>.
5842 * include/bits/invoke.h: Include bits/move.h.
5843 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
5844 * include/bits/parse_numbers.h: Include <type_traits>.
5845 * include/bits/predefined_ops.h: Include bits/c++config.h.
5846 * include/bits/range_access.h: Include bits/stl_iterator.h.
5847 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
5848 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
5849 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
5850 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
5851 * include/bits/unique_lock.h: Include bits/std_mutex.h.
5852 * include/debug/assertions.h: Include bits/c++config.h.
5854 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5856 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
5857 (ranges::equal_to, ranges::not_equal_to): Do not constrain
5858 with __eq_builtin_ptr_cmp.
5859 (ranges::less, ranges::greater, ranges::less_equal)
5860 (ranges::greater_equal): Do not constrain with
5861 __less_builtin_ptr_cmp.
5862 * libsupc++/compare (compare_three_way): Do not constrain with
5863 __3way_builtin_ptr_cmp.
5864 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
5865 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
5866 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
5868 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5870 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
5871 C++20 calendar types.
5873 2021-03-06 Jakub Jelinek <jakub@redhat.com>
5876 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
5877 two _Nd which the compiler can pattern match the rotates.
5879 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
5882 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
5883 Make storage larger than required. Verify no write to the last
5885 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
5888 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5890 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5891 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5893 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5894 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5897 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5899 * include/experimental/bits/simd.h: Replace reserved _X, _B by
5901 * include/experimental/bits/simd_builtin.h: Likewise.
5902 * include/experimental/bits/simd_x86.h: Likewise.
5904 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
5907 * include/std/chrono (year_month_day::_M_days_since_epoch()):
5908 Convert chrono::month and chrono::day to unsigned before
5909 converting to uint32_t.
5911 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5913 * include/std/chrono (year_month_day::_S_from_days): Perform
5914 all calculations with type uint32_t.
5916 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5918 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
5919 * doc/html/manual/abi.html: Regenerate.
5921 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5924 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
5925 FILE instead of FILE.
5927 2021-02-25 Andreas Schwab <schwab@suse.de>
5929 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5930 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
5931 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5932 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5934 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5937 * include/std/chrono (year_month_day::_S_from_days): Cast long
5940 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5942 * include/std/utility (to_underlying): Define.
5943 * include/std/version (__cpp_lib_to_underlying): Define.
5944 * testsuite/20_util/to_underlying/1.cc: New test.
5945 * testsuite/20_util/to_underlying/version.cc: New test.
5947 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5950 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
5951 before value to be printed.
5953 2021-02-24 Patrick Palka <ppalka@redhat.com>
5955 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
5956 Relax the condition that guards the printf code path to accept
5957 F128_type as well as long double.
5959 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5961 * include/std/chrono (year_month_day_last:day): New
5964 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5966 * include/std/chrono (year::is_leap): New implementation.
5967 * testsuite/std/time/year/2.cc: New test.
5969 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5971 * include/std/chrono (year_month_day::_M_days_since_epoch):
5973 * testsuite/std/time/year_month_day/4.cc: New test.
5975 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5977 * include/std/chrono (year_month_day::_S_from_days): New
5979 * testsuite/std/time/year_month_day/3.cc: New test.
5981 2021-02-24 Patrick Palka <ppalka@redhat.com>
5984 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
5985 (test01): Simplify verifying the nearby values by using a
5986 2-iteration loop and a dedicated output buffer to check that the
5987 nearby values are different. Factor out the printf-based
5988 verification into a local function, and check that the leading
5989 hex digits agree before comparing to the output of printf. Also
5990 verify the output by round-tripping it through from_chars.
5992 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5995 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
5996 symbols for long double arguments mangled as 'g'.
5997 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
5998 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
5999 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
6000 Use -mabi=ibmlongdouble for floating_to_chars.cc.
6001 * src/c++17/Makefile.in: Regenerate.
6002 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
6003 New type defining type traits of IEEE binary128 format.
6004 (floating_type_traits<__float128>): Define specialization.
6005 (floating_type_traits<long double>): Define in terms of
6006 floating_type_traits_binary128 when appropriate.
6007 (floating_to_shortest_scientific): Handle __float128.
6008 (sprintf_ld): New function template for printing a long double
6009 or __ieee128 value using sprintf.
6010 (__floating_to_chars_shortest, __floating_to_chars_precision):
6012 (to_chars): Define overloads for __float128.
6014 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6016 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
6018 2021-02-23 Martin Sebor <msebor@redhat.com>
6021 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
6022 first argument is null.
6024 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6027 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
6030 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6033 * include/bits/char_traits.h (char_traits<char>::compare): For
6034 constexpr evaluation don't call
6035 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
6038 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6041 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
6043 2021-02-23 Patrick Palka <ppalka@redhat.com>
6046 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
6047 the high- and low-order parts from an IBM long double value
6048 in an endian-agnostic way.
6050 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
6052 * include/bits/atomic_wait.h (__thread_relax()): Call
6053 __thread_yield() not __gthread_yield().
6055 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6057 * include/bits/atomic_wait.h (__thread_yield()): Check
6058 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
6059 (__thread_relax()): Use __thread_yield() instead of repeating
6060 the preprocessor checks for __gthread_yield.
6062 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6064 * include/std/mutex (once_flag::_M_activate()): Add explicit
6065 return statement for passive case.
6066 (once_flag::_M_finish(bool)): Use reserved name for parameter.
6068 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
6071 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
6073 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6076 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
6078 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6080 * doc/xml/manual/status_cxx2014.xml: Document implementation
6081 specific properties of std::experimental::filesystem::rename.
6082 * doc/xml/manual/status_cxx2017.xml: Document implementation
6083 specific properties of std::filesystem::rename.
6084 * doc/html/*: Regenerate.
6085 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
6086 for directories on Windows.
6087 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
6088 MoveFileExW on Windows.
6089 * testsuite/27_io/filesystem/operations/rename.cc: New test.
6090 * testsuite/experimental/filesystem/operations/rename.cc: New test.
6092 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6094 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
6095 random number to the path.
6097 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6099 * include/experimental/internet (address_v6::to_string): Include
6101 * testsuite/experimental/net/internet/address/v6/members.cc:
6102 Test to_string() results.
6104 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6106 * include/experimental/internet (address_v6::any): Avoid using
6107 memcpy in constexpr function.
6108 (address_v6::loopback): Likewise.
6109 (make_address_v6): Fix missing return statements on error paths.
6110 * include/experimental/io_context: Avoid -Wdangling-else
6112 * testsuite/experimental/net/internet/address/v4/members.cc:
6113 Remove unused variables.
6114 * testsuite/experimental/net/internet/address/v6/members.cc:
6117 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6119 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
6120 Add unused attribute to parameter.
6121 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
6124 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6126 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
6127 if -fno-rtti is used.
6128 * testsuite/30_threads/async/forced_unwind.cc: Expect test
6129 to abort if -fno-rtti is used.
6131 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6133 * testsuite/util/testsuite_allocator.h (memory_resource):
6134 Remove requirement for RTTI and exceptions to be enabled.
6136 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6138 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
6139 static_cast when RTTI is disabled.
6140 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
6142 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
6144 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
6146 * testsuite/27_io/basic_stringstream/str/char/2.cc:
6148 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
6151 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6153 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
6154 as unused and only use dynamic_cast when RTTI is enabled.
6156 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6159 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
6160 Change int parameter to error_code, to match std::ios_failure.
6161 (__throw_ios_failure(const char*, int)): Construct error_code
6164 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6166 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
6168 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
6169 macro instead of _GLIBCXX_EH_PTR_COMPAT.
6170 (operator==): Likewise.
6172 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6175 * doc/xml/manual/status_cxx2011.xml: Document when support
6177 * doc/xml/manual/status_cxx2014.xml: Likewise.
6178 * doc/xml/manual/status_cxx2017.xml: Likewise.
6179 * doc/html/manual/status.html: Regenerate.
6181 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6184 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
6186 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6188 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
6189 (fs::remove): Use std::system_category() for error codes from
6191 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
6194 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6196 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
6197 in __MINGW32__ macro name.
6198 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
6199 * testsuite/27_io/filesystem/path/generation/proximate.cc:
6201 * testsuite/27_io/filesystem/path/generation/relative.cc:
6203 * testsuite/util/testsuite_fs.h: Likewise.
6205 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
6207 * include/bits/stl_tree.h
6208 (__has_is_transparent, __has_is_transparent_t): Move...
6209 * include/bits/stl_function.h: ...here.
6210 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
6211 (_Hashtable_base<>::_M_equals_tr): New.
6212 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
6213 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
6214 heterogeneous lookup.
6215 (_Hashtable<>::_M_find_before_node_tr): New.
6216 (_Hashtable<>::_M_find_node_tr): New.
6217 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
6218 unordered_map::contains<>, unordered_map::equal_range<>): New member function
6219 templates to perform heterogeneous lookup.
6220 (unordered_multimap::find<>, unordered_multimap::count<>,
6221 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
6222 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
6223 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
6224 (unordered_multiset::find<>, unordered_multiset::count<>,
6225 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
6226 * include/debug/unordered_map
6227 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
6228 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
6229 * include/debug/unordered_set
6230 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
6231 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
6232 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
6233 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
6234 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
6235 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
6237 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
6239 * include/bits/stl_deque.h
6240 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
6241 a null pointer test.
6243 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
6245 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
6246 test directory after making it writable again.
6247 * testsuite/experimental/filesystem/operations/remove_all.cc:
6250 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
6253 * include/std/coroutine (coroutine_handle<P>::from_address): Add
6256 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
6258 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
6259 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
6261 2021-02-09 Jakub Jelinek <jakub@redhat.com>
6264 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
6265 points to the characters moved by earlier _S_move, compute the source
6266 address using expression based on the __p pointer rather than __s
6269 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
6271 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
6272 Add comparison with same category and different values.
6273 * testsuite/19_diagnostics/error_code/operators/less.cc:
6274 Likewise. Fix comparison involving different categories.
6275 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
6277 * testsuite/19_diagnostics/error_condition/operators/less.cc:
6279 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
6282 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
6284 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
6285 calls with a single vaddv for aarch64.
6287 2021-02-03 Matthias Kretz <kretz@kde.org>
6289 * testsuite/Makefile.am: Warn about the workaround. Add
6290 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
6291 Improve initial user feedback from make check-simd.
6292 * testsuite/Makefile.in: Regenerated.
6294 2021-02-03 Matthias Kretz <kretz@kde.org>
6296 * include/experimental/bits/simd.h: Add __detail::_Minimum and
6297 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
6298 Add hmin and hmax overloads for simd and const_where_expression.
6299 * include/experimental/bits/simd_scalar.h
6300 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
6301 parameter const-ref to allow calling _S_reduce with an rvalue.
6302 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
6303 hmin and hmax. Since the compiler statically determined that all
6304 tests pass, repeat the test after a call to make_value_unknown.
6306 2021-02-03 Matthias Kretz <kretz@kde.org>
6308 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
6309 instruction pointer data member. Ensure that the `if (m_failed)`
6310 branch is always inlined into the calling code. The body of the
6311 conditional can still be a function call. Move the get_ip call
6312 into the verify ctor to simplify the ctor calls.
6313 (COMPARE): Don't mention the use of all_of for reduction of a
6314 simd_mask. It only distracts from the real issue.
6316 2021-02-03 Matthias Kretz <kretz@kde.org>
6318 * testsuite/experimental/simd/driver.sh: Abstract reading test
6319 options into read_src_option function. Read skip, only,
6320 expensive, and xfail via read_src_option. Add timeout and
6321 timeout-factor options and adjust timeout variable accordingly.
6322 * testsuite/experimental/simd/tests/loadstore.cc: Set
6325 2021-02-03 Matthias Kretz <kretz@kde.org>
6327 * testsuite/experimental/simd/driver.sh: When handling the pipe
6328 to log (and on verbose to stdout) count the lines. If it exceeds
6329 1000 log the issue and exit 125, which is then handled as a
6332 2021-02-03 Matthias Kretz <kretz@kde.org>
6334 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
6335 markup for long double on powerpc64*.
6337 2021-02-03 Matthias Kretz <kretz@kde.org>
6339 * include/experimental/bits/simd.h: Add __have_power10vec
6340 conditional on _ARCH_PWR10.
6341 * include/experimental/bits/simd_builtin.h: Forward declare
6342 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
6344 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
6345 _SuperImpl for optimizations and correctness.
6346 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
6347 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
6348 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
6349 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
6351 2021-02-03 Matthias Kretz <kretz@kde.org>
6353 * testsuite/experimental/simd/driver.sh: Remove executable on
6354 SIGINT. Process compiler and test executable output: In verbose
6355 mode print messages immediately, limited to 1000 lines and
6356 breaking long lines to below $COLUMNS (or 1024 if not set).
6357 Communicating the exit status of the compiler / test with the
6358 necessary pipe is done via a message through stdout/-in.
6360 2021-02-03 Matthias Kretz <kretz@kde.org>
6362 * testsuite/Makefile.am: Ensure .simd.summary is empty before
6363 collecting a new summary.
6364 * testsuite/Makefile.in: Regenerate.
6366 2021-02-03 Matthias Kretz <kretz@kde.org>
6368 * testsuite/experimental/simd/generate_makefile.sh: Use
6369 different variables internally than documented for user
6370 overrides. This makes internal append/prepend work as intended.
6372 2021-02-03 Matthias Kretz <kretz@kde.org>
6374 * testsuite/experimental/simd/driver.sh (verify_test): Print
6375 test output on run xfail. Do not repeat lines from the log that
6376 were already printed on stdout.
6377 (test_selector): Make the compiler flags pattern usable as a
6379 (toplevel): Trap on SIGINT and remove the log and sum files.
6380 Call timout with --foreground to quickly terminate on SIGINT.
6381 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
6382 targets via target patterns. Default DRIVEROPTS to -v for run
6383 targets. Remove log and sum files after completion of the run
6384 target (so that it's always recompiled).
6385 Place help text into text file for reasonable 'make help'
6388 2021-02-03 Matthias Kretz <kretz@kde.org>
6390 * include/experimental/bits/simd.h: Remove unnecessary static
6391 assertion. Allow sizeof(8) integer __intrinsic_type to enable
6392 the necessary mask type.
6394 2021-02-03 Matthias Kretz <kretz@kde.org>
6396 * include/experimental/bits/simd.h: Let __intrinsic_type<long
6397 double, N> be valid if sizeof(long double) == sizeof(double) and
6398 use a __vector double as member type.
6400 2021-02-03 Matthias Kretz <kretz@kde.org>
6402 * include/experimental/bits/simd.h (__is_intrinsic_type): New
6403 internal type trait. Alias for __is_vector_type on x86.
6404 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
6406 (__intrin_bitcast): Allow casting to & from vector & intrinsic
6408 (__intrinsic_type): Explicitly specialize for NEON intrinsic
6411 2021-02-03 Matthias Kretz <kretz@kde.org>
6413 * testsuite/experimental/simd/driver.sh: Implement skip, only,
6414 expensive, and xfail markers. They can select on type, ABI tag
6415 subset number, target-triplet, and compiler flags.
6416 * testsuite/experimental/simd/generate_makefile.sh: The summary
6417 now includes lines for unexpected passes and expected failures.
6418 If the skip or only markers are only conditional on the type, do
6419 not generate rules for those types.
6420 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
6421 for ABI tag subsets 1-9.
6422 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
6423 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
6424 * testsuite/experimental/simd/tests/casts.cc: Ditto.
6425 * testsuite/experimental/simd/tests/generator.cc: Ditto.
6426 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
6427 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
6428 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
6429 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
6430 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
6431 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
6432 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
6433 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
6434 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
6435 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
6436 * testsuite/experimental/simd/tests/operators.cc: Ditto.
6437 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
6438 * testsuite/experimental/simd/tests/simd.cc: Ditto.
6439 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
6440 * testsuite/experimental/simd/tests/splits.cc: Ditto.
6441 * testsuite/experimental/simd/tests/where.cc: Ditto.
6442 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
6443 addition replace "test only floattypes" marker by unconditional
6444 "float|double|ldouble" only marker.
6445 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
6446 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
6447 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6449 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
6450 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
6451 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
6452 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
6453 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
6454 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
6455 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
6456 addition, xfail on run because the reference data is missing.
6458 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
6460 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
6461 * doc/xml/manual/status_cxx2014.xml: Likewise.
6462 * doc/xml/manual/status_cxx2017.xml: Likewise.
6463 * doc/html/manual/status.html: Regenerate.
6465 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
6468 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
6469 Return 0 if both iterators are value-initialized.
6470 * testsuite/23_containers/deque/70303.cc: New test.
6471 * testsuite/23_containers/vector/70303.cc: New test.
6473 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
6475 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
6477 * doc/xml/manual/status_cxx2014.xml: Likewise.
6478 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
6479 std::from_chars and std::to_chars status. Fix formatting.
6480 * doc/html/manual/status.html: Regenerate.
6482 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
6484 * include/experimental/bits/numeric_traits.h: Update copyright
6486 * include/experimental/bits/simd.h: Likewise.
6487 * include/experimental/bits/simd_builtin.h: Likewise.
6488 * include/experimental/bits/simd_converter.h: Likewise.
6489 * include/experimental/bits/simd_detail.h: Likewise.
6490 * include/experimental/bits/simd_fixed_size.h: Likewise.
6491 * include/experimental/bits/simd_math.h: Likewise.
6492 * include/experimental/bits/simd_neon.h: Likewise.
6493 * include/experimental/bits/simd_ppc.h: Likewise.
6494 * include/experimental/bits/simd_scalar.h: Likewise.
6495 * include/experimental/bits/simd_x86.h: Likewise.
6496 * include/experimental/bits/simd_x86_conversions.h: Likewise.
6497 * include/experimental/simd: Likewise.
6498 * testsuite/experimental/simd/*: Likewise.
6500 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6502 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
6503 * doc/html/*: Regenerate.
6505 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6507 * testsuite/experimental/simd/generate_makefile.sh: Use printf
6508 instead of echo when printing escape characters.
6510 2021-01-27 Matthias Kretz <kretz@kde.org>
6512 * scripts/check_simd: New file. This script is called from the
6513 the check-simd target. It determines a set of compiler flags and
6514 simulator setups for calling generate_makefile.sh and passes the
6515 information back to the check-simd target, which recurses to the
6516 generated Makefiles.
6517 * scripts/create_testsuite_files: Remove files below simd/tests/
6518 from testsuite_files and place them in testsuite_files_simd.
6519 * testsuite/Makefile.am: Add testsuite_files_simd. Add
6521 * testsuite/Makefile.in: Regenerate.
6522 * testsuite/experimental/simd/driver.sh: New file. This script
6523 compiles and runs a given simd test, logging its output and
6524 status. It uses the timeout command to implement compile and
6526 * testsuite/experimental/simd/generate_makefile.sh: New file.
6527 This script generates a Makefile which uses driver.sh to compile
6528 and run the tests and collect the logs into a single log file.
6529 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
6531 * testsuite/experimental/simd/tests/algorithms.cc: New file.
6532 Tests min/max(simd, simd).
6533 * testsuite/experimental/simd/tests/bits/conversions.h: New
6534 file. Contains functions to support tests involving conversions.
6535 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
6536 Support functions make_mask and make_vec.
6537 * testsuite/experimental/simd/tests/bits/mathreference.h: New
6538 file. Support functions to supply precomputed math function
6540 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
6541 file. Support code for SFINAE testing.
6542 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
6543 * testsuite/experimental/simd/tests/bits/test_values.h: New
6544 file. Test functions to easily drive a test with simd objects
6545 initialized from a given list of values and a range of random
6547 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
6548 Support code to determine the ULP distance of simd objects.
6549 * testsuite/experimental/simd/tests/bits/verify.h: New file.
6550 Test framework for COMPARE'ing simd objects and instantiating
6551 the test templates with value_type and ABI tag.
6552 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
6554 * testsuite/experimental/simd/tests/casts.cc: New file. Test
6556 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
6557 Test floating-point classification functions.
6558 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
6560 * testsuite/experimental/simd/tests/generator.cc: New file. Test
6561 simd generator constructor.
6562 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
6563 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
6564 * testsuite/experimental/simd/tests/integer_operators.cc: New
6565 file. Test integer operators.
6566 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6567 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
6569 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
6570 (converting) simd loads and stores.
6571 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
6573 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
6574 Test simd_mask broadcasts.
6575 * testsuite/experimental/simd/tests/mask_conversions.cc: New
6576 file. Test simd_mask conversions.
6577 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
6578 file. Test simd_mask implicit conversions.
6579 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
6580 Test simd_mask loads and stores.
6581 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
6582 file. Test simd_mask operators convert as specified.
6583 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
6584 Test simd_mask compares, subscripts, and negation.
6585 * testsuite/experimental/simd/tests/mask_reductions.cc: New
6586 file. Test simd_mask reductions.
6587 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
6588 1-arg math functions on simd.
6589 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
6590 2-arg math functions on simd.
6591 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
6592 Test implicit conversions on simd binary operators behave as
6594 * testsuite/experimental/simd/tests/operators.cc: New file. Test
6595 simd compares, subscripts, not, unary minus, plus, minus,
6596 multiplies, divides, increment, and decrement.
6597 * testsuite/experimental/simd/tests/reductions.cc: New file.
6599 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
6601 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
6602 sanity checks of simd types.
6603 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
6604 sin(simd) and cos(simd).
6605 * testsuite/experimental/simd/tests/split_concat.cc: New file.
6606 Test split(simd) and concat(simd, simd).
6607 * testsuite/experimental/simd/tests/splits.cc: New file. Test
6609 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
6610 Test remaining trigonometric functions on simd.
6611 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
6612 file. Test trunc(simd), ceil(simd), and floor(simd).
6613 * testsuite/experimental/simd/tests/where.cc: New file. Test
6614 masked operations using where.
6616 2021-01-27 Matthias Kretz <kretz@kde.org>
6618 * doc/xml/manual/status_cxx2017.xml: Add implementation status
6619 of the Parallelism TS 2. Document implementation-defined types
6621 * include/Makefile.am: Add new headers.
6622 * include/Makefile.in: Regenerate.
6623 * include/experimental/simd: New file. New header for
6625 * include/experimental/bits/numeric_traits.h: New file.
6626 Implementation of P1841R1 using internal naming. Addition of
6627 missing IEC559 functionality query.
6628 * include/experimental/bits/simd.h: New file. Definition of the
6629 public simd interfaces and general implementation helpers.
6630 * include/experimental/bits/simd_builtin.h: New file.
6631 Implementation of the _VecBuiltin simd_abi.
6632 * include/experimental/bits/simd_converter.h: New file. Generic
6634 * include/experimental/bits/simd_detail.h: New file. Internal
6635 macros for the simd implementation.
6636 * include/experimental/bits/simd_fixed_size.h: New file. Simd
6637 fixed_size ABI specific implementations.
6638 * include/experimental/bits/simd_math.h: New file. Math
6640 * include/experimental/bits/simd_neon.h: New file. Simd NEON
6641 specific implementations.
6642 * include/experimental/bits/simd_ppc.h: New file. Implement bit
6643 shifts to avoid invalid results for integral types smaller than
6645 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
6646 ABI specific implementations.
6647 * include/experimental/bits/simd_x86.h: New file. Simd x86
6648 specific implementations.
6649 * include/experimental/bits/simd_x86_conversions.h: New file.
6650 x86 specific conversion optimizations. The conversion patterns
6651 work around missing conversion patterns in the compiler and
6652 should be removed as soon as PR85048 is resolved.
6653 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
6654 Test that all (not all fixed_size<N>, though) standard simd and
6655 simd_mask types are usable.
6656 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
6657 file. As above but with -ffast-math.
6658 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
6659 from the standard test loop. Instead use
6660 check_vect_support_and_set_flags to build simd tests with the
6661 relevant machine flags.
6663 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6666 * include/bits/string_view.tcc
6667 (basic_string_view::find(const CharT*, size_type, size_type)):
6670 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
6672 * include/bits/basic_string.h (basic_string::contains): New
6674 * include/std/string_view (basic_string_view::contains):
6676 * include/std/version (__cpp_lib_string_contains): Define.
6677 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
6678 Remove trailing whitespace.
6679 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
6681 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
6682 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
6683 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
6684 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
6685 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
6687 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
6689 * src/c++17/Makefile.in: Regenerate.
6691 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
6693 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
6694 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
6696 (const char* ctype<char>:: is): Same.
6698 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
6701 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
6702 write to a wide character stream if wide character support is
6703 disabled in the library.
6705 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
6707 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
6708 stringbuf not wstringbuf.
6710 2021-01-18 Jakub Jelinek <jakub@redhat.com>
6713 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
6714 Compile with -gno-as-loc-support.
6715 * src/c++11/Makefile.in: Regenerated.
6717 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
6719 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
6720 Add -fcf-protection=none to -march=i486.
6722 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
6724 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
6727 2021-01-14 Alexandre Oliva <oliva@adacore.com>
6729 * testsuite/30_threads/future/members/poll.cc: Calibrate
6732 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
6735 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
6736 (_Node_iterator()): Make default.
6737 (_Node_const_iterator()): Make default.
6738 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
6740 * include/debug/safe_iterator.h
6741 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
6742 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
6744 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
6745 _M_singular checks on input iterators.
6746 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
6748 * testsuite/23_containers/deque/debug/98466.cc: New test.
6749 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
6751 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
6754 * include/bits/fs_path.h (__throw_conversion_error): New
6755 function to throw or abort on character conversion errors.
6756 (__wstr_from_utf8): Move definition after filesystem_error has
6757 been defined. Use __throw_conversion_error.
6758 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
6759 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
6760 (path::u8string): Likewise.
6762 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
6764 * include/std/barrier: Update copyright years. Fix whitespace.
6765 * include/std/version: Fix whitespace.
6766 * testsuite/30_threads/barrier/1.cc: Update copyright years.
6767 * testsuite/30_threads/barrier/2.cc: Likewise.
6768 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6769 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6770 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6771 * testsuite/30_threads/barrier/completion.cc: Likewise.
6773 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
6775 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
6777 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
6780 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
6782 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
6784 2021-01-08 Olivier Hainque <hainque@adacore.com>
6786 * testsuite/20_util/bind/ref_neg.cc: Tweak the
6787 dg-prune-output regex for out-of-build-tree contexts.
6789 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
6791 * doc/doxygen/user.cfg.in: Add new header.
6792 * include/Makefile.am (std_headers): likewise.
6793 * include/Makefile.in: Regenerate.
6794 * include/precompiled/stdc++.h: Add new header.
6795 * include/std/barrier: New file.
6796 * include/std/version: Add __cpp_lib_barrier feature test macro.
6797 * testsuite/30_threads/barrier/1.cc: New test.
6798 * testsuite/30_threads/barrier/2.cc: Likewise.
6799 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6800 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6801 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6802 * testsuite/30_threads/barrier/completion.cc: Likewise.
6804 2021-01-07 Patrick Palka <ppalka@redhat.com>
6807 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
6808 instead of the non-standard nextupl and nextdownl.
6810 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
6812 * configure: Re-generate.
6814 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
6816 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
6818 2021-01-01 Jakub Jelinek <jakub@redhat.com>
6820 * ChangeLog-2020: Rotate ChangeLog. New file.
6823 Copyright (C) 2021 Free Software Foundation, Inc.
6825 Copying and distribution of this file, with or without modification,
6826 are permitted in any medium without royalty provided the copyright
6827 notice and this notice are preserved.