1 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/regex.h (basic_regex::transform_primary): Use
4 _GLIBCXX_STD_C::vector for local variable.
5 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
6 _GLIBCXX_STD_C::vector base class of match_results.
7 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
8 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
10 * include/bits/regex_compiler.h (_BracketMatcher): Use
11 _GLIBCXX_STD_C::vector for data members.
12 * include/bits/regex_executor.h (_Executor): Likewise.
13 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
15 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
17 * include/debug/safe_container.h
18 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
19 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
20 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
22 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
24 * testsuite/23_containers/unordered_map/cons/default.cc: Add
25 equality comparison operators to allocator.
26 * testsuite/23_containers/unordered_set/cons/default.cc:
29 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
31 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
32 dg-prune-output reason with 'builtin_unreachable'.
33 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
34 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
35 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
36 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
37 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
38 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
39 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
40 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
42 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
44 * testsuite/std/ranges/iota/max_size_type.cc: Set
45 dg-timeout-factor to 4.
47 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
49 * libsupc++/compare (compare_three_way, strong_order)
50 (weak_order, partial_order, compare_strong_order_fallback)
51 (compare_weak_order_fallback, compare_partial_order_fallback):
52 Move nodiscard attributes to correct location.
54 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
57 * include/bits/ranges_base.h (ranges::begin, ranges::end)
58 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
59 (ranges::empty, ranges::data): Move attribute after the
60 declarator-id instead of at the end of the declarator.
61 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
62 Move attributes back to the start of the function declarator,
63 but move the requires-clause to the end.
64 (common_iterator): Move attribute after the declarator-id.
65 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
66 from friend declaration that are not definitions.
67 * include/std/ranges (views::all, views::filter)
68 (views::transform, views::take, views::take_while,
69 views::drop) (views::drop_while, views::join,
70 views::lazy_split) (views::split, views::counted,
71 views::common, views::reverse) (views::elements): Move
72 attributes after the declarator-id.
74 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
76 * libsupc++/compare (partial_ordering, weak_ordering)
77 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
78 (compare_three_way, strong_order, weak_order, partial_order)
79 (compare_strong_order_fallback, compare_weak_order_fallback)
80 (compare_partial_order_fallback, __detail::__synth3way): Add
82 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
83 -Wno-unused-result to options.
85 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
88 * include/bits/ranges_base.h (ranges::begin, ranges::end)
89 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
90 (ranges::empty, ranges::data): Move attribute to the end of
92 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
93 (common_iterator): Likewise for non-member operator functions.
94 * include/std/ranges (views::all, views::filter)
95 (views::transform, views::take, views::take_while, views::drop)
96 (views::drop_while, views::join, views::lazy_split)
97 (views::split, views::counted, views::common, views::reverse)
98 (views::elements): Likewise.
99 * testsuite/std/ranges/access/101782.cc: New test.
101 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
103 * include/bits/forward_list.h: Add [[nodiscard]] to functions
104 with no side-effects.
105 * include/bits/stl_bvector.h: Likewise.
106 * include/bits/stl_deque.h: Likewise.
107 * include/bits/stl_list.h: Likewise.
108 * include/bits/stl_queue.h: Likewise.
109 * include/bits/stl_stack.h: Likewise.
110 * include/bits/stl_vector.h: Likewise.
111 * include/debug/deque: Likewise.
112 * include/debug/forward_list: Likewise.
113 * include/debug/list: Likewise.
114 * include/debug/safe_iterator.h: Likewise.
115 * include/debug/vector: Likewise.
116 * include/std/array: Likewise.
117 * testsuite/23_containers/array/creation/3_neg.cc: Use
119 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
121 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
122 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
123 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
124 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
126 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
128 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
129 Adjust dg-error line numbers.
130 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
132 * testsuite/23_containers/deque/debug/invalidation/4.cc:
134 * testsuite/23_containers/deque/types/1.cc: Use
136 * testsuite/23_containers/list/types/1.cc: Cast result to void.
137 * testsuite/23_containers/priority_queue/members/7161.cc:
139 * testsuite/23_containers/queue/members/7157.cc: Likewise.
140 * testsuite/23_containers/vector/59829.cc: Likewise.
141 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
143 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
145 * testsuite/23_containers/vector/types/1.cc: Use
148 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
150 * include/bits/iterator_concepts.h (iter_move): Add
152 * include/bits/range_access.h (begin, end, cbegin, cend)
153 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
154 * include/bits/ranges_base.h (ranges::begin, ranges::end)
155 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
156 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
157 (ranges::empty, ranges::data, ranges::cdata): Likewise.
158 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
159 (back_insert_iterator, front_insert_iterator, insert_iterator)
160 (move_iterator, move_sentinel, common_iterator)
161 (counted_iterator): Likewise.
162 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
164 * include/bits/stream_iterator.h (istream_iterator)
165 (ostream_iterartor): Likewise.
166 * include/bits/streambuf_iterator.h (istreambuf_iterator)
167 (ostreambuf_iterator): Likewise.
168 * include/std/ranges (views::single, views::iota, views::all)
169 (views::filter, views::transform, views::take, views::take_while)
170 (views::drop, views::drop_while, views::join, views::lazy_split)
171 (views::split, views::counted, views::common, views::reverse)
172 (views::elements): Likewise.
173 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
174 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
175 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
177 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
178 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
180 * testsuite/21_strings/basic_string/range_access/char/1.cc:
182 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
184 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
186 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
188 * testsuite/23_containers/array/range_access.cc: Likewise.
189 * testsuite/23_containers/deque/range_access.cc: Likewise.
190 * testsuite/23_containers/forward_list/range_access.cc:
192 * testsuite/23_containers/list/range_access.cc: Likewise.
193 * testsuite/23_containers/map/range_access.cc: Likewise.
194 * testsuite/23_containers/multimap/range_access.cc: Likewise.
195 * testsuite/23_containers/multiset/range_access.cc: Likewise.
196 * testsuite/23_containers/set/range_access.cc: Likewise.
197 * testsuite/23_containers/unordered_map/range_access.cc:
199 * testsuite/23_containers/unordered_multimap/range_access.cc:
201 * testsuite/23_containers/unordered_multiset/range_access.cc:
203 * testsuite/23_containers/unordered_set/range_access.cc:
205 * testsuite/23_containers/vector/range_access.cc: Likewise.
206 * testsuite/24_iterators/customization_points/iter_move.cc:
208 * testsuite/24_iterators/istream_iterator/sentinel.cc:
210 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
212 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
213 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
214 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
215 * testsuite/24_iterators/range_access/range_access.cc:
217 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
218 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
219 * testsuite/28_regex/range_access.cc: Likewise.
220 * testsuite/experimental/string_view/range_access/char/1.cc:
222 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
224 * testsuite/ext/vstring/range_access.cc: Likewise.
225 * testsuite/std/ranges/adaptors/take.cc: Likewise.
226 * testsuite/std/ranges/p2259.cc: Likewise.
228 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
230 * include/bits/random.tcc (linear_congruential_engine): Do not
231 define static constexpr members when they are implicitly inline.
232 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
233 (__ratio_add, __ratio_subtract): Likewise.
234 * include/std/type_traits (integral_constant): Likewise.
235 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
238 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
240 * testsuite/util/testsuite_common_types.h: Replace uses of
241 tr1::unordered_map and tr1::unordered_set with their C++11
243 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
244 dg-error line number.
245 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
246 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
248 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
250 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
252 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
254 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
257 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
259 * include/std/memory_resource (polymorphic_allocator::delete_object):
260 Call destructor directly instead of using destroy.
261 (allocator_traits<polymorphic_allocator<T>>): Define partial
264 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
266 * testsuite/20_util/function_objects/binders/3113.cc: Remove
268 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
269 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
270 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
272 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
273 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
275 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
277 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
280 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
282 * doc/xml/manual/evolution.xml: Document deprecation.
283 * doc/html/*: Regenerate.
284 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
285 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
286 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
288 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
289 for C++11 and C++14 changes to std::random_shuffle and
291 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
292 use deprecated algorithms.
293 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
294 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
295 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
297 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
300 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
302 * testsuite/23_containers/forward_list/operations/3.cc:
303 Use lambda instead of std::bind2nd.
304 * testsuite/20_util/function_objects/binders/3113.cc: Add
305 options for testing deprecated features.
306 * testsuite/20_util/pair/cons/99957.cc: Likewise.
307 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
308 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
309 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
311 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
312 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
313 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
314 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
315 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
316 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
317 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
319 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
321 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
324 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
326 * include/bits/regex_executor.h (_State_info): Replace
327 unique_ptr<bool[]> with array of bool.
328 * include/bits/regex_executor.tcc: Likewise.
329 * include/bits/regex_scanner.tcc: Replace std::strchr with
331 * include/std/regex: Replace standard headers with smaller
333 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
334 <string.h> for strlen.
335 * testsuite/28_regex/traits/char/lookup_collatename.cc:
338 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
340 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
342 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
343 instead of unique_ptr.
345 2021-08-02 Patrick Palka <ppalka@redhat.com>
348 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
349 Add missing std::move in return statement.
350 (__partition_copy_fn::operator()): Rename templtae parameter
351 _O2 to _Out2. Uglify function parameters out_true and out_false.
352 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
353 std::move to recursive call that unwraps a __normal_iterator
355 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
356 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
358 2021-08-02 Patrick Palka <ppalka@redhat.com>
361 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
362 the const& overload unconstrained and return a const reference
363 as per LWG 3533. Make unconditionally noexcept.
364 (elements_view::base): Revert accidental r12-569 change.
365 (elements_view::_Iterator::base): Make the const& overload
366 unconstrained and return a const reference as per LWG 3533.
367 Make unconditionally noexcept.
369 2021-08-02 Patrick Palka <ppalka@redhat.com>
372 * include/std/ranges (join_view::_Iterator::_Iterator): Add
375 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
378 * src/filesystem/ops-common.h (get_temp_directory_from_env):
379 Add error_code parameter.
380 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
381 argument to get_temp_directory_from_env and check it.
382 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
384 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
386 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
387 Add dg-error for c++11_only target.
389 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
392 * configure.ac: Check for secure_getenv.
393 * config.h.in: Regenerate.
394 * configure: Regenerate.
395 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
396 helper function to obtain path from the environment.
397 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
398 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
399 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
400 Print messages if test cannot be run.
401 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
402 Likewise. Fix incorrect condition. Use "TMP" to work with
403 Windows as well as POSIX.
405 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
407 * src/c++17/memory_resource.cc: Use __exchange instead
410 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
412 * include/experimental/optional (__throw_bad_optional_access):
413 Replace GNU attribute with C++11 attribute.
414 (optional::value, optional::value_or): Use if statements
415 instead of conditional expressions.
416 * include/std/optional (__throw_bad_optional_access)
417 (optional::value, optional::value_or): Likewise.
419 2021-07-27 Marek Polacek <polacek@redhat.com>
423 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
425 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
428 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
430 * include/bits/cow_string.h: Consistently use tab for
433 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
435 * include/Makefile.am: Add new header.
436 * include/Makefile.in: Regenerate.
437 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
438 (basic_string): Move definition of Copy-on-Write string to
440 * include/bits/basic_string.tcc: Likewise.
441 * include/bits/cow_string.h: New file.
443 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
445 * include/std/algorithm: Do not include <utility>.
446 * include/std/functional: Likewise.
447 * include/std/regex: Include <bits/stl_pair.h> instead of
449 * include/debug/map.h: Likewise.
450 * include/debug/multimap.h: Likewise.
451 * include/debug/multiset.h: Likewise.
452 * include/debug/set.h: Likewise.
453 * include/debug/vector: Likewise.
454 * include/bits/fs_path.h: Likewise.
455 * include/bits/unique_ptr.h: Do not include <utility>.
456 * include/experimental/any: Likewise.
457 * include/experimental/executor: Likewise.
458 * include/experimental/memory: Likewise.
459 * include/experimental/optional: Likewise.
460 * include/experimental/socket: Use __exchange instead
462 * src/filesystem/ops-common.h: Likewise.
463 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
464 errors to not use a hardcoded line number.
465 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
466 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
467 Include <utility> for std::as_const.
468 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
470 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
472 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
474 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
475 Adjust dg-error line number.
477 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
479 * include/Makefile.am: Add bits/utility.h header.
480 * include/Makefile.in: Regenerate.
481 * include/bits/utility.h: New file.
482 * include/std/utility (tuple_size, tuple_element): Move
484 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
486 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
487 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
488 * include/bits/ranges_util.h: Include new header instead of
490 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
491 partial specializations for std::pair here.
492 (get): Move overloads for std::pair here.
493 * include/std/any: Include new header instead of <utility>.
494 * include/std/array: Likewise.
495 * include/std/memory_resource: Likewise.
496 * include/std/optional: Likewise.
497 * include/std/variant: Likewise.
498 * include/std/tuple: Likewise.
499 (__is_tuple_like_impl<tuple<T...>>): Move here.
500 (get) Declare overloads for std::array.
501 * include/std/version (__cpp_lib_tuples_by_type): Change type
503 * testsuite/20_util/optional/84601.cc: Include <utility>.
504 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
506 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
507 Adjust dg-error line numbers.
508 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
509 * testsuite/std/ranges/access/cend.cc: Likewise.
510 * testsuite/std/ranges/access/end.cc: Likewise.
511 * testsuite/std/ranges/single_view.cc: Likewise.
513 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
515 * include/std/future: Include <bits/atomic_base.h> instead of
518 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
520 * include/bits/stl_relops.h: Update documentation comments.
522 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
525 * include/bits/hashtable.h (_Hashtable): Replace mixin with
526 _Enable_default_ctor. Construct it explicitly in all
527 non-forwarding, non-defaulted constructors.
528 * testsuite/23_containers/unordered_map/cons/default.cc: Check
529 non-default constructors can be used.
530 * testsuite/23_containers/unordered_set/cons/default.cc:
533 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
535 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
537 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
540 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
541 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
542 (allocator::allocate, allocator::deallocate): Use new macros.
544 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
547 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
548 constructor parameter to reference and use addressof.
549 * testsuite/util/testsuite_iterators.h: Define deleted operator&
550 overloads for test iterators.
552 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
554 * include/bits/std_function.h (_Function_base): Add
555 default member initializers and define constructor as defaulted.
556 (function::_M_invoker): Add default member initializer.
558 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
561 * doc/xml/manual/debug_mode.xml: Update documentation about
562 debug capability of std::array.
563 * doc/html/*: Regenerate.
564 * include/debug/array: New file.
566 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
569 * include/ext/rope (sequence_buffer): Add move constructor and
570 move assignment operator.
571 * testsuite/ext/rope/101542.cc: New test.
573 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
576 * src/c++17/fs_ops.cc (fs::create_directories): Use status
577 instead of symlink_status.
578 * src/filesystem/ops.cc (fs::create_directories): Likewise.
579 * testsuite/27_io/filesystem/operations/create_directories.cc:
580 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
581 not test with symlinks on Windows.
582 * testsuite/experimental/filesystem/operations/create_directories.cc:
583 * testsuite/experimental/filesystem/operations/create_directory.cc:
584 Do not test with symlinks on Windows.
586 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
589 * include/bits/hashtable.h (_Hashtable): Conditionally delete
590 default constructor by deriving from _Enable_special_members.
591 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
592 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
594 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
597 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
598 * testsuite/27_io/filesystem/operations/create_directory.cc:
599 Test creating directory with name of existing symlink to
601 * testsuite/experimental/filesystem/operations/create_directory.cc:
604 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
606 * include/std/tuple (get<I>): Add deleted overload for bad
608 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
611 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
613 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
614 Use __int_traits unconditionally.
616 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
618 * include/bits/random.h (_Shift::__value): Use constexpr.
619 (_Select_uint_least_t::type): Use using-declaration.
621 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
624 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
626 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
627 instead of diagnostic pragmas.
628 * include/bits/functional_hash.h: Likewise.
629 * include/bits/iterator_concepts.h (__is_signed_int128)
630 (__is_unsigned_int128): Likewise.
631 * include/bits/max_size_type.h (__max_size_type): Likewise.
632 (numeric_limits<__max_size_type>): Likewise.
633 * include/bits/std_abs.h (abs): Likewise.
634 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
635 * include/bits/uniform_int_dist.h (uniform_int_distribution):
637 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
639 * include/std/type_traits (__is_integral_helper<INT_N>)
640 (__is_signed_integer, __is_unsigned_integer)
641 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
642 * include/std/limits (__INT_N): Add __extension__ keyword.
643 * include/bits/random.h (_Select_uint_least_t)
644 (random_device): Likewise.
646 2021-07-16 Patrick Palka <ppalka@redhat.com>
649 * include/std/ranges (_CachedPosition::_M_get): For non-forward
650 ranges, just call __builtin_unreachable.
651 * testsuite/std/ranges/istream_view.cc (test05): New test.
653 2021-07-16 Patrick Palka <ppalka@redhat.com>
656 * include/std/ranges (split_view::split_view): Use std::move.
657 (split_view::_Iterator::_Iterator): Remove redundant
658 default_initializable constraint.
659 (split_view::_Sentinel::_Sentinel): Declare.
660 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
662 2021-07-16 Marek Polacek <polacek@redhat.com>
664 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
667 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
669 * include/bits/unique_ptr.h: Adjust doxygen markup.
671 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
674 * include/std/type_traits: Adjust doxygen markup.
676 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
678 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
679 uses of non-standard integer types.
680 * include/bits/functional_hash.h: Likewise.
681 * include/bits/iterator_concepts.h: Likewise.
682 * include/bits/max_size_type.h: Likewise.
683 * include/bits/std_abs.h: Likewise.
684 * include/bits/stl_algobase.h: Likewise.
685 * include/bits/uniform_int_dist.h: Likewise.
686 * include/ext/numeric_traits.h: Likewise.
687 * include/std/type_traits: Likewise.
689 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
692 * include/std/tuple (tuple_element): Improve static_assert text.
693 (__get_helper): Add deleted overload.
694 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
695 __get_helper directly.
696 (__get_helper2): Remove.
697 (__find_uniq_type_in_pack): New constexpr helper function.
698 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
700 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
702 * testsuite/20_util/tuple/element_access/101427.cc: New test.
704 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
707 * include/bits/c++config (__replacement_assert): Add noexcept.
708 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
709 instead of __replacement_assert.
711 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
713 * include/std/string_view (basic_string_view(It, End)): Add
715 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
716 Check noexcept-specifier. Also check construction without CTAD.
718 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
721 * include/std/string_view (ends_with): Use traits_type::compare
724 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
726 * include/std/string_view: Only include <bits/ranges_base.h>
727 once, and only for C++20 and later.
729 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
732 * include/std/span (as_writable_bytes): Add requires-clause.
733 * testsuite/23_containers/span/101411.cc: New test.
735 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
737 * include/std/mutex (__lock_impl): Check
738 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
740 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
743 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
744 Remove noexcept-specifier.
745 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
746 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
749 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
751 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
752 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
753 Add some more predefined macros.
754 * include/bits/fs_fwd.h: Move @addtogroup commands inside
755 namespaces. Add better documentation.
756 * include/bits/fs_path.h: Likewise.
757 * include/experimental/bits/fs_fwd.h: Likewise.
758 * include/experimental/bits/fs_path.h: Likewise.
759 * include/ext/throw_allocator.h: Fix typo and improve docs.
760 * include/std/chrono: Move @addtogroup commands.
761 * include/std/system_error: Move @addtogroup commands.
762 * libsupc++/exception: Improve documentation.
763 * libsupc++/exception.h: Add @since documentation.
765 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
768 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
769 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
770 (PREDEFINED): Add/fix some more macros that need to be expanded.
771 * include/bits/random.h: Stop Doxygen from documenting internal
772 implementation details.
773 * include/bits/random.tcc: Likewise.
774 * include/bits/this_thread_sleep.h: Fix @file name.
775 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
776 document internal implementation details.
777 * include/experimental/bits/simd_detail.h: Do not document
778 internal implementation details.
779 * include/experimental/simd: Define Doxygen groups.
780 * include/experimental/type_traits: Improve documentation for
781 the header file. Define groups. Use @since commands.
782 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
783 declaration before undocumented region.
784 * include/std/type_traits (true_type, false_type): Use using
785 declaration instead of typedef.
786 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
787 (is_nothrow_invocable_r_v): Move definitions next to other C++17
789 Do not document internal implementation details. Move misplaced
790 group-end command. Define group for variable templates.
791 * include/std/variant: Do not document internal implementation
793 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
796 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
798 * include/experimental/simd: Do not define anything pre-C++17.
800 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
802 * include/bits/random.tcc [__cpp_inline_variables]: Remove
803 redundant definitions of static constexpr member variables.
804 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
807 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
809 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
810 explicit instantiation declarations.
811 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
812 explicit instantiation definitions.
814 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
817 * testsuite/17_intro/names.cc: Fix #if condition for names used
820 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
823 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
824 Fail gracefully if element_type is incomplete.
825 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
826 the standard doesn't require this test to work for array types.
827 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
828 types can be used with array specialization.
829 * testsuite/20_util/unique_ptr/101236.cc: New test.
831 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
833 * doc/xml/manual/intro.xml: Document LWG 415 change.
834 * doc/html/manual/bugs.html: Regenerate.
835 * include/bits/istream.tcc (ws): Create sentry and catch
837 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
838 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
840 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
842 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
843 directly instead of using _M_write. Do setstate(__err) all
844 outside the try-catch block.
845 * include/std/ostream (basic_ostream::_M_write): Declare
846 private. Use __ostream_insert. Do not define for the versioned
849 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
851 * doc/xml/manual/intro.xml: Document LWG 581 change.
852 * doc/html/manual/bugs.html: Regenerate.
853 * include/bits/basic_ios.tcc: Whitespace.
854 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
856 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
858 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
860 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
861 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
864 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
866 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
867 is set, not if eofbit is set.
868 (tellp, seekp, seekp): Create sentry object. Do not set badbit
870 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
871 Adjust expected behaviour.
872 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
874 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
876 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
878 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
879 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
880 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
881 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
883 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
885 * include/std/syncstream (basic_syncbuf::swap()): Remove
886 noexcept, as per LWG 3498.
888 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
891 * testsuite/17_intro/names.cc: Undef more names for newlib and
892 also for arm-none-linux-gnueabi.
893 * testsuite/experimental/names.cc: Disable PCH.
895 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
897 * include/experimental/bits/simd.h (__bit_cast): Implement via
898 __builtin_bit_cast #if available.
899 (__proposed::simd_bit_cast): Add overloads for simd and
900 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
901 available), which return an object of the requested type with
902 the same bits as the argument.
903 * include/experimental/bits/simd_math.h: Use simd_bit_cast
904 instead of __bit_cast to allow casts to fixed_size_simd.
905 (copysign): Remove branch that was only required if __bit_cast
907 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
908 from __bit_cast to __proposed::simd_bit_cast since the former
909 will not cast fixed_size objects anymore.
911 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
913 * include/experimental/bits/simd_math.h
914 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
915 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
918 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
920 * include/experimental/bits/simd.h (__execute_on_index_sequence)
921 (__execute_on_index_sequence_with_return)
922 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
925 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
927 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
928 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
931 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
933 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
934 implementation doesn't require a _VecBltnBtmsk ABI tag, it
935 requires either a 64-Byte input (in which case AVX512F must be
936 available) or AVX512VL.
938 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
940 * include/experimental/bits/simd_math.h: Undefine internal
942 (frexp): Move #if to a more sensible position and reformat
944 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
945 duplicating the code here.
946 (modf): Simplify condition.
948 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
950 * include/experimental/bits/simd_math.h (fabs): Remove
951 fabs(simd<integral>) overload.
953 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
955 * include/experimental/bits/simd_converter.h
956 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
957 * include/experimental/bits/simd_fixed_size.h
958 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
959 arguments by const-ref.
960 (_S_masked_unary): Pass _SimdTuple by const-ref.
962 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
964 * include/experimental/bits/simd_fixed_size.h
965 (_AbisInSimdTuple): Removed.
967 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
969 * include/experimental/bits/simd.h: Add missing operator~
970 overload for simd<floating-point> to __float_bitwise_operators.
971 * include/experimental/bits/simd_builtin.h
972 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
973 implement complement for floating-point vectors.
974 * include/experimental/bits/simd_fixed_size.h
975 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
976 copysign implementation of _SimdTuple members.
977 * include/experimental/bits/simd_math.h (copysign): Call
978 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
979 generic copysign implementation using the new ~ operator.
981 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
983 * testsuite/experimental/simd/README.md: Fix typos.
985 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
987 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
989 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
990 conditional noexcept as per LWG 2762.
991 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
992 dereferencing cannot throw.
993 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
994 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
995 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
997 2021-06-23 Patrick Palka <ppalka@redhat.com>
1000 * testsuite/23_containers/multiset/cons/deduction.cc:
1001 Uncomment CTAD example that was rejected by this bug.
1002 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1004 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
1006 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
1009 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1011 * testsuite/experimental/simd/README.md: New file.
1013 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1015 * testsuite/experimental/simd/driver.sh: Rewrite output
1016 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
1017 to be used twice. Add -x and -o short options. Parse long
1018 options with = instead of separating space generically. Parce
1019 contracted short options. Make unrecognized options an error.
1020 If same-line output is active, trap on EXIT to increment the
1021 progress (only with --percentage), erase the line and print the
1023 * testsuite/experimental/simd/generate_makefile.sh: Initialize
1024 helper files for progress account keeping. Update help target
1025 for changes to DRIVEROPTS.
1027 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1029 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
1030 and associated warning.
1031 * testsuite/Makefile.in: Regenerate.
1033 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
1034 Jonathan Wakely <jwakely@redhat.com>
1035 Ulrich Drepper <drepper@redhat.com>
1037 * include/std/chrono (chrono::year::is_leap()): Optimize.
1039 2021-06-23 Patrick Palka <ppalka@redhat.com>
1042 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
1044 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1045 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1046 Mention one of the replaced examples is broken due to PR101174.
1047 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1048 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
1049 ambiguous CTAD examples.
1050 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1052 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1054 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
1056 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
1058 * include/std/mutex (__detail::__try_lock_impl): Rename
1059 parameter to avoid clashing with newlib's __lockable macro.
1060 (try_lock): Add 'inline' specifier.
1061 * testsuite/17_intro/names.cc: Add check for __lockable.
1062 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
1064 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1065 Matthias Kretz <m.kretz@gsi.de>
1067 * include/std/mutex (lock): Replace recursion with iteration
1068 when lockables all have the same type.
1069 (__detail::__try_lock_impl): Likewise. Pass lockables as
1070 parameters, instead of a tuple. Always lock the first one, and
1071 recurse for the rest.
1072 (__detail::__lock_impl): Adjust call to __try_lock_impl.
1073 (__detail::__try_to_lock): Remove.
1074 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
1075 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
1077 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
1079 * testsuite/30_threads/try_lock/5.cc: New test.
1081 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1083 * include/std/memory (declare_reachable, undeclare_reachable)
1084 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
1085 (pointer_safety): Only define for C++11 to C++20 inclusive.
1086 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
1088 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1090 * include/bits/random.h (seed_seq): Constrain initializer-list
1092 * include/bits/random.tcc (seed_seq): Add template parameter.
1093 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
1095 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
1098 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
1101 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
1102 Force _M_release() to wake all waiting threads.
1103 * testsuite/30_threads/semaphore/100806.cc: New test.
1105 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
1107 * include/std/mutex (__try_to_lock): Move to __detail namespace.
1108 (struct __try_lock_impl): Replace with ...
1109 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
1110 function templates to implement std::try_lock.
1111 (try_lock): Use new __try_lock_impl.
1112 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
1113 template to implement std::lock.
1114 (lock): Use __lock_impl.
1116 2021-06-21 Patrick Palka <ppalka@redhat.com>
1118 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1120 2021-06-20 Patrick Palka <ppalka@redhat.com>
1122 * include/std/ranges (__non_propagating_cache::operator bool):
1123 Define for split_view::begin().
1124 (split_view): Define as per P2210.
1125 (views::__detail::__can_split_view): Define.
1126 (views::_Split, views::split): Define.
1127 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
1129 * testsuite/std/ranges/adaptors/split.cc: New test.
1130 * testsuite/std/ranges/p2325.cc (test08a): New test.
1131 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
1133 2021-06-20 Patrick Palka <ppalka@redhat.com>
1135 * include/std/ranges: Rename views::split to views::lazy_split,
1136 split_view to lazy_split_view, etc. throughout.
1137 * testsuite/std/ranges/*: Likewise.
1138 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
1139 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
1141 2021-06-20 Patrick Palka <ppalka@redhat.com>
1143 * include/std/ranges (split_view::_OuterIter::__at_end):
1144 Check _M_trailing_empty.
1145 (split_view::_OuterIter::_M_trailing_empty): Define this
1147 (split_view::_OuterIter::operator++): Set _M_trailing_empty
1149 (split_view::_OuterIter::operator==): Compare
1151 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
1152 split parts instead of one.
1153 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
1155 2021-06-20 Patrick Palka <ppalka@redhat.com>
1157 * include/std/ranges (split_view::_InnerIter::base): Define as
1160 2021-06-19 Patrick Palka <ppalka@redhat.com>
1162 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
1163 Consider _Base instead of _Vp as per LWG 3555.
1164 (elements_view::_Iterator::_S_iter_concept): Likewise.
1166 2021-06-19 Patrick Palka <ppalka@redhat.com>
1168 * include/std/ranges (split_view::_OuterIter::value_type::begin):
1169 Remove the non-const overload, and remove the copyable constraint
1170 on the const overload as per LWG 3553.
1172 2021-06-19 Patrick Palka <ppalka@redhat.com>
1174 * include/bits/stl_iterator.h
1175 (__detail::__common_iter_use_postfix_proxy): Add
1176 move_constructible constraint as per LWG 3546.
1177 (common_iterator::__postfix_proxy): Adjust initializer of
1178 _M_keep as per LWG 3546.
1180 2021-06-18 Patrick Palka <ppalka@redhat.com>
1183 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
1184 to limit comparison complexity to 3*N/2.
1185 (__minmax_element_fn::operator()): Likewise.
1186 (shift_right): Avoid premature std::move of __result.
1187 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
1189 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
1192 2021-06-18 Patrick Palka <ppalka@redhat.com>
1194 * include/std/concepts (convertible_to): Just use declval as per
1197 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
1200 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
1201 incorrect static_assert with ones matching the 'Mandates'
1202 conditions in the standard.
1203 * testsuite/26_numerics/reduce/95833.cc: New test.
1205 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
1207 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
1208 diagnostic pragma to suppress -Wstringop-overread error.
1210 2021-06-18 Patrick Palka <ppalka@redhat.com>
1212 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
1213 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
1214 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
1215 * include/bits/ranges_util.h: ... here.
1216 * include/std/ranges (__detail::find, __detail::find_if)
1217 (__detail::find_if_not, __detail::mismatch): Remove.
1218 (filter_view): Use ranges::find_if instead.
1219 (drop_while_view): Use ranges::find_if_not instead.
1220 (split_view): Use ranges::find and ranges::mismatch instead.
1222 2021-06-18 Patrick Palka <ppalka@redhat.com>
1224 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
1225 default_initializable requirement.
1226 * include/bits/ranges_base.h (ranges::view): Likewise.
1227 * include/bits/ranges_util.h (subrange): Constrain the default
1229 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
1231 (front_insert_iterator): Likewise.
1232 (insert_iterator): Likewise. Remove NSDMIs.
1233 (common_iterator): Constrain the default ctor.
1234 (counted_iterator): Likewise.
1235 * include/bits/stream_iterator.h (ostream_iterator): Remove the
1237 * include/std/ranges (__detail::__box::operator=): Handle
1238 self-assignment in the primary template.
1239 (__detail::__box): In the partial specialization: adjust
1240 constraints as per P2325. Add specialized operator= for the
1241 case when the wrapped type is not copyable. Constrain the
1242 default ctor. Avoid list-initialization.
1243 (single_view): Constraint the default ctor.
1244 (iota_view): Relax semiregular constraint to copyable.
1245 Constrain the default ctor.
1246 (iota_view::_Iterator): Constraint the default ctor.
1247 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
1248 Remove redundant checks for empty _M_stream.
1249 (basic_istream_view::_Iterator): Likewise.
1250 (ref_view): Remove the default ctor. Remove NSDMIs.
1251 (ref_view::_Iterator): Constrain the default ctor.
1252 (__detail::__non_propagating_cache::operator=): Define overload
1253 for assigning from a value of the underlying type.
1254 (filter_view): Likewise.
1255 (filter_view::_Iterator): Likewise.
1256 (transform_view): Likewise.
1257 (transform_view::_Iterator): Likewise.
1258 (take_view): Likewise.
1259 (take_view::_Iterator): Likewise.
1260 (take_while_view): Likewise.
1261 (take_while_view::_Iterator): Likewise.
1262 (drop_while_view): Likewise.
1263 (drop_while_view::_Iterator): Likewise.
1264 (join_view): Likewise.
1265 (split_view::_OuterIter::__current): Adjust after changing the
1267 (split_view::_M_current): Wrap it in a __non_propagating_cache.
1268 (split_view::split_view): Constrain the default ctor.
1269 (common_view): Constrain the default ctor.
1270 (reverse_view): Likewise.
1271 (elements_view): Likewise.
1272 * include/std/span (enable_view<span<_ElementType, _Extent>>):
1273 Define this partial specialization to true unconditionally.
1274 * include/std/version (__cpp_lib_ranges): Adjust value.
1275 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
1276 Don't attempt to default construct a back_insert_iterator.
1277 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
1278 Don't attempt to default construct a front_insert_iterator.
1279 * testsuite/24_iterators/insert_iterator/constexpr.cc:
1280 Don't attempt to default construct an insert_iterator.
1281 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
1282 Remove this test for default constructibility of ostream_iterator.
1283 * testsuite/std/ranges/97600.cc: Don't attempt to default
1284 construct a basic_istream_view.
1285 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
1287 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
1288 (test02): Adjust now that __box is copyable-box not
1291 * testsuite/std/ranges/p2325.cc: New test.
1292 * testsuite/std/ranges/single_view.cc (test06): New test.
1293 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
1294 require default_initializable.
1296 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
1299 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
1300 define when is_constant_evaluated is available.
1301 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
1303 (__constant_string_p, __constant_array_p): Remove.
1304 (char_traits): Use is_constant_evaluated directly.
1305 * include/std/version (__cpp_lib_constexpr_char_traits)
1306 (__cpp_lib_constexpr_string): Only define when
1307 is_constant_evaluated is available.
1309 2021-06-17 Patrick Palka <ppalka@redhat.com>
1312 * include/std/ranges (__adaptor::_Partial): For the "simple"
1313 forwarding partial specializations, also require that
1314 the extra arguments are trivially copyable.
1315 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
1317 2021-06-17 Patrick Palka <ppalka@redhat.com>
1320 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
1321 template form of _S_has_simple_extra_args.
1322 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
1323 parameter pack. Try to treat _S_has_simple_extra_args as a
1324 variable template parameterized by _Args.
1325 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
1326 __adaptor_has_simple_extra_args.
1327 (views::_Take::_S_has_simple_extra_args): Templatize according
1328 to the type of the extra argument.
1329 (views::_Drop::_S_has_simple_extra_args): Likewise.
1330 (views::_Split::_S_has_simple_extra_args): Define.
1331 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
1332 Adjust after changes to _S_has_simple_extra_args mechanism.
1335 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
1337 * include/bits/iterator_concepts.h (__decay_copy): Name type.
1339 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
1341 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1342 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
1343 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1344 (ranges::empty, ranges::data, ranges::cdata): Remove final
1345 keywords and deleted operator& overloads.
1346 * testsuite/24_iterators/customization_points/iter_move.cc: Use
1347 new is_customization_point_object function.
1348 * testsuite/24_iterators/customization_points/iter_swap.cc:
1350 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
1352 * testsuite/std/ranges/access/begin.cc: Likewise.
1353 * testsuite/std/ranges/access/cbegin.cc: Likewise.
1354 * testsuite/std/ranges/access/cdata.cc: Likewise.
1355 * testsuite/std/ranges/access/cend.cc: Likewise.
1356 * testsuite/std/ranges/access/crbegin.cc: Likewise.
1357 * testsuite/std/ranges/access/crend.cc: Likewise.
1358 * testsuite/std/ranges/access/data.cc: Likewise.
1359 * testsuite/std/ranges/access/empty.cc: Likewise.
1360 * testsuite/std/ranges/access/end.cc: Likewise.
1361 * testsuite/std/ranges/access/rbegin.cc: Likewise.
1362 * testsuite/std/ranges/access/rend.cc: Likewise.
1363 * testsuite/std/ranges/access/size.cc: Likewise.
1364 * testsuite/std/ranges/access/ssize.cc: Likewise.
1365 * testsuite/util/testsuite_iterators.h
1366 (is_customization_point_object): New function.
1368 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
1370 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1371 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
1372 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1373 (ranges::empty, ranges::data, ranges::cdata): Make types final.
1374 Add deleted operator& overloads.
1375 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
1377 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
1378 ill-formed & expressions with using-declarations. Add checks for
1379 other function objects.
1381 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
1383 * include/bits/ranges_util.h (view_interface): Add noexcept to
1384 empty, operator bool, data and size members.
1385 (subrange): Add noexcept to constructors.
1386 * include/std/ranges (single_view, ref_view): Add noexcept to
1388 (views::single, views::all): Add noexcept.
1389 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
1390 * testsuite/std/ranges/single_view.cc: Likewise.
1392 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
1394 * include/bits/ranges_util.h (subrange): Add __size_type typedef
1395 and use it to simplify declarations.
1396 (subrange(i, s, n)): Remove assertion.
1397 * testsuite/std/ranges/subrange/constexpr.cc: New test.
1399 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
1401 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
1402 Replace with function object.
1403 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
1404 __decay_copy unqualified.
1405 * include/bits/ranges_base.h (__member_end, __adl_end):
1406 Likewise. Use __range_iter_t for type of ranges::begin.
1407 (__member_rend): Use correct value category for rbegin argument.
1408 (__member_data): Use __decay_copy unqualified.
1409 (__begin_data): Use __range_iter_t for type of ranges::begin.
1411 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1413 * include/bits/ranges_base.h (ranges::empty): Check whether
1414 conversion to bool can throw.
1415 * testsuite/std/ranges/access/empty.cc: Check for correct
1418 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1421 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
1422 use the type if it's a reference.
1423 * testsuite/20_util/common_reference/100894.cc: New test.
1425 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1427 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
1428 Add dg-require-filesystem-ts directive.
1430 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1433 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
1434 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
1436 * testsuite/20_util/any/cons/101034.cc: New test.
1438 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1440 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
1441 -std=gnu++17 option.
1443 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1446 * libsupc++/compare (compare_partial_order_fallback): Add
1447 constraint using reversed parameter order, as per LWG 3465.
1448 * testsuite/18_support/comparisons/algorithms/fallback.cc:
1449 Adjust expected result.
1451 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1453 * libsupc++/compare (__decayed_same_as): New helper concept.
1454 (strong_order, weak_order, partial_order): Constrain with new
1455 concept instead of using static_assert.
1456 (compare_strong_order_fallback, compare_weak_order_fallback)
1457 (compare_partial_order_fallback): Likewise. Do not deduce return
1458 types. Remove redundant if-constexpr checks.
1459 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
1461 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1464 * include/std/tuple: Use reserved form of attribute name.
1465 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
1466 check for no_unique_address.
1467 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
1469 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
1472 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
1474 * include/bits/fs_path.h (operator==, operator<=>): Use new
1475 _S_compare function.
1476 (path::_S_compare): New function to call path::compare in a
1477 context where path::iterator is complete.
1478 * include/experimental/bits/fs_path.h (operator<, operator==):
1479 Define after path::iterator is complete.
1480 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
1482 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
1485 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
1487 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
1488 test logic with constexpr check for is_always_lock_free.
1490 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
1493 * include/std/optional (optional::operator=(const optional<U>&)):
1494 Fix value category used in is_assignable check.
1495 * testsuite/20_util/optional/assignment/100982.cc: New test.
1497 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
1499 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
1500 * include/bits/iterator_concepts.h (indirectly_readable_traits):
1501 Add LWG issue number to comment.
1502 * include/std/memory_resource (polymorphic_allocator::release):
1504 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
1505 dg-warning for deprecation. Also check std::allocator<void>.
1507 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
1510 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
1511 Change parameter type from _Tp to _Tp*.
1512 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
1513 coverage of types tested.
1515 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
1517 * include/std/barrier (__tree_barrier::_M_arrive): Remove
1518 unnecessary hasher instantiation.
1520 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
1522 * include/experimental/propagate_const (swap): Constrain.
1523 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
1525 2021-06-07 Avi Kivity <avi@scylladb.com>
1528 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
1529 Add missing typename.
1531 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
1534 * include/std/optional (operator<=>(const optional<T>& const U&)):
1535 Add missing constraint and add workaround for template
1537 * testsuite/20_util/optional/relops/three_way.cc: Check that
1538 type without equality comparison cannot be compared when wrapped
1541 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
1544 * include/bits/ranges_base.h (_SSize): Return signed type.
1545 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
1547 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
1549 * include/bits/ranges_base.h (_SSize): Return the result of
1550 ranges::size converted to the wider of make-signed-like-t<S> and
1551 ptrdiff_t, rather than the ranges different type.
1552 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
1553 for an iota_view that uses an integer class type for its
1556 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
1559 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
1560 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
1562 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
1565 * include/bits/iterator_concepts.h (__detail::__decay_copy)
1566 (__detail::__member_begin, __detail::__adl_begin): Move to
1567 namespace ranges::__cust_access.
1568 (__detail::__ranges_begin): Likewise, and rename to __begin.
1569 Remove redundant static assertion.
1570 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
1571 Use lvalue in noexcept specifier.
1572 (__as_const): Add non-deduced parameter for value category.
1573 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
1575 (__member_size, __adl_size, __member_empty, __size0_empty):
1576 (__eq_iter_empty, __adl_data): Use lvalue objects in
1578 (__sentinel_size): Likewise. Add check for conversion to
1580 (__member_data): Allow non-lvalue types to satisfy the concept,
1581 but use lvalue object in requirements.
1582 (_Size, _SSize): Remove forwarding to always use an lvalue.
1583 (_Data): Likewise. Add static assertion for arrays.
1584 * testsuite/std/ranges/access/cdata.cc: Adjust expected
1585 behaviour for rvalues. Add negative tests for ill-formed
1587 * testsuite/std/ranges/access/data.cc: Likewise.
1588 * testsuite/std/ranges/access/empty.cc: Adjust expected
1589 behaviour for rvalues.
1590 * testsuite/std/ranges/access/size.cc: Likewise.
1592 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
1594 * include/std/any (any::_Manager::_S_access): New static
1595 function to access the contained value.
1596 (any::emplace, __any_caster): Use _S_access member of the
1599 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
1601 * doc/xml/manual/status_cxx2020.xml:
1602 * doc/html/*: Regenerate.
1603 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
1605 * include/std/version (__cpp_lib_generic_unordered_lookup):
1607 * testsuite/23_containers/unordered_map/operations/1.cc: Check
1609 * testsuite/23_containers/unordered_set/operations/1.cc:
1612 2021-06-03 Patrick Palka <ppalka@redhat.com>
1614 * include/bits/ranges_algo.h (__detail::__can_reread_output):
1615 Factor out this concept from ...
1616 (__unique_copy_fn::operator()): ... here. Use the concept
1618 * testsuite/std/ranges/range.cc: Remove now ill-formed use
1619 of range_value_t on an output_range.
1620 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
1621 Define value_type, pointer and reference member types to void.
1623 2021-06-03 Patrick Palka <ppalka@redhat.com>
1626 * include/std/ranges (_RangeAdaptorClosure): Document
1627 _S_has_simple_call_op mechanism.
1628 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
1629 (__closure_has_simple_call_op): New concept.
1630 (__adaptor_has_simple_extra_args): Likewise.
1631 (_Partial<_Adaptor, _Args...>): New partial specialization.
1632 (_Partial<_Adaptor, _Arg>): Likewise.
1633 (_Pipe<_Lhs, _Rhs>): Likewise.
1634 (views::_All::_S_has_simple_call_op): Define to true.
1635 (views::_Filter::_S_has_simple_extra_args): Likewise.
1636 (views::_Transform::_S_has_simple_extra_args): Likewise.
1637 (views::_Take::_S_has_simple_extra_args): Likewise.
1638 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
1639 (views::_Drop::_S_has_simple_extra_args): Likewise.
1640 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
1641 (views::_Join::_S_has_simple_call_op): Likewise.
1642 (views::_Split): Document why we don't define
1643 _S_has_simple_extra_args to true for this adaptor.
1644 (views::_Common::_S_has_simple_call_op): Define to true.
1645 (views::_Reverse::_S_has_simple_call_op): Likewise.
1646 (views::_Elements::_S_has_simple_call_op): Likewise.
1647 * testsuite/std/ranges/adaptors/100577.cc: New test.
1649 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
1653 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
1654 Value-initialize subobject.
1655 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
1657 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
1660 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
1663 * testsuite/23_containers/unordered_map/96088.cc: Adjust
1664 expected number of allocations.
1665 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
1667 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
1669 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
1670 * doc/xml/manual/status_cxxtr1.xml: Likewise.
1671 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
1672 * doc/html/*: Regenerate.
1674 2021-06-01 Patrick Palka <ppalka@redhat.com>
1677 * testsuite/23_containers/deque/allocator/default_init.cc,
1678 testsuite/23_containers/forward_list/allocator/default_init.cc,
1679 testsuite/23_containers/list/allocator/default_init.cc,
1680 testsuite/23_containers/map/allocator/default_init.cc,
1681 testsuite/23_containers/set/allocator/default_init.cc,
1682 testsuite/23_containers/vector/allocator/default_init.cc,
1683 testsuite/23_containers/vector/bool/allocator/default_init.cc:
1686 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
1688 * testsuite/23_containers/unordered_map/96088.cc: Change
1689 effective target to c++17.
1690 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
1692 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
1694 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
1695 isblank for C++11 and later.
1697 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
1700 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
1701 Fix return value for no-op case.
1702 * testsuite/24_iterators/range_operations/advance.cc: Test
1703 return values of three-argument overload.
1705 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
1708 * python/Makefile.am: Use archive name for printer hook if no
1709 dynamic library name is available.
1710 * python/Makefile.in: Regenerate.
1712 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
1714 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
1715 Compilers for Linux: Compatibility with GNU Compilers" article.
1716 * doc/html/manual/abi.html: Regenerate.
1718 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
1720 * include/debug/formatter.h
1721 (_Error_formatter::_Parameter::_Named): New.
1722 (_Error_formatter::_Parameter::_Type): Inherit latter.
1723 (_Error_formatter::_Parameter::_M_integer): Likewise.
1724 (_Error_formatter::_Parameter::_M_string): Likewise.
1725 * src/c++11/debug.cc: Include <cstring>.
1726 (_Print_func_t): New.
1727 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
1728 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
1729 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
1730 (print_type): Rename in...
1731 (print_type_info): ...this. Use pretty_print.
1732 (print_address, print_integer): New.
1733 (print_named_name, print_iterator_constness, print_iterator_state): New.
1734 (print_iterator_seq_type): New.
1735 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
1736 (print_field): Use latters.
1737 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
1738 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
1739 Change signature to...
1740 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
1741 ...this and adapt. Remove intermediate buffer to render input string.
1742 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
1744 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
1747 * include/bits/ranges_base.h (advance, distance, next, prev):
1748 Replace function templates with function objects.
1749 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
1750 Adjust for changes to function objects.
1751 * testsuite/std/ranges/adaptors/elements.cc: Add using
1752 declarations for names from namespace ranges.
1753 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
1754 * testsuite/24_iterators/range_operations/100768.cc: New test.
1756 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
1759 * include/bits/hashtable_policy.h (_Select2nd): New.
1760 (_NodeBuilder<>): New.
1761 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
1762 (_AllocNode<>::operator()): Likewise.
1763 * include/bits/hashtable.h
1764 (_Hashtable<>::__node_builder_t): New.
1765 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
1767 (_Hashtable<>::_S_forward_key): New.
1768 (_Hashtable<>::_M_insert): Use latter.
1769 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
1770 Instantiate node first, compute hash code second.
1771 * testsuite/23_containers/unordered_map/96088.cc: New test.
1772 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
1773 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
1774 * testsuite/23_containers/unordered_set/96088.cc: New test.
1775 * testsuite/util/replacement_memory_operators.h
1776 (counter::_M_increment): New.
1777 (counter::_M_decrement): New.
1778 (counter::reset()): New.
1780 2021-05-24 Patrick Palka <ppalka@redhat.com>
1783 * include/std/ranges (__detail::__non_propagating_cache): Move
1784 definition up to before that of _CachedPosition. Make base
1785 class _Optional_base protected instead of private. Add const
1786 overload for operator*.
1787 (__detail::_CachedPosition): Rewrite the partial specialization
1788 for forward ranges as a derived class of __non_propagating_cache.
1789 Remove the size constraint on the partial specialization for
1790 random access ranges. Add copy/move/copy-assignment/move-assignment
1791 members to the offset partial specialization for random
1792 access ranges that propagate the cached value but additionally
1793 invalidate it in the source object on move.
1794 * testsuite/std/ranges/adaptors/100479.cc: New test.
1796 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
1798 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
1799 call to ranges::next.
1800 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
1801 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
1803 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
1806 2021-05-21 Patrick Palka <ppalka@redhat.com>
1809 * include/std/ranges (drop_while_view::begin): Assert the
1810 precondition added by LWG 3490.
1812 2021-05-21 Patrick Palka <ppalka@redhat.com>
1815 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
1816 Split out this member function from ...
1817 (iota_view::_Sentinel::operator-): ... here, for sake of access
1819 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
1821 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
1823 * include/bits/random.tcc (__representable_as_double)
1824 (__p1_representable_as_double): Add "" to static asserts.
1826 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
1829 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
1830 (__glibcxx_constexpr_assert): ... this.
1831 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
1832 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
1833 or __glibcxx_assert_impl.
1834 (__glibcxx_assert_2): Remove
1835 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
1836 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
1837 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
1838 Adjust expected error.
1839 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
1841 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
1844 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
1846 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
1848 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
1850 * testsuite/23_containers/span/back_neg.cc: Likewise.
1851 * testsuite/23_containers/span/front_neg.cc: Likewise.
1852 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
1854 2021-05-20 Patrick Palka <ppalka@redhat.com>
1857 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
1858 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
1859 (reverse_iterator::reference): Likewise, but with iter_reference_t.
1860 (reverse_iterator::value_type): Likewise, but with iter_value_t.
1861 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
1862 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
1864 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
1867 * include/std/charconv (to_chars): Hide the overloads for
1868 floating-point types for 16 bit targets.
1869 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
1870 * testsuite/20_util/to_chars/double.cc: Run this test only on
1872 * testsuite/20_util/to_chars/float.cc: Likewise.
1873 * testsuite/20_util/to_chars/long_double.cc: Likewise.
1875 2021-05-18 Patrick Palka <ppalka@redhat.com>
1878 * include/std/ranges (elements_view::_Sentinel::operator-): Use
1879 _M_distance_from in the other operator- overload too.
1880 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
1882 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
1884 * testsuite/lib/prune.exp: Add note about 'dg-note'.
1886 2021-05-18 Patrick Palka <ppalka@redhat.com>
1889 * include/std/ranges (__box::__box): Use non-list-initialization
1890 in member initializer list of in-place constructor of the
1891 partial specialization for semiregular types.
1892 (__box::operator->): Use std::__addressof.
1893 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
1895 * testsuite/std/ranges/single_view.cc (test04): New test.
1897 2021-05-18 Patrick Palka <ppalka@redhat.com>
1900 * include/std/ranges (reverse_view::_S_needs_cached_begin):
1901 Set to true if the underlying non-common random-access range
1902 doesn't have a sized sentinel.
1904 2021-05-18 Patrick Palka <ppalka@redhat.com>
1907 * include/std/ranges (elements_view::_Iterator): Also befriend
1909 (elements_view::_Sentinel::_M_equal): Templatize.
1910 (elements_view::_Sentinel::_M_distance_from): Split out from ...
1911 (elements_view::_Sentinel::operator-): ... here. Depend on
1912 _Base2 instead of _Base in the return type.
1913 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
1916 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
1918 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
1919 until value change observed.
1920 (__waiter_base::_M_laundered): New member.
1921 (__waiter_base::_M_notify): Check _M_laundered to determine
1922 whether to wake one or all.
1923 (__detail::__atomic_compare): Return true if call to
1924 __builtin_memcmp() == 0.
1925 (__waiter_base::_S_do_spin_v): Adjust predicate.
1926 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
1929 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
1932 * include/experimental/bits/fs_path.h (__is_constructible_from):
1933 Test construction from a const lvalue, not an rvalue.
1934 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
1935 * testsuite/experimental/filesystem/path/construct/100630.cc:
1938 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
1941 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
1942 Declare (but do not define) partial specialization.
1943 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
1945 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
1947 * include/std/thread (jthread::_S_create): Fix static assert
1949 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
1950 * testsuite/30_threads/jthread/jthread.cc: Do not require
1951 pthread effective target.
1952 * testsuite/30_threads/jthread/2.cc: Moved to...
1953 * testsuite/30_threads/jthread/version.cc: ...here.
1955 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
1957 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
1958 * doc/Makefile.in: Regenerate.
1959 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
1961 * scripts/run_doxygen (print_usage): Always print to stdout and
1963 (fail): New function for exiting on error.
1964 (parse_options): Handle --latex_cmd. Do not treat --help the
1965 same as errors. Simplify handling of required arguments.
1967 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
1969 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
1970 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
1971 warnings. Replace bitwise AND with logical AND in loop
1973 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
1974 Replace bitwise AND with logical AND in loop condition.
1975 * testsuite/util/pstl/test_utils.h: Remove unused parameter
1978 2021-05-11 Patrick Palka <ppalka@redhat.com>
1980 * src/c++17/ryu/LOCAL_PATCHES: Update.
1981 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
1982 Remove declarations for never-defined functions.
1983 * testsuite/20_util/to_chars/4.cc: New test.
1985 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
1987 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
1988 alternative for macro.
1989 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
1991 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
1994 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
1996 * include/bits/allocator.h (allocator<void>) [C++20]: Add
1997 missing noexcept to constructor. Restore missing POCMA and
1998 is_always_equal_traits.
1999 [C++17]: Make construct and destroy members private and
2000 declare allocator_traits as a friend.
2001 * include/bits/memoryfwd.h (allocator_traits): Declare.
2002 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
2003 Add nodiscard attribute. Add static assertion for LWG 3307.
2004 * include/ext/new_allocator.h (new_allocator::allocate): Add
2005 static assertion for LWG 3307.
2006 * testsuite/20_util/allocator/void.cc: Check that converting
2007 constructor is noexcept. Check for propagation traits and
2008 size_type and difference_type. Check that pointer and
2009 const_pointer are gone in C++20.
2011 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2013 * include/std/stop_token: Remove TODO comment.
2015 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2017 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
2018 Initialize a non-reference deleter from an rvalue, as per LWG
2020 (__shared_ptr::_UniqCompatible): Add missing constraint.
2021 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
2022 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
2025 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2027 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
2028 -std=gnu++17 from dg-options directive.
2029 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
2031 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
2033 * testsuite/17_intro/headers/c++2017/operator_names.cc:
2035 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
2036 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
2037 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
2039 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
2040 * testsuite/18_support/byte/81076.cc: Likewise.
2041 * testsuite/18_support/byte/global_neg.cc: Likewise.
2042 * testsuite/18_support/byte/ops.cc: Likewise.
2043 * testsuite/18_support/byte/requirements.cc: Likewise.
2044 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
2045 * testsuite/18_support/launder/1.cc: Likewise.
2046 * testsuite/18_support/launder/nodiscard.cc: Likewise.
2047 * testsuite/18_support/launder/requirements.cc: Likewise.
2048 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
2049 * testsuite/18_support/new_aligned.cc: Likewise.
2050 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
2052 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
2054 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
2055 * testsuite/20_util/addressof/requirements/constexpr.cc:
2057 * testsuite/20_util/as_const/1.cc: Likewise.
2058 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
2059 * testsuite/20_util/bind/83427.cc: Likewise.
2060 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2061 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
2062 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
2064 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2066 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
2067 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
2069 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
2070 * testsuite/20_util/from_chars/requirements.cc: Likewise.
2071 * testsuite/20_util/function/91456.cc: Likewise.
2072 * testsuite/20_util/function/cons/deduction.cc: Likewise.
2073 * testsuite/20_util/function_objects/83607.cc: Likewise.
2074 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
2075 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
2076 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
2077 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
2078 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
2080 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
2082 * testsuite/20_util/has_unique_object_representations/value.cc:
2084 * testsuite/20_util/hash/nullptr.cc: Likewise.
2085 * testsuite/20_util/in_place/requirements.cc: Likewise.
2086 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
2087 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2089 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
2091 * testsuite/20_util/is_aggregate/value.cc: Likewise.
2092 * testsuite/20_util/is_invocable/83395.cc: Likewise.
2093 * testsuite/20_util/is_invocable/91456.cc: Likewise.
2094 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
2096 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
2098 * testsuite/20_util/is_invocable/value.cc: Likewise.
2099 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
2100 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
2101 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
2102 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
2104 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
2105 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
2106 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
2108 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2110 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2111 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
2113 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2115 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
2117 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
2119 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
2121 * testsuite/20_util/is_swappable/value.cc: Likewise.
2122 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
2124 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
2126 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
2127 * testsuite/20_util/logical_traits/83134.cc: Likewise.
2128 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
2130 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
2132 * testsuite/20_util/logical_traits/value.cc: Likewise.
2133 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
2134 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
2135 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
2137 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
2138 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
2139 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
2140 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
2141 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
2143 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
2145 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
2146 * testsuite/20_util/to_chars/3.cc: Likewise.
2147 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
2148 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
2149 * testsuite/20_util/to_chars/requirements.cc: Likewise.
2150 * testsuite/20_util/tuple/78939.cc: Likewise.
2151 * testsuite/20_util/tuple/apply/1.cc: Likewise.
2152 * testsuite/20_util/tuple/apply/2.cc: Likewise.
2153 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
2154 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
2155 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
2156 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
2157 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2158 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
2159 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2161 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2162 * testsuite/20_util/void_t/1.cc: Likewise.
2163 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
2164 * testsuite/24_iterators/container_access.cc: Likewise.
2165 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
2167 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
2169 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
2171 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
2173 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
2174 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
2176 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
2177 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
2179 * testsuite/26_numerics/lcm/1.cc: Likewise.
2180 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
2181 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
2182 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
2184 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
2186 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
2188 * testsuite/27_io/types/4.cc: Likewise.
2189 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
2190 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
2191 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2193 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2195 * testsuite/20_util/function_objects/searchers.cc: Remove
2196 -std=gnu++17 from dg-options directive.
2197 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
2199 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2201 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
2203 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
2205 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
2207 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
2209 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
2211 * testsuite/25_algorithms/clamp/1.cc: Likewise.
2212 * testsuite/25_algorithms/clamp/2.cc: Likewise.
2213 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
2214 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
2216 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
2218 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
2219 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
2221 * testsuite/25_algorithms/sample/1.cc: Likewise.
2222 * testsuite/25_algorithms/sample/2.cc: Likewise.
2223 * testsuite/25_algorithms/sample/3.cc: Likewise.
2224 * testsuite/25_algorithms/sample/81221.cc: Likewise.
2225 * testsuite/25_algorithms/search/searcher.cc: Likewise.
2226 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
2227 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
2228 * testsuite/26_numerics/reduce/1.cc: Likewise.
2229 * testsuite/26_numerics/reduce/2.cc: Likewise.
2230 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
2231 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
2232 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
2234 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2236 * testsuite/23_containers/array/cons/deduction.cc: Remove
2237 -std=gnu++17 from dg-options directive.
2238 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
2239 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
2241 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
2243 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
2245 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
2246 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
2248 * testsuite/23_containers/forward_list/cons/deduction.cc:
2250 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
2252 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
2253 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
2255 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
2256 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
2257 * testsuite/23_containers/map/modifiers/insert/83226.cc:
2259 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
2261 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
2262 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
2264 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
2265 * testsuite/23_containers/multimap/modifiers/extract.cc:
2267 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
2268 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
2269 * testsuite/23_containers/multiset/modifiers/extract.cc:
2271 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
2272 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
2273 * testsuite/23_containers/queue/deduction.cc: Likewise.
2274 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
2276 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2277 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
2278 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
2279 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
2280 * testsuite/23_containers/stack/deduction.cc: Likewise.
2281 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
2283 * testsuite/23_containers/unordered_map/cons/deduction.cc:
2285 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
2287 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
2289 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
2291 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
2293 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
2295 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
2297 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
2299 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
2301 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
2303 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
2305 * testsuite/23_containers/unordered_set/cons/deduction.cc:
2307 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
2309 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
2311 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
2313 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
2314 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
2315 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
2318 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2320 * testsuite/21_strings/basic_string/79162.cc: Remove
2321 -std=gnu++17 from dg-options directive.
2322 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2323 * testsuite/21_strings/basic_string/cons/char/79162.cc:
2325 * testsuite/21_strings/basic_string/cons/char/86138.cc:
2327 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
2328 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
2330 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
2332 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2333 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
2335 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
2337 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
2338 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2340 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
2342 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
2343 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
2344 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
2345 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2347 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2349 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2351 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2353 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2355 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2357 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2359 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2361 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2363 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2365 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
2367 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
2369 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
2371 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2373 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2375 * testsuite/21_strings/basic_string/operators/char/5.cc:
2377 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
2379 * testsuite/21_strings/basic_string_view/capacity/1.cc:
2381 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
2383 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
2385 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
2387 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
2389 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2391 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
2393 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
2395 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
2397 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2399 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2401 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2403 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
2405 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
2407 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
2409 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2411 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2413 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
2415 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
2417 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2419 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2421 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
2423 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
2425 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
2427 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2429 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2431 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
2433 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2434 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
2436 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
2438 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
2440 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
2442 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2444 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2446 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2448 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2450 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
2452 * testsuite/21_strings/basic_string_view/literals/types.cc:
2454 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
2456 * testsuite/21_strings/basic_string_view/literals/values.cc:
2458 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2460 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2462 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2464 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2466 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
2468 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
2470 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2472 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2474 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
2476 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
2478 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
2480 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2482 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2484 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
2486 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2488 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
2490 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2492 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
2494 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2496 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2498 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2500 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2502 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2504 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2506 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
2508 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2510 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2512 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2514 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2516 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2518 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2520 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2522 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
2524 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2526 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2528 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2530 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2532 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2534 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
2536 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2538 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
2540 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
2542 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
2544 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2546 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
2548 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2550 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2552 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2554 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2556 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2558 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2560 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
2562 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2564 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
2566 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2568 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2569 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2570 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
2572 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
2574 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2576 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
2577 from dg-options directive.
2578 * testsuite/20_util/memory_resource/2.cc: Likewise.
2579 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
2580 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
2582 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
2584 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
2586 * testsuite/20_util/monotonic_buffer_resource/release.cc:
2588 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
2590 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
2591 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
2593 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
2594 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
2595 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
2597 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
2599 * testsuite/20_util/synchronized_pool_resource/cons.cc:
2601 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
2603 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
2605 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
2607 * testsuite/20_util/synchronized_pool_resource/options.cc:
2609 * testsuite/20_util/synchronized_pool_resource/release.cc:
2611 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
2613 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
2615 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
2617 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
2619 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
2621 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
2623 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
2625 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
2627 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
2628 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
2630 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
2632 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
2634 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
2635 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
2636 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
2637 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
2638 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
2639 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
2641 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
2642 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
2644 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
2645 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
2646 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
2648 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
2650 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
2652 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
2654 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
2656 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
2658 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
2660 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
2662 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
2663 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
2665 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
2667 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2669 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
2671 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
2672 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
2673 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
2674 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
2675 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
2676 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
2677 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
2678 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
2680 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
2682 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
2683 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
2684 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
2686 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
2687 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
2689 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
2690 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
2691 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
2692 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
2694 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2696 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
2697 dg-options directive.
2698 * testsuite/20_util/any/assign/2.cc: Likewise.
2699 * testsuite/20_util/any/assign/emplace.cc: Likewise.
2700 * testsuite/20_util/any/assign/exception.cc: Likewise.
2701 * testsuite/20_util/any/assign/self.cc: Likewise.
2702 * testsuite/20_util/any/cons/1.cc: Likewise.
2703 * testsuite/20_util/any/cons/2.cc: Likewise.
2704 * testsuite/20_util/any/cons/90415.cc: Likewise.
2705 * testsuite/20_util/any/cons/92156.cc: Likewise.
2706 * testsuite/20_util/any/cons/aligned.cc: Likewise.
2707 * testsuite/20_util/any/cons/explicit.cc: Likewise.
2708 * testsuite/20_util/any/cons/in_place.cc: Likewise.
2709 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
2710 * testsuite/20_util/any/make_any.cc: Likewise.
2711 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
2712 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
2713 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
2714 * testsuite/20_util/any/misc/swap.cc: Likewise.
2715 * testsuite/20_util/any/modifiers/1.cc: Likewise.
2716 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
2717 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
2718 * testsuite/20_util/any/observers/type.cc: Likewise.
2719 * testsuite/20_util/any/requirements.cc: Likewise.
2720 * testsuite/20_util/any/typedefs.cc: Likewise.
2721 * testsuite/20_util/optional/77288.cc: Likewise.
2722 * testsuite/20_util/optional/84601.cc: Likewise.
2723 * testsuite/20_util/optional/assignment/1.cc: Likewise.
2724 * testsuite/20_util/optional/assignment/2.cc: Likewise.
2725 * testsuite/20_util/optional/assignment/3.cc: Likewise.
2726 * testsuite/20_util/optional/assignment/4.cc: Likewise.
2727 * testsuite/20_util/optional/assignment/5.cc: Likewise.
2728 * testsuite/20_util/optional/assignment/6.cc: Likewise.
2729 * testsuite/20_util/optional/assignment/7.cc: Likewise.
2730 * testsuite/20_util/optional/assignment/8.cc: Likewise.
2731 * testsuite/20_util/optional/assignment/9.cc: Likewise.
2732 * testsuite/20_util/optional/bad_access.cc: Likewise.
2733 * testsuite/20_util/optional/cons/77727.cc: Likewise.
2734 * testsuite/20_util/optional/cons/85642.cc: Likewise.
2735 * testsuite/20_util/optional/cons/copy.cc: Likewise.
2736 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
2737 * testsuite/20_util/optional/cons/default.cc: Likewise.
2738 * testsuite/20_util/optional/cons/move.cc: Likewise.
2739 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
2740 * testsuite/20_util/optional/cons/value.cc: Likewise.
2741 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
2742 * testsuite/20_util/optional/constexpr/cons/default.cc:
2744 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
2745 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
2746 * testsuite/20_util/optional/constexpr/make_optional.cc:
2748 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
2749 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
2750 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
2751 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
2752 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
2753 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
2754 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
2755 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
2756 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
2757 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
2758 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
2759 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
2760 * testsuite/20_util/optional/hash.cc: Likewise.
2761 * testsuite/20_util/optional/in_place.cc: Likewise.
2762 * testsuite/20_util/optional/make_optional.cc: Likewise.
2763 * testsuite/20_util/optional/nullopt.cc: Likewise.
2764 * testsuite/20_util/optional/observers/1.cc: Likewise.
2765 * testsuite/20_util/optional/observers/2.cc: Likewise.
2766 * testsuite/20_util/optional/observers/3.cc: Likewise.
2767 * testsuite/20_util/optional/observers/4.cc: Likewise.
2768 * testsuite/20_util/optional/observers/5.cc: Likewise.
2769 * testsuite/20_util/optional/observers/6.cc: Likewise.
2770 * testsuite/20_util/optional/relops/1.cc: Likewise.
2771 * testsuite/20_util/optional/relops/2.cc: Likewise.
2772 * testsuite/20_util/optional/relops/3.cc: Likewise.
2773 * testsuite/20_util/optional/relops/4.cc: Likewise.
2774 * testsuite/20_util/optional/relops/5.cc: Likewise.
2775 * testsuite/20_util/optional/relops/6.cc: Likewise.
2776 * testsuite/20_util/optional/relops/7.cc: Likewise.
2777 * testsuite/20_util/optional/requirements.cc: Likewise.
2778 * testsuite/20_util/optional/swap/1.cc: Likewise.
2779 * testsuite/20_util/optional/swap/2.cc: Likewise.
2780 * testsuite/20_util/optional/typedefs.cc: Likewise.
2781 * testsuite/20_util/variant/80165.cc: Likewise.
2782 * testsuite/20_util/variant/85183.cc: Likewise.
2783 * testsuite/20_util/variant/86874.cc: Likewise.
2784 * testsuite/20_util/variant/87431.cc: Likewise.
2785 * testsuite/20_util/variant/87619.cc: Likewise.
2786 * testsuite/20_util/variant/91807.cc: Likewise.
2787 * testsuite/20_util/variant/any.cc: Likewise.
2788 * testsuite/20_util/variant/compile.cc: Likewise.
2789 * testsuite/20_util/variant/deduction.cc: Likewise.
2790 * testsuite/20_util/variant/exception_safety.cc: Likewise.
2791 * testsuite/20_util/variant/hash.cc: Likewise.
2792 * testsuite/20_util/variant/index_type.cc: Likewise.
2793 * testsuite/20_util/variant/relops/89851.cc: Likewise.
2794 * testsuite/20_util/variant/relops/90008.cc: Likewise.
2795 * testsuite/20_util/variant/run.cc: Likewise.
2796 * testsuite/20_util/variant/visit.cc: Likewise.
2798 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2800 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
2801 -std=gnu++17 from dg-options directive.
2802 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
2803 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
2804 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
2805 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
2806 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
2807 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
2808 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
2809 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
2811 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
2812 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
2813 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
2814 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
2815 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
2816 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
2818 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
2819 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
2821 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2823 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
2824 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
2825 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
2826 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
2827 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
2828 * testsuite/27_io/filesystem/operations/create_directories.cc:
2830 * testsuite/27_io/filesystem/operations/create_directory.cc:
2832 * testsuite/27_io/filesystem/operations/create_symlink.cc:
2834 * testsuite/27_io/filesystem/operations/current_path.cc:
2836 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
2837 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2838 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
2839 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2840 * testsuite/27_io/filesystem/operations/last_write_time.cc:
2842 * testsuite/27_io/filesystem/operations/permissions.cc:
2844 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
2845 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2847 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
2848 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
2849 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
2850 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
2851 * testsuite/27_io/filesystem/operations/resize_file.cc:
2853 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
2854 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2855 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2857 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2859 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
2861 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
2862 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
2863 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
2864 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
2865 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
2866 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
2867 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
2868 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
2869 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
2870 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
2871 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
2872 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
2873 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
2874 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
2875 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
2876 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
2877 * testsuite/27_io/filesystem/path/construct/default.cc:
2879 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
2880 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
2881 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
2882 * testsuite/27_io/filesystem/path/construct/string_view.cc:
2884 * testsuite/27_io/filesystem/path/decompose/extension.cc:
2886 * testsuite/27_io/filesystem/path/decompose/filename.cc:
2888 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
2890 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
2892 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
2894 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
2896 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
2898 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
2899 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
2901 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
2902 * testsuite/27_io/filesystem/path/generation/normal.cc:
2904 * testsuite/27_io/filesystem/path/generation/normal2.cc:
2906 * testsuite/27_io/filesystem/path/generation/proximate.cc:
2908 * testsuite/27_io/filesystem/path/generation/relative.cc:
2910 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
2911 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
2913 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
2914 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
2915 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
2916 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
2917 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
2918 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
2919 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
2921 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
2923 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
2925 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
2927 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
2928 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
2929 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
2931 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
2932 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
2933 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
2934 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
2936 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
2937 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
2938 * testsuite/27_io/filesystem/path/query/has_extension.cc:
2940 * testsuite/27_io/filesystem/path/query/has_filename.cc:
2942 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
2944 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
2946 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
2948 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
2950 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
2952 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
2953 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
2955 * testsuite/27_io/filesystem/path/query/is_relative.cc:
2957 * testsuite/experimental/filesystem/path/construct/string_view.cc:
2960 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2962 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
2963 Remove -std=gnu++17 from dg-options.
2964 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
2966 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
2968 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
2970 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
2971 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
2973 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
2975 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
2977 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
2979 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
2981 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
2983 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
2985 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
2987 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
2989 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
2991 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
2993 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
2995 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
2997 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
2999 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
3001 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
3003 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
3005 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
3007 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
3009 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
3011 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
3013 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
3015 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
3017 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
3019 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3021 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
3023 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
3025 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
3027 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
3029 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
3031 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
3033 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
3035 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
3037 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3039 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
3041 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
3042 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
3044 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
3046 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
3048 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
3050 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
3052 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
3053 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
3054 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
3055 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
3056 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
3057 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
3058 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
3059 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
3061 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
3062 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
3063 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
3065 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
3068 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3070 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
3071 for additional errors in C++20.
3072 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3074 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3075 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3077 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3079 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
3080 clash with std::any.
3082 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
3084 * include/std/istream (__rvalue_stream_extraction_t): Replace
3085 use of __rval_streamable.
3086 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
3087 (__rval_streamable): Remove.
3088 (_Require_derived_from_ios_base, __derived_from_ios_base): New
3089 helper for checking constraints.
3090 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
3091 reference to the wrong subclause of the standard.
3092 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
3094 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
3096 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
3098 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
3100 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
3103 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3105 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
3106 Improve static_assert messages.
3107 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
3108 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
3110 2021-05-06 Patrick Palka <ppalka@redhat.com>
3112 * include/std/ranges (filter_view::_Iterator::base): Make the
3113 const& overload unconstrained and return a const reference as
3114 per LWG 3533. Make unconditionally noexcept.
3115 (transform_view::_Iterator::base): Likewise.
3116 (elements_view::_Iterator::base): Likewise.
3118 2021-05-06 Patrick Palka <ppalka@redhat.com>
3120 * include/bits/stl_iterator.h (move_iterator::base): Make the
3121 const& overload unconstrained and return a const reference as
3122 per LWG 3391. Make unconditionally noexcept.
3123 (counted_iterator::base): Likewise.
3124 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
3125 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
3126 has_member_base concept to decay-copy the result of base().
3128 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3130 * include/std/type_traits (remove_cvref_t): Define in terms of
3132 * testsuite/20_util/remove_cvref/value.cc: Check alias.
3134 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3137 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3139 * include/std/charconv (__from_chars_alnum): Pass unsigned
3140 char to std::isdigit.
3142 2021-05-05 Patrick Palka <ppalka@redhat.com>
3144 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
3145 Remove constraints on this partial specialization.
3146 * include/std/ranges (enable_borrowed_range<iota_view>):
3149 2021-05-05 Patrick Palka <ppalka@redhat.com>
3151 * include/std/ranges (transform_view::_Iterator::iter_swap):
3152 Remove as per LWG 3520.
3153 (join_view::_Iterator::iter_swap): Add indirectly_swappable
3154 constraint as per LWG 3517.
3156 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3158 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
3160 * testsuite/20_util/function_objects/invoke/version.cc: New test.
3162 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3164 * include/std/charconv (__from_chars_alnum): Pass unsigned
3165 char to std::isdigit.
3167 2021-05-05 Corentin Gay <gay@adacore.com>
3169 * acinclude.m4: Add VxWorks-specific case for the
3170 configuration of ctypes.
3171 * configure: Regenerate.
3172 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
3174 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
3175 * config/os/vxworks/ctype_configure_char.cc: Likewise.
3176 * config/os/vxworks/ctype_inline.h: Likewise.
3177 * testsuite/28_regex/traits/char/isctype.cc: Defines
3178 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
3179 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
3181 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3183 * include/std/future (promise::set_value): Check for existence
3184 of shared state before dereferncing it.
3185 (promise::set_exception, promise::set_value_at_thread_exit)
3186 (promise::set_exception_at_thread_exit): Likewise.
3187 (promise<R&>::set_value, promise<R&>::set_exception)
3188 (promise<R&>::set_value_at_thread_exit)
3189 (promise<R&>::set_exception_at_thread_exit): Likewise.
3190 (promise<void>::set_value, promise<void>::set_exception)
3191 (promise<void>::set_value_at_thread_exit)
3192 (promise<void>::set_exception_at_thread_exit): Likewise.
3193 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
3194 Remove unused variable.
3196 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3198 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
3199 Do not do arithmetic on null pointer.
3201 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3203 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
3204 (find_key_pointer(key_const_reference, false_type))
3205 (find_key_pointer(key_const_reference, true_type)): Do not
3206 dereference null pointer.
3208 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3210 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
3212 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
3213 non-zero value to null pointer.
3214 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
3215 Use past-the-end iterator for result.
3216 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
3217 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
3219 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3222 * include/std/variant (__get_t): New alias template yielding the
3223 return type of std::get<N> on a variant.
3224 (__visit_result_t): New alias template yielding the result of
3226 (__same_types): Move into namespace __detail::__variant.
3227 (__check_visitor_results): Likewise. Use __invoke_result_t and
3229 (__check_visitor_result): Remove.
3230 (visit): Use __visit_result_t for return type.
3231 * testsuite/20_util/variant/100384.cc: New test.
3233 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3235 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
3236 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
3237 * config.h.in: Regenerate.
3238 * configure: Regenerate.
3239 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
3240 * include/bits/random.h (_Select_uint_least_t<s, 1>):
3241 Use __SIZEOF_INT128__ to decide whether to use __int128.
3242 * include/std/charconv (__to_chars_unsigned_type): Likewise.
3244 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
3246 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
3247 * doc/html/manual/facets.html: Regenerate.
3249 2021-04-30 Patrick Palka <ppalka@redhat.com>
3251 * include/std/ranges (__detail::__non_propating_cache): Define
3253 (join_view): Remove constraints on the value and reference types
3254 of the wrapped iterator type as per P2328.
3255 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
3256 (join_view::_Iterator::operator++): Likewise.
3257 (join_view::_M_inner): Use __non_propating_cache as per P2328.
3258 Remove now-redundant use of __maybe_present_t.
3259 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
3262 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3264 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
3265 Only define for C++17 and later.
3266 * include/std/version (__cpp_lib_semaphore): Fix condition
3267 to match the one in <semaphore>.
3269 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3271 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
3272 * config.h.in: Regenerate.
3273 * configure: Regenerate.
3274 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
3275 * include/bits/postypes.h: Remove include of <stdint.h> and
3276 definition/undefinition of the __STDC_LIMIT_MACROS and
3277 __STDC_CONSTANT_MACROS macros.
3278 (streamoff): Use __INT64_TYPE__ if defined.
3280 2021-04-30 Patrick Palka <ppalka@redhat.com>
3282 * include/std/ranges (split_view::_InnerIter::operator++):
3283 Depend on _Base instead of _Vp directly, as per LWG 3532.
3285 2021-04-30 Patrick Palka <ppalka@redhat.com>
3287 * include/bits/ranges_util.h (subrange::subrange): Avoid
3288 list-initialization in delegating constructor.
3289 * include/std/ranges (single_view): Replace implicit guide
3290 with explicit deduction guide that decays its argument.
3291 (_Single::operator()): Avoid CTAD when constructing the
3293 (_Iota::operator()): Avoid list-initialization.
3294 (__detail::__can_filter_view, _Filter::operator()): Likewise.
3295 (__detail::__can_transform_view, _Transform::operator()): Likewise.
3296 (take_view::begin): Likewise.
3297 (__detail::__can_take_view, _Take::operator()): Likewise.
3298 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
3299 (__detail::__can_drop_view, _Drop::operator()): Likewise.
3300 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
3301 (split_view::split_view): Use views::single when initializing
3303 (__detail::__can_split_view, _Split::operator()): Avoid
3304 list-initialization.
3305 (_Counted::operator()): Likewise.
3306 * testsuite/std/ranges/p2367.cc: New test.
3308 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3311 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
3313 * include/bits/basic_string.tcc (basic_string::swap)
3314 (basic_string::assign): Likewise.
3315 * include/bits/deque.tcc (deque::operator=(const deque&)):
3317 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
3319 * include/bits/vector.tcc (vector::operator=(const vector&)):
3322 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3324 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
3326 * include/std/ostream (operator<<(Ostream&&, const x&)):
3328 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
3329 Adjust dg-error pattern.
3330 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
3332 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
3333 is_extractable trait to replace std::__is_extractable. Make it
3334 work with rvalue streams as well as lvalues, to replace f() and
3335 g() helper functions.
3336 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
3338 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
3339 Define is_insertable trait to replace std::__is_insertable. Make
3340 it work with rvalue streams as well as lvalues, to replace f()
3341 and g() helper functions.
3342 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
3344 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
3345 errors from new constraints.
3346 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
3347 which are no longer expected to compile.
3348 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
3349 Verify LWG 1203 changes.
3351 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3354 * include/experimental/socket (__basic_socket_impl::set_option)
3355 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
3356 Just set error code.
3357 * testsuite/experimental/net/socket/socket_base.cc: CHeck
3358 for <sys/socket.h> not <socket.h>.
3360 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3365 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
3366 Use new effective-target keyword.
3367 * testsuite/experimental/net/internet/address/v4/cons.cc:
3369 * testsuite/experimental/net/internet/address/v4/creation.cc:
3371 * testsuite/experimental/net/internet/address/v4/members.cc:
3373 * testsuite/experimental/net/internet/address/v6/members.cc:
3375 * testsuite/experimental/net/internet/resolver/base.cc:
3377 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
3379 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
3381 * testsuite/experimental/net/internet/socket/opt.cc:
3383 * testsuite/experimental/net/internet/tcp.cc:
3385 * testsuite/experimental/net/internet/udp.cc:
3387 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
3388 New proc to check net_ts_ip et.
3390 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
3393 * testsuite/20_util/pair/requirements/structural.cc: New test.
3395 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
3397 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
3398 new definitions for constructors and assignment operators using
3399 concepts for constraints.
3400 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
3402 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
3403 expected error messages to also match C++20 errors.
3405 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
3408 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
3409 Combine and replace with ...
3410 (_PCC::_DeprConsPair): New SFINAE helper function.
3411 (pair): Merge preprocessor blocks so that all C++03 members
3412 are defined together at the end.
3413 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
3414 Replace _T1 and _T2 parameters with __null_ptr_constant and
3416 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
3417 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
3418 * testsuite/20_util/pair/cons/99957.cc: New test.
3420 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
3422 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
3423 * include/std/version (__cpp_lib_constexpr_string): Define.
3424 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
3425 Check for __cpp_lib_constexpr_string.
3426 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
3428 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
3430 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
3432 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
3433 dealing with errors. Use '@' to prevent shell command being
3435 * doc/Makefile.in: Regenerate.
3437 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
3440 * include/bits/std_thread.h (thread::hardware_concurrency): Add
3441 missing noexcept to inline definition for non-gthreads targets.
3443 2021-04-28 Patrick Palka <ppalka@redhat.com>
3449 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
3450 the __value_comp lambda an explicit bool return type.
3451 (__is_permutation_fn::operator()): Give the __proj_scan local
3452 variable auto&& return type. Give the __comp_scan lambda an
3453 explicit bool return type.
3454 (__remove_fn::operator()): Give the __pred lambda an explicit
3456 (__partition_fn::operator()): Don't std::move __first twice
3457 when returning an empty subrange.
3458 (__min_fn::operator()): Don't std::move __comp.
3459 (__max_fn::operator()): Likewise.
3460 (__minmax_fn::operator()): Likewise.
3462 2021-04-27 Patrick Palka <ppalka@redhat.com>
3465 * include/std/ranges (join_view::_Iterator::operator++): Correct
3466 the return type of the lambda to avoid returning a copy of
3467 _M_parent->_M_inner.
3468 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
3470 2021-04-27 Jakub Jelinek <jakub@redhat.com>
3473 2021-04-22 Jakub Jelinek <jakub@redhat.com>
3476 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
3478 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
3481 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
3483 * include/experimental/internet (address_v6::bytes_type): Adjust
3485 (basic_endpoint): Define _M_is_v6() to put all checks for
3486 AF_INET6 in one place.
3487 (basic_endpoint::resize): Simplify.
3488 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
3489 (operator!=(const tcp&, const tcp&)): Likewise.
3490 (operator==(const udp&, const udp&)): Likewise.
3491 (operator!=(const udp&, const udp&)): Likewise.
3492 * testsuite/experimental/net/internet/tcp.cc: New test.
3493 * testsuite/experimental/net/internet/udp.cc: New test.
3495 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
3498 * include/experimental/internet (resolver_errc, resolver_category())
3499 (make_error_code, make_error_condition): Define unconditionally,
3500 only make enumerators and use of gai_strerror depend on the
3501 availability of <netdb.h>.
3502 (address_v4::to_string): Use correct constant for string length.
3503 (address_v4::to_string, address_v6::to_string): Define
3504 unconditionally, throw if unsupported.
3505 (make_address_v4, make_address_v6): Define unconditionally.
3506 Return an error if unsupported.
3507 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
3509 * testsuite/experimental/net/internet/socket/opt.cc: Check for
3510 <netinet/in.h> and <netinet/tcp.h> before using types from
3513 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
3516 * include/experimental/internet (resolver_base::flags):
3517 Define overloaded operators as hidden friends.
3518 * include/experimental/socket (socket_base::message_flags):
3521 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
3523 * include/experimental/internet (tcp::no_delay, v6_only)
3524 (unicast::hops, multicast::hops, multicast::enable_loopback):
3525 Change access of base class and static data members. Add
3526 using-declaration for __socket_crtp::operator=(_Tp).
3527 (multicast::__mcastopt): New type.
3528 (multicast::join_group, multicast::leave_group): Derive from
3529 __mcastopt for common implementation.
3530 * include/experimental/socket: Add comment.
3531 * testsuite/experimental/net/internet/socket/opt.cc: New test.
3532 * testsuite/experimental/net/socket/socket_base.cc: Check for
3533 protected constructor/destructor of socket_base. Check for
3534 explicit constructors of socket option classes.
3536 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
3538 * include/experimental/bits/net.h (__socket_base): Add
3539 bool template parameter to allow BooleanSocketOption and
3540 IntegerSocketOption to have different __socket_base<int>
3542 (__socket_base<bool>): Adjust base class.
3543 (__socket_base<int>): Add partial specialization.
3544 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
3545 * include/experimental/socket (socket_base::broadcast)
3546 (socket_base::debug, socket_base::do_not_route)
3547 (socket_base::keep_alive, socket_base::linger)
3548 (socket_base::out_of_band_inline)
3549 (socket_base::receive_buffer_size)
3550 (socket_base::receive_low_watermark)
3551 (socket_base::reuse_address, socket_base::send_buffer_size)
3552 (socket_base::send_low_watermark): Add using-declaration for
3553 __socket_crtp::operator=(_Tp).
3554 * testsuite/experimental/net/socket/socket_base.cc: Check
3555 properties of socket option types.
3557 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
3559 * include/experimental/internet (resolver_base::flags): Remove
3560 enumerators. Initialize constants directly with desired values.
3561 Make all operators constexpr and noexcept.
3562 * testsuite/experimental/net/internet/resolver/base.cc: Use
3563 __gnu_test::test_bitmask_values for bitmask type. Check
3564 construction and destruction is protected.
3566 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
3568 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
3570 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
3573 * include/experimental/internet (net::ip::make_error_code)
3574 (net::ip::make_error_condition, net::ip::make_network_v4)
3575 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
3577 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
3579 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
3580 (add_options_for_libatomic): Use atomic_link_flags.
3582 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
3585 * include/experimental/io_context (io_context): Define
3586 dummy_pollfd type so that most member functions still compile
3587 without <poll.h> and struct pollfd.
3589 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
3591 * include/experimental/io_context (io_context::async_wait): Add
3593 * include/experimental/socket (basic_socket::async_connect):
3594 Cast wait_type constant to int.
3595 (basic_datagram_socket::async_receive): Likewise.
3596 (basic_datagram_socket::async_receive_from): Likewise.
3597 (basic_datagram_socket::async_send): Likewise.
3598 (basic_datagram_socket::async_send_to): Likewise.
3599 (basic_stream_socket::async_receive): Likewise.
3600 (basic_stream_socket::async_send): Likewise. Use io_context
3601 parameter directly, instead of via an executor.
3602 (basic_socket_acceptor::async_accept): Likewise.
3604 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
3606 * include/experimental/socket (socket_base::shutdown_type):
3607 (socket_base::wait_type, socket_base::message_flags):
3608 Remove enumerators. Initialize constants directly with desired
3610 (socket_base::message_flags): Make all operators constexpr and
3612 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
3614 * testsuite/experimental/net/socket/socket_base.cc: New test.
3616 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
3618 * config/os/aix/atomicity.h: Delete.
3620 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
3622 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
3623 Handle system_clock as well as steady_clock.
3624 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
3625 * testsuite/30_threads/semaphore/try_acquire_until.cc:
3628 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
3630 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
3631 options for libatomic.
3633 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
3635 * config/os/gnu-linux/os_defines.h: Fix type in comment.
3637 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
3640 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
3641 is not an array type.
3642 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
3643 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
3645 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
3647 * include/bits/atomic_wait.h: Always notify waiters in the
3648 case of 'bare' address notification.
3650 2021-04-22 Jakub Jelinek <jakub@redhat.com>
3653 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
3655 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
3658 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
3661 * include/bits/semaphore_base.h: Remove #error.
3662 * include/std/semaphore: Do not define anything unless one of
3663 the implementations is available.
3665 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
3667 * include/bits/semaphore_base.h: Always reload __old in
3668 __atomic_semaphore::_S_do_try_acquire().
3669 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
3672 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
3673 Jonathan Wakely <jwakely@redhat.com>
3676 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
3677 * python/Makefile.in: Regenerate.
3679 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
3681 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
3682 member to __platform_wait.
3684 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
3686 * include/std/latch: Replace tab characters in license text.
3687 * include/std/semaphore: Likewise.
3689 2021-04-21 Jakub Jelinek <jakub@redhat.com>
3692 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
3693 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
3694 * configure: Regenerated.
3695 * config.h.in: Regenerated.
3697 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
3699 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
3700 test for targets not using futexes for semaphores.
3701 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
3702 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
3703 Disable for all targets.
3705 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
3707 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
3708 * include/Makefile.in: Regenerate.
3709 * include/bits/this_thread_sleep.h: New file.
3710 * include/bits/atomic_base.h: Adjust all calls
3711 to __atomic_wait/__atomic_notify for new call signatures.
3712 * include/bits/atomic_timed_wait.h: Extensive rewrite.
3713 * include/bits/atomic_wait.h: Likewise.
3714 * include/bits/semaphore_base.h: Adjust all calls
3715 to __atomic_wait/__atomic_notify for new call signatures.
3716 * include/std/atomic: Likewise.
3717 * include/std/barrier: Likewise.
3718 * include/std/latch: Likewise.
3719 * include/std/semaphore: Likewise.
3720 * include/std/thread (this_thread::sleep_for)
3721 (this_thread::sleep_until): Move to new header.
3722 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
3724 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
3725 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
3726 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
3727 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
3728 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
3729 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
3731 2021-04-20 Patrick Palka <ppalka@redhat.com>
3734 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
3736 (move_iterator): Derive from the above in C++20 in order to
3737 conditionally define iterator_category as per P2259.
3738 (move_iterator::__base_cat): No longer used, so remove.
3739 (move_iterator::iterator_category): Remove in C++20.
3740 (__detail::__common_iter_use_postfix_proxy): Define.
3741 (common_iterator::_Proxy): Rename to ...
3742 (common_iterator:__arrow_proxy): ... this.
3743 (common_iterator::__postfix_proxy): Define as per P2259.
3744 (common_iterator::operator->): Adjust.
3745 (common_iterator::operator++): Adjust as per P2259.
3746 (iterator_traits<common_iterator>::_S_iter_cat): Define.
3747 (iterator_traits<common_iterator>::iterator_category): Change as
3749 (__detail::__counted_iter_value_type): Define.
3750 (__detail::__counted_iter_concept): Define.
3751 (__detail::__counted_iter_cat): Define.
3752 (counted_iterator): Derive from the above three classes in order
3753 to conditionally define value_type, iterator_concept and
3754 iterator category respectively as per P2259.
3755 (counted_iterator::operator->): Define as per P2259.
3756 (incrementable_traits<counted_iterator>): Remove as per P2259.
3757 (iterator_traits<counted_iterator>): Adjust as per P2259.
3758 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
3759 (iota_view::_Iterator): Derive from the above in order to
3760 conditionally define iterator_category as per P2259.
3761 (iota_view::_S_iter_cat): Rename to ...
3762 (iota_view::_S_iter_concept): ... this.
3763 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
3764 (iota_view::iterator_category): Remove.
3765 (__detail::__filter_view_iter_cat): Define.
3766 (filter_view::_Iterator): Derive from the above in order to
3767 conditionally define iterator_category as per P2259.
3768 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
3769 (filter_view::_Iterator::iterator_category): Remove.
3770 (transform_view::_Base): Define.
3771 (transform_view::__iter_cat): Define.
3772 (transform_view::_Iterator): Derive from the above in order to
3773 conditionally define iterator_category as per P2259.
3774 (transform_view::_Iterator::_Base): Just alias
3775 transform_view::_Base.
3776 (transform_view::_Iterator::_S_iter_cat): Move to struct
3777 transform_view::__iter_cat.
3778 (transform_view::_Iterator::iterator_category): Remove.
3779 (transform_view::_Sentinel::_Base): Just alias
3780 transform_view::_Base.
3781 (join_view::_Base): Define.
3782 (join_view::_Outer_iter): Define.
3783 (join_view::_Inner_iter): Define.
3784 (join_view::_S_ref_is_glvalue): Define.
3785 (join_view::__iter_cat): Define.
3786 (join_view::_Iterator): Derive from it in order to conditionally
3787 define iterator_category as per P2259.
3788 (join_view::_Iterator::_Base): Just alias join_view::_Base.
3789 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
3790 join_view::_S_ref_is_glvalue.
3791 (join_view::_Iterator::_S_iter_cat): Move to struct
3792 transform_view::__iter_cat.
3793 (join_view::_Iterator::_Outer_iter): Just alias
3794 join_view::_Outer_iter.
3795 (join_view::_Iterator::_Inner_iter): Just alias
3796 join_view::_Inner_iter.
3797 (join_view::_Iterator::iterator_category): Remove.
3798 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
3799 (__detail::__split_view_outer_iter_cat): Define.
3800 (__detail::__split_view_inner_iter_cat): Define.
3801 (split_view::_Base): Define.
3802 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
3803 in order to conditionally define iterator_category as per P2259.
3804 (split_view::_Outer_iter::iterator_category): Remove.
3805 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
3806 in order to conditionally define iterator_category as per P2259.
3807 (split_view::_Inner_iter::_S_iter_cat): Move to
3808 __split_view_inner_iter_cat.
3809 (split_view::_Inner_iter::iterator_category): Remove.
3810 (elements_view::_Base): Define.
3811 (elements_view::__iter_cat): Define.
3812 (elements_view::_Iterator): Derive from the above in order to
3813 conditionall define iterator_category as per P2259.
3814 (elements_view::_Iterator::_Base): Just alias
3815 elements_view::_Base.
3816 (elements_view::_Iterator::_S_iter_concept)
3817 (elements_view::_Iterator::iterator_concept): Define as per
3819 (elements_view::_Iterator::iterator_category): Remove.
3820 (elements_view::_Sentinel::_Base): Just alias
3821 elements_view::_Base.
3822 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
3823 Adjust constraints on iterator_traits<counted_iterator>.
3824 * testsuite/std/ranges/p2259.cc: New test.
3826 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
3829 * include/std/charconv (__cpp_lib_to_chars): Define
3831 * include/std/version (__cpp_lib_to_chars): Likewise..
3832 * testsuite/20_util/from_chars/4.cc: Only check feature test
3833 macro, not _GLIBCXX_HAVE_USELOCALE.
3834 * testsuite/20_util/from_chars/5.cc: Likewise.
3835 * testsuite/20_util/from_chars/6.cc: Likewise.
3836 * testsuite/20_util/to_chars/long_double.cc: Likewise.
3838 2021-04-20 Jakub Jelinek <jakub@redhat.com>
3840 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
3841 versions with _IEEE128_ substring are found, set ieee_version_found
3842 to true. Ignore missing symbols with _IEEE128_ in version name if
3843 !ieee_version_found. Use i->first as version_name instead of
3844 i->second.version_name if the latter is empty.
3845 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3847 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
3849 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
3852 2021-04-17 Jakub Jelinek <jakub@redhat.com>
3854 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3855 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3857 2021-04-17 Jakub Jelinek <jakub@redhat.com>
3859 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3860 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3861 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
3862 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3863 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3864 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3866 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
3868 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
3869 add libatomic options for 32-bit sparc*-*-linux-gnu.
3871 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
3874 * libsupc++/Makefile.am: Add atomicity.cc here.
3875 * src/c++98/Makefile.am: Remove it from here.
3876 * libsupc++/Makefile.in: Regenerate.
3877 * src/c++98/Makefile.in: Regenerate.
3878 * testsuite/18_support/exception_ptr/96657.cc: New test.
3880 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
3883 * include/std/bit: Only include <ext/numeric_traits.h> for
3884 hosted build, use <limits> otherwise.
3886 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
3888 * doc/xml/manual/backwards_compatibility.xml: Remove porting
3889 notes for libg++ and libstdc++-v2, and bibliography.
3890 * doc/html/*: Regenerated.
3892 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
3895 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
3896 Remove helper concept.
3897 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
3898 deduction guides, as per LWG 3404.
3899 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
3900 template argument deduction fails.
3902 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
3904 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
3905 Adjust expected error for C++20 mode.
3906 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
3909 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
3912 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
3913 standard headers and XFAIL for effective-target c++20.
3915 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
3918 * include/debug/helper_functions.h (__can_advance(_InputIterator,
3919 const std::pair<_Diff, _Distance_precision>&, int)): New.
3920 (__can_advance(const _Safe_iterator<>&,
3921 const std::pair<_Diff, _Distance_precision>&, int)): New.
3922 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
3924 (__glibcxx_check_can_increment_range): Adapt to use latter.
3925 (__glibcxx_check_can_decrement_range): Likewise.
3926 * include/debug/safe_iterator.h
3927 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
3929 (__can_advance(const _Safe_iterator<>&,
3930 const std::pair<_Diff, _Distance_precision>&, int)): New.
3931 * include/debug/safe_iterator.tcc
3932 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
3934 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
3935 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
3937 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
3938 (__copy_move_backward_a): Likewise.
3939 (__equal_aux): Likewise.
3940 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
3941 const std::pair<_Diff, _Distance_precision>&, int)): New.
3942 (__can_advance(const std::move_iterator<>&,
3943 const std::pair<_Diff, _Distance_precision>&, int)): New.
3944 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
3946 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
3949 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
3950 to be a valid constexpr function in C++11.
3951 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
3953 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
3955 * include/bits/fs_fwd.h: Fix doxygen group command.
3956 * include/bits/streambuf_iterator.h: Likewise.
3957 * include/bits/uses_allocator_args.h: Likewise.
3958 * include/std/memory: Likewise.
3959 * include/tr1/complex: Likewise.
3961 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3963 * include/bits/basic_string.h: Tweak doxygen comment.
3965 2021-04-08 Patrick Palka <ppalka@redhat.com>
3967 * include/std/ranges (__detail::find): Define.
3968 (split_view::_OuterIter::operator++): Apply proposed resolution
3970 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
3972 2021-04-08 Patrick Palka <ppalka@redhat.com>
3974 * include/std/ranges (__detail::find_if): Simplify.
3975 (__detail::find_if_not): Likewise.
3976 (__detail::min): Remove.
3977 (__detail::mismatch): Simplify.
3978 (take_view::size): Use std::min instead of __detail::min.
3980 2021-04-08 Patrick Palka <ppalka@redhat.com>
3982 * include/std/ranges (__detail::__returnable_element): New
3984 (elements_view): Use this concept in its constraints. Add
3985 missing private access specifier.
3986 (elements_view::_S_get_element): Define as per LWG 3502.
3987 (elements_view::operator*, elements_view::operator[]): Use
3989 (elements_view::operator++): Remove unnecessary constraint
3991 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
3993 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
3995 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
3996 out-of-memory error in log file.
3997 * doc/Makefile.in: Regenerate.
3999 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4001 * configure: Regenerate.
4003 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4005 * include/bits/random.h: Fix doxygen group commands.
4006 * include/bits/regex_constants.h: Likewise.
4007 * include/tr1/random.h: Likewise.
4009 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4011 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
4012 New function to determine noexcept-specifier for move
4014 (_Hashtable): Use _S_nothrow_move() on move constructors.
4015 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
4016 Correct static assertion message.
4017 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
4019 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
4021 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
4024 2021-04-08 Patrick Palka <ppalka@redhat.com>
4027 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
4028 on targets without a large long double. XFAIL the execution on
4029 targets with a non-conforming printf.
4031 2021-04-08 Patrick Palka <ppalka@redhat.com>
4034 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
4035 (__adaptor::__adaptor_invocable): New concept.
4036 (__adaptor::__adaptor_partial_app_viable): New concept.
4037 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
4038 non-template base class.
4039 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
4041 (__adaptor::_Partial): New class template that represents
4042 partial application of a range adaptor non-closure.
4043 (__adaptor::__pipe_invocable): New concept.
4044 (__adaptor::_Pipe): New class template.
4045 (__detail::__can_ref_view): New concept.
4046 (__detail::__can_subrange): New concept.
4047 (all): Replace the lambda here with ...
4048 (_All): ... this functor. Add appropriate constraints.
4049 (__detail::__can_filter_view): New concept.
4050 (filter, _Filter): As in all/_All.
4051 (__detail::__can_transform): New concept.
4052 (transform, _Transform): As in all/_All.
4053 (__detail::__can_take_view): New concept.
4054 (take, _Take): As in all/_All.
4055 (__detail::__can_take_while_view): New concept.
4056 (take_while, _TakeWhile): As in all/_All.
4057 (__detail::__can_drop_view): New concept.
4058 (drop, _Drop): As in all/_All.
4059 (__detail::__can_drop_while_view): New concept.
4060 (drop_while, _DropWhile): As in all/_All.
4061 (__detail::__can_join_view): New concept.
4062 (join, _Join): As in all/_All.
4063 (__detail::__can_split_view): New concept.
4064 (split, _Split): As in all/_All. Rename template parameter
4066 (__detail::__already_common): New concept.
4067 (__detail::__can_common_view): New concept.
4068 (common, _Common): As in all/_All.
4069 (__detail::__can_reverse_view): New concept.
4070 (reverse, _Reverse): As in all/_All.
4071 (__detail::__can_elements_view): New concept.
4072 (elements, _Elements): As in all/_All.
4073 (keys, values): Adjust.
4074 * testsuite/std/ranges/adaptors/99433.cc: New test.
4075 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
4076 adding empty range adaptor closure objects to a pipeline doesn't
4077 increase the size of the pipeline.
4079 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
4080 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
4081 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
4082 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
4083 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
4084 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
4085 * testsuite/std/ranges/adaptors/p2281.cc: New test.
4086 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
4087 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
4090 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
4091 expected error message.
4092 (test02): Likewise. Extend test.
4093 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
4094 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
4095 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
4098 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4100 * include/std/string_view: Adjust Doxygen @file comment.
4102 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4104 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
4105 specialization to not match incomplete enum types. Use a
4106 requires-expression instead of instantiating is_convertible.
4107 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
4108 * testsuite/20_util/is_scoped_enum/value.cc: Check with
4109 incomplete types and opaque-enum-declarations.
4111 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
4114 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
4115 non-const member on _M_pathname, to avoid copy-on-write.
4116 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4117 Check construction from strings that might be shared.
4119 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4121 * include/bits/move.h (forward, move, move_if_noexcept)
4122 (addressof): Add _GLIBCXX_NODISCARD.
4123 * include/bits/ranges_cmp.h (identity::operator()): Add
4124 nodiscard attribute.
4125 * include/c_global/cstddef (to_integer): Likewise.
4126 * include/std/bit (bit_cast): Likewise.
4127 * include/std/utility (as_const, to_underlying): Likewise.
4129 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4131 * include/bits/move.h (forward): Change static_assert message
4132 to be unambiguous about what must be true.
4133 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
4134 * testsuite/20_util/forward/f_neg.cc: Likewise.
4136 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4138 * include/bits/alloc_traits.h: Use markdown for code font.
4139 * include/bits/basic_string.h: Fix @param names.
4140 * include/bits/max_size_type.h: Remove period after @file.
4141 * include/bits/regex.h: Fix duplicate @retval names, and rename.
4142 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
4143 group open to match existing group close.
4144 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
4147 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4149 * include/bits/atomic_base.h: Fix doxygen group close.
4150 * include/bits/basic_ios.h: Likewise.
4151 * include/bits/forward_list.h: Likewise.
4152 * include/bits/fs_dir.h: Likewise.
4153 * include/bits/fs_ops.h: Likewise.
4154 * include/bits/fs_path.h: Likewise.
4155 * include/bits/functional_hash.h: Likewise.
4156 * include/bits/gslice.h: Likewise.
4157 * include/bits/gslice_array.h: Likewise.
4158 * include/bits/hashtable_policy.h: Likewise.
4159 * include/bits/indirect_array.h: Likewise.
4160 * include/bits/locale_classes.h: Likewise.
4161 * include/bits/locale_facets.h: Likewise.
4162 * include/bits/locale_facets_nonio.h: Likewise.
4163 * include/bits/mask_array.h: Likewise.
4164 * include/bits/refwrap.h: Likewise.
4165 * include/bits/regex.h: Likewise.
4166 * include/bits/regex_automaton.h: Likewise.
4167 * include/bits/regex_compiler.h: Likewise.
4168 * include/bits/regex_constants.h: Likewise.
4169 * include/bits/regex_error.h: Likewise.
4170 * include/bits/regex_executor.h: Likewise.
4171 * include/bits/regex_scanner.h: Likewise.
4172 * include/bits/shared_ptr.h: Likewise.
4173 * include/bits/shared_ptr_atomic.h: Likewise.
4174 * include/bits/shared_ptr_base.h: Likewise.
4175 * include/bits/slice_array.h: Likewise.
4176 * include/bits/specfun.h: Likewise.
4177 * include/bits/std_function.h: Likewise.
4178 * include/bits/std_mutex.h: Likewise.
4179 * include/bits/stl_deque.h: Likewise.
4180 * include/bits/stl_iterator.h: Likewise.
4181 * include/bits/stl_iterator_base_types.h: Likewise.
4182 * include/bits/stl_map.h: Likewise.
4183 * include/bits/stl_multimap.h: Likewise.
4184 * include/bits/stl_multiset.h: Likewise.
4185 * include/bits/stl_numeric.h: Likewise.
4186 * include/bits/stl_pair.h: Likewise.
4187 * include/bits/stl_set.h: Likewise.
4188 * include/bits/stl_uninitialized.h: Likewise.
4189 * include/bits/stream_iterator.h: Likewise.
4190 * include/bits/streambuf_iterator.h: Likewise.
4191 * include/bits/unique_ptr.h: Likewise.
4192 * include/bits/unordered_map.h: Likewise.
4193 * include/bits/unordered_set.h: Likewise.
4194 * include/decimal/decimal: Likewise.
4195 * include/experimental/any: Likewise.
4196 * include/experimental/array: Likewise.
4197 * include/experimental/bits/fs_dir.h: Likewise.
4198 * include/experimental/bits/fs_fwd.h: Likewise.
4199 * include/experimental/bits/fs_ops.h: Likewise.
4200 * include/experimental/bits/fs_path.h: Likewise.
4201 * include/experimental/buffer: Likewise.
4202 * include/experimental/internet: Likewise.
4203 * include/experimental/optional: Likewise.
4204 * include/experimental/propagate_const: Likewise.
4205 * include/experimental/socket: Likewise.
4206 * include/ext/pb_ds/assoc_container.hpp: Likewise.
4207 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
4209 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
4210 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
4211 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
4212 * include/ext/pb_ds/exception.hpp: Likewise.
4213 * include/ext/pb_ds/priority_queue.hpp: Likewise.
4214 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
4215 * include/ext/random: Likewise.
4216 * include/std/any: Likewise.
4217 * include/std/atomic: Likewise.
4218 * include/std/bitset: Likewise.
4219 * include/std/chrono: Likewise.
4220 * include/std/complex: Likewise.
4221 * include/std/condition_variable: Likewise.
4222 * include/std/fstream: Likewise.
4223 * include/std/future: Likewise.
4224 * include/std/iostream: Likewise.
4225 * include/std/istream: Likewise.
4226 * include/std/mutex: Likewise.
4227 * include/std/numeric: Likewise.
4228 * include/std/ostream: Likewise.
4229 * include/std/ratio: Likewise.
4230 * include/std/shared_mutex: Likewise.
4231 * include/std/stdexcept: Likewise.
4232 * include/std/streambuf: Likewise.
4233 * include/std/system_error: Likewise.
4234 * include/std/thread: Likewise.
4235 * include/std/valarray: Likewise.
4236 * include/std/variant: Likewise.
4237 * include/tr1/cmath: Likewise.
4238 * include/tr1/regex: Likewise.
4239 * include/tr2/dynamic_bitset: Likewise.
4240 * libsupc++/atomic_lockfree_defines.h: Likewise.
4241 * libsupc++/exception: Likewise.
4242 * libsupc++/exception.h: Likewise.
4243 * libsupc++/exception_ptr.h: Likewise.
4244 * libsupc++/nested_exception.h: Likewise.
4246 2021-03-31 Alexandre Oliva <oliva@adacore.com>
4248 * testsuite/30_threads/future/members/poll.cc: Use faster
4249 after-ready call in the calibration loop.
4251 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
4253 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
4254 * doc/html/manual/status.html: Regenerate.
4256 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
4258 * include/debug/forward_list
4259 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
4260 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
4261 call to safe container allocator aware move constructor.
4262 * include/debug/vector (vector(vector&&, const allocator_type&)):
4263 Fix noexcept qualification.
4264 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
4265 Add allocator-extended move constructor noexceot qualification check.
4266 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
4268 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
4270 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
4272 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
4273 New helper functions and callback.
4274 (random_device::_M_init): Add 'prng' and 'all' enumerators.
4275 Replace switch with fallthrough with a series of 'if' statements.
4276 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
4278 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
4280 (random_device::_M_getval): Check for callback unconditionally
4281 and always pass _M_file pointer.
4282 * testsuite/26_numerics/random/random_device/85494.cc: Remove
4283 effective-target check. Use new random_device_available helper.
4284 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
4285 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
4286 Remove effective-target check.
4287 * testsuite/26_numerics/random/random_device/cons/default.cc:
4289 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
4290 new random_device_available helper. Test "prng" token.
4291 * testsuite/util/testsuite_random.h (random_device_available):
4292 New helper function.
4294 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
4296 * include/debug/string
4297 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
4298 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
4299 (basic_string<>::erase): Adapt to take __const_iterator.
4300 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
4301 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
4302 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
4303 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
4304 (__gnu_debug::u16string, __gnu_debug::u32string): New.
4305 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
4306 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
4307 * testsuite/util/exception/safety.h
4308 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
4309 (insert_base<__gnu_debug::basic_string<>>): Likewise.
4310 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
4311 New partial specialization.
4312 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
4313 * testsuite/21_strings/basic_string/requirements/citerators.cc:
4314 Add test on __gnu_debug::string.
4315 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
4316 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
4317 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
4319 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
4321 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
4323 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
4325 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
4327 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
4329 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
4331 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
4333 2021-03-25 Jakub Jelinek <jakub@redhat.com>
4336 * testsuite/18_support/source_location/consteval.cc (main): Adjust
4337 expected column numbers.
4338 * testsuite/18_support/source_location/1.cc (main): Likewise.
4340 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
4342 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
4344 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
4346 * testsuite/util/exception/safety.h (setup_base::generate):
4347 Support seeding random engine.
4348 (erase_point, erase_range): Adjust range of random numbers to
4349 ensure dereferenceable iterators are used where required.
4350 (generation_prohibited::run): Do not try to erase from empty
4352 * testsuite/util/testsuite_containergen.h (test_containers):
4353 Support seeding random engine.
4355 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
4357 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
4358 line with a check that uses the const being/end overloads.
4360 2021-03-23 Moritz Sichert <sichert@in.tum.de>
4362 * include/std/ranges (reverse_view::begin, reverse_view::end):
4363 Qualify make_reverse_iterator calls to avoid ADL.
4364 * testsuite/std/ranges/adaptors/reverse.cc: Test that
4365 views::reverse works when make_reverse_iterator is defined
4366 in an associated namespace.
4368 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
4370 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
4371 Do not define when compiling with Clang.
4373 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
4375 * include/std/string_view (basic_string_view(Range&&)): Define new
4376 constructor and deduction guide.
4377 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
4378 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
4380 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
4382 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
4383 Add missing 'noexcept' as per LWG 2280.
4384 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
4385 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
4386 * testsuite/24_iterators/range_access/range_access.cc: Check for
4387 expected noexcept specifiers. Check result types of generic
4388 std::begin and std::end overloads.
4389 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
4390 Check for expected noexcept specifiers.
4391 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
4394 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
4396 * include/std/type_traits (is_scoped_enum): Define.
4397 * include/std/version (__cpp_lib_is_scoped_enum): Define.
4398 * testsuite/20_util/is_scoped_enum/value.cc: New test.
4399 * testsuite/20_util/is_scoped_enum/version.cc: New test.
4401 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
4404 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
4405 std::once_flag symbols.
4406 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
4407 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
4408 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
4410 * config/abi/pre/gnu.ver: Likewise.
4411 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
4412 (struct __once_flag_compat): Remove.
4413 (_ZNSt9once_flag11_M_activateEv): Remove.
4414 (_ZNSt9once_flag9_M_finishEb): Remove.
4416 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
4419 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
4420 Revert to pthread_once_t implementation.
4421 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
4422 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
4423 (struct __once_flag_compat): New type matching the reverted
4424 implementation of once_flag using futexes.
4425 (once_flag::_M_activate): Remove, replace with ...
4426 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
4427 (once_flag::_M_finish): Remove, replace with ...
4428 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
4429 * testsuite/30_threads/call_once/66146.cc: Removed.
4431 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
4433 * testsuite/17_intro/names.cc: Exclude j from the list
4434 of test symbols for Darwin.
4436 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
4438 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
4439 to_chars and from_chars for long double.
4441 2021-03-15 Patrick Palka <ppalka@redhat.com>
4443 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
4445 (__max_size_type::operator++): Define.
4446 (__max_size_type::operator--): Likewise.
4447 (__max_size_type::operator<=>): Conditionally define (in place
4448 of the other comparison operators).
4449 (__max_diff_type::operator _Tp): Fix formatting.
4450 (__max_diff_type::operator++): Define.
4451 (__max_diff_type::operator--): Likewise.
4452 (__max_diff_type::operator<=>): Conditionally define (in place
4453 of the other comparison operators).
4454 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
4455 these operator overloads.
4457 2021-03-15 Caroline Tice <cmtice@google.com>
4460 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
4461 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
4462 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
4464 * src/Makefile.in: Regenerate.
4466 2021-03-11 Patrick Palka <ppalka@redhat.com>
4468 * src/c++17/floating_to_chars.cc: Simplify the file as if
4469 __SIZEOF_INT128__ is always defined.
4470 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
4471 a base-10 to_chars overload for the uint128_t class type.
4472 * src/c++17/uint128_t.h: New file.
4473 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
4474 execution FAIL on targets that have a large long double type
4477 2021-03-11 Patrick Palka <ppalka@redhat.com>
4479 * src/c++17/ryu/LOCAL_PATCHES: Update.
4480 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
4481 * src/c++17/ryu/generic_128.h: Likewise.
4482 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
4483 Use uint128_t instead of __uint128_t.
4484 (generic_binary_to_decimal): Likewise.
4486 2021-03-11 Patrick Palka <ppalka@redhat.com>
4488 * src/c++17/ryu/LOCAL_PATCHES: New file.
4490 2021-03-11 Patrick Palka <ppalka@redhat.com>
4492 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
4493 defined alias of unsigned __int128.
4494 (floating_type_traits_binary128::mantissa_t): Use uint128_t
4495 instead of unsigned __int128.
4496 (floating_type_traits<long double>::mantissa_t)
4497 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
4498 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
4499 and uint32_t explicit. Simplify the extraction of mantissa,
4500 exponent and sign bit.
4502 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
4504 * include/std/barrier (barrier::arrival_token): New move-only
4505 class that encapsulates the underlying token value.
4507 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
4509 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
4510 instead of unqualified() method.
4512 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
4515 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
4516 Use acq_rel memory ordering.
4518 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
4521 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
4522 helper function to check for permission denied errors.
4523 * src/filesystem/dir.cc (recursive_directory_iterator):
4525 * src/filesystem/dir-common.h (is_permission_denied_error): New
4528 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
4531 * include/bits/random.h (normal_distribution): Use
4532 default-initializer for _M_saved and _M_saved_available.
4534 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
4536 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
4537 link with libatomic.
4538 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
4539 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
4540 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
4541 * testsuite/30_threads/barrier/arrive.cc: Likewise.
4542 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4543 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4544 * testsuite/30_threads/barrier/completion.cc: Likewise.
4545 * testsuite/30_threads/latch/3.cc: Likewise.
4546 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
4547 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
4548 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
4550 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
4553 * include/bits/align.h: Include debug/assertions.h.
4554 * include/bits/codecvt.h: Include bits/c++config.h.
4555 * include/bits/enable_special_members.h: Likewise.
4556 * include/bits/erase_if.h: Likewise.
4557 * include/bits/functional_hash.h: Include <type_traits>.
4558 * include/bits/invoke.h: Include bits/move.h.
4559 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
4560 * include/bits/parse_numbers.h: Include <type_traits>.
4561 * include/bits/predefined_ops.h: Include bits/c++config.h.
4562 * include/bits/range_access.h: Include bits/stl_iterator.h.
4563 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
4564 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
4565 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
4566 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
4567 * include/bits/unique_lock.h: Include bits/std_mutex.h.
4568 * include/debug/assertions.h: Include bits/c++config.h.
4570 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
4572 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
4573 (ranges::equal_to, ranges::not_equal_to): Do not constrain
4574 with __eq_builtin_ptr_cmp.
4575 (ranges::less, ranges::greater, ranges::less_equal)
4576 (ranges::greater_equal): Do not constrain with
4577 __less_builtin_ptr_cmp.
4578 * libsupc++/compare (compare_three_way): Do not constrain with
4579 __3way_builtin_ptr_cmp.
4580 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
4581 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
4582 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
4584 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
4586 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
4587 C++20 calendar types.
4589 2021-03-06 Jakub Jelinek <jakub@redhat.com>
4592 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
4593 two _Nd which the compiler can pattern match the rotates.
4595 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
4598 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
4599 Make storage larger than required. Verify no write to the last
4601 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
4604 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4606 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
4607 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
4609 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
4610 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
4613 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4615 * include/experimental/bits/simd.h: Replace reserved _X, _B by
4617 * include/experimental/bits/simd_builtin.h: Likewise.
4618 * include/experimental/bits/simd_x86.h: Likewise.
4620 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
4623 * include/std/chrono (year_month_day::_M_days_since_epoch()):
4624 Convert chrono::month and chrono::day to unsigned before
4625 converting to uint32_t.
4627 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
4629 * include/std/chrono (year_month_day::_S_from_days): Perform
4630 all calculations with type uint32_t.
4632 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
4634 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
4635 * doc/html/manual/abi.html: Regenerate.
4637 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
4640 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
4641 FILE instead of FILE.
4643 2021-02-25 Andreas Schwab <schwab@suse.de>
4645 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
4646 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
4647 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
4648 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
4650 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
4653 * include/std/chrono (year_month_day::_S_from_days): Cast long
4656 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
4658 * include/std/utility (to_underlying): Define.
4659 * include/std/version (__cpp_lib_to_underlying): Define.
4660 * testsuite/20_util/to_underlying/1.cc: New test.
4661 * testsuite/20_util/to_underlying/version.cc: New test.
4663 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
4666 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
4667 before value to be printed.
4669 2021-02-24 Patrick Palka <ppalka@redhat.com>
4671 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
4672 Relax the condition that guards the printf code path to accept
4673 F128_type as well as long double.
4675 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
4677 * include/std/chrono (year_month_day_last:day): New
4680 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
4682 * include/std/chrono (year::is_leap): New implementation.
4683 * testsuite/std/time/year/2.cc: New test.
4685 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
4687 * include/std/chrono (year_month_day::_M_days_since_epoch):
4689 * testsuite/std/time/year_month_day/4.cc: New test.
4691 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
4693 * include/std/chrono (year_month_day::_S_from_days): New
4695 * testsuite/std/time/year_month_day/3.cc: New test.
4697 2021-02-24 Patrick Palka <ppalka@redhat.com>
4700 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
4701 (test01): Simplify verifying the nearby values by using a
4702 2-iteration loop and a dedicated output buffer to check that the
4703 nearby values are different. Factor out the printf-based
4704 verification into a local function, and check that the leading
4705 hex digits agree before comparing to the output of printf. Also
4706 verify the output by round-tripping it through from_chars.
4708 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
4711 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
4712 symbols for long double arguments mangled as 'g'.
4713 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
4714 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
4715 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
4716 Use -mabi=ibmlongdouble for floating_to_chars.cc.
4717 * src/c++17/Makefile.in: Regenerate.
4718 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
4719 New type defining type traits of IEEE binary128 format.
4720 (floating_type_traits<__float128>): Define specialization.
4721 (floating_type_traits<long double>): Define in terms of
4722 floating_type_traits_binary128 when appropriate.
4723 (floating_to_shortest_scientific): Handle __float128.
4724 (sprintf_ld): New function template for printing a long double
4725 or __ieee128 value using sprintf.
4726 (__floating_to_chars_shortest, __floating_to_chars_precision):
4728 (to_chars): Define overloads for __float128.
4730 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
4732 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
4734 2021-02-23 Martin Sebor <msebor@redhat.com>
4737 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
4738 first argument is null.
4740 2021-02-23 Jakub Jelinek <jakub@redhat.com>
4743 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
4746 2021-02-23 Jakub Jelinek <jakub@redhat.com>
4749 * include/bits/char_traits.h (char_traits<char>::compare): For
4750 constexpr evaluation don't call
4751 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
4754 2021-02-23 Jakub Jelinek <jakub@redhat.com>
4757 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
4759 2021-02-23 Patrick Palka <ppalka@redhat.com>
4762 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
4763 the high- and low-order parts from an IBM long double value
4764 in an endian-agnostic way.
4766 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
4768 * include/bits/atomic_wait.h (__thread_relax()): Call
4769 __thread_yield() not __gthread_yield().
4771 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
4773 * include/bits/atomic_wait.h (__thread_yield()): Check
4774 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
4775 (__thread_relax()): Use __thread_yield() instead of repeating
4776 the preprocessor checks for __gthread_yield.
4778 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
4780 * include/std/mutex (once_flag::_M_activate()): Add explicit
4781 return statement for passive case.
4782 (once_flag::_M_finish(bool)): Use reserved name for parameter.
4784 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
4787 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
4789 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4792 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
4794 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4796 * doc/xml/manual/status_cxx2014.xml: Document implementation
4797 specific properties of std::experimental::filesystem::rename.
4798 * doc/xml/manual/status_cxx2017.xml: Document implementation
4799 specific properties of std::filesystem::rename.
4800 * doc/html/*: Regenerate.
4801 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
4802 for directories on Windows.
4803 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
4804 MoveFileExW on Windows.
4805 * testsuite/27_io/filesystem/operations/rename.cc: New test.
4806 * testsuite/experimental/filesystem/operations/rename.cc: New test.
4808 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4810 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
4811 random number to the path.
4813 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4815 * include/experimental/internet (address_v6::to_string): Include
4817 * testsuite/experimental/net/internet/address/v6/members.cc:
4818 Test to_string() results.
4820 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4822 * include/experimental/internet (address_v6::any): Avoid using
4823 memcpy in constexpr function.
4824 (address_v6::loopback): Likewise.
4825 (make_address_v6): Fix missing return statements on error paths.
4826 * include/experimental/io_context: Avoid -Wdangling-else
4828 * testsuite/experimental/net/internet/address/v4/members.cc:
4829 Remove unused variables.
4830 * testsuite/experimental/net/internet/address/v6/members.cc:
4833 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4835 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
4836 Add unused attribute to parameter.
4837 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
4840 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4842 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
4843 if -fno-rtti is used.
4844 * testsuite/30_threads/async/forced_unwind.cc: Expect test
4845 to abort if -fno-rtti is used.
4847 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4849 * testsuite/util/testsuite_allocator.h (memory_resource):
4850 Remove requirement for RTTI and exceptions to be enabled.
4852 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4854 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
4855 static_cast when RTTI is disabled.
4856 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
4858 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
4860 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
4862 * testsuite/27_io/basic_stringstream/str/char/2.cc:
4864 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
4867 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4869 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
4870 as unused and only use dynamic_cast when RTTI is enabled.
4872 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
4875 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
4876 Change int parameter to error_code, to match std::ios_failure.
4877 (__throw_ios_failure(const char*, int)): Construct error_code
4880 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
4882 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
4884 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
4885 macro instead of _GLIBCXX_EH_PTR_COMPAT.
4886 (operator==): Likewise.
4888 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
4891 * doc/xml/manual/status_cxx2011.xml: Document when support
4893 * doc/xml/manual/status_cxx2014.xml: Likewise.
4894 * doc/xml/manual/status_cxx2017.xml: Likewise.
4895 * doc/html/manual/status.html: Regenerate.
4897 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
4900 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
4902 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
4904 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
4905 (fs::remove): Use std::system_category() for error codes from
4907 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
4910 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
4912 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
4913 in __MINGW32__ macro name.
4914 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
4915 * testsuite/27_io/filesystem/path/generation/proximate.cc:
4917 * testsuite/27_io/filesystem/path/generation/relative.cc:
4919 * testsuite/util/testsuite_fs.h: Likewise.
4921 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
4923 * include/bits/stl_tree.h
4924 (__has_is_transparent, __has_is_transparent_t): Move...
4925 * include/bits/stl_function.h: ...here.
4926 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
4927 (_Hashtable_base<>::_M_equals_tr): New.
4928 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
4929 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
4930 heterogeneous lookup.
4931 (_Hashtable<>::_M_find_before_node_tr): New.
4932 (_Hashtable<>::_M_find_node_tr): New.
4933 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
4934 unordered_map::contains<>, unordered_map::equal_range<>): New member function
4935 templates to perform heterogeneous lookup.
4936 (unordered_multimap::find<>, unordered_multimap::count<>,
4937 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
4938 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
4939 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
4940 (unordered_multiset::find<>, unordered_multiset::count<>,
4941 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
4942 * include/debug/unordered_map
4943 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
4944 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
4945 * include/debug/unordered_set
4946 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
4947 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
4948 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
4949 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
4950 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
4951 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
4953 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
4955 * include/bits/stl_deque.h
4956 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
4957 a null pointer test.
4959 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
4961 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
4962 test directory after making it writable again.
4963 * testsuite/experimental/filesystem/operations/remove_all.cc:
4966 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
4969 * include/std/coroutine (coroutine_handle<P>::from_address): Add
4972 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
4974 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
4975 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
4977 2021-02-09 Jakub Jelinek <jakub@redhat.com>
4980 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
4981 points to the characters moved by earlier _S_move, compute the source
4982 address using expression based on the __p pointer rather than __s
4985 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
4987 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
4988 Add comparison with same category and different values.
4989 * testsuite/19_diagnostics/error_code/operators/less.cc:
4990 Likewise. Fix comparison involving different categories.
4991 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
4993 * testsuite/19_diagnostics/error_condition/operators/less.cc:
4995 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
4998 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
5000 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
5001 calls with a single vaddv for aarch64.
5003 2021-02-03 Matthias Kretz <kretz@kde.org>
5005 * testsuite/Makefile.am: Warn about the workaround. Add
5006 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
5007 Improve initial user feedback from make check-simd.
5008 * testsuite/Makefile.in: Regenerated.
5010 2021-02-03 Matthias Kretz <kretz@kde.org>
5012 * include/experimental/bits/simd.h: Add __detail::_Minimum and
5013 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
5014 Add hmin and hmax overloads for simd and const_where_expression.
5015 * include/experimental/bits/simd_scalar.h
5016 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
5017 parameter const-ref to allow calling _S_reduce with an rvalue.
5018 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
5019 hmin and hmax. Since the compiler statically determined that all
5020 tests pass, repeat the test after a call to make_value_unknown.
5022 2021-02-03 Matthias Kretz <kretz@kde.org>
5024 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
5025 instruction pointer data member. Ensure that the `if (m_failed)`
5026 branch is always inlined into the calling code. The body of the
5027 conditional can still be a function call. Move the get_ip call
5028 into the verify ctor to simplify the ctor calls.
5029 (COMPARE): Don't mention the use of all_of for reduction of a
5030 simd_mask. It only distracts from the real issue.
5032 2021-02-03 Matthias Kretz <kretz@kde.org>
5034 * testsuite/experimental/simd/driver.sh: Abstract reading test
5035 options into read_src_option function. Read skip, only,
5036 expensive, and xfail via read_src_option. Add timeout and
5037 timeout-factor options and adjust timeout variable accordingly.
5038 * testsuite/experimental/simd/tests/loadstore.cc: Set
5041 2021-02-03 Matthias Kretz <kretz@kde.org>
5043 * testsuite/experimental/simd/driver.sh: When handling the pipe
5044 to log (and on verbose to stdout) count the lines. If it exceeds
5045 1000 log the issue and exit 125, which is then handled as a
5048 2021-02-03 Matthias Kretz <kretz@kde.org>
5050 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
5051 markup for long double on powerpc64*.
5053 2021-02-03 Matthias Kretz <kretz@kde.org>
5055 * include/experimental/bits/simd.h: Add __have_power10vec
5056 conditional on _ARCH_PWR10.
5057 * include/experimental/bits/simd_builtin.h: Forward declare
5058 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
5060 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
5061 _SuperImpl for optimizations and correctness.
5062 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
5063 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
5064 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
5065 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
5067 2021-02-03 Matthias Kretz <kretz@kde.org>
5069 * testsuite/experimental/simd/driver.sh: Remove executable on
5070 SIGINT. Process compiler and test executable output: In verbose
5071 mode print messages immediately, limited to 1000 lines and
5072 breaking long lines to below $COLUMNS (or 1024 if not set).
5073 Communicating the exit status of the compiler / test with the
5074 necessary pipe is done via a message through stdout/-in.
5076 2021-02-03 Matthias Kretz <kretz@kde.org>
5078 * testsuite/Makefile.am: Ensure .simd.summary is empty before
5079 collecting a new summary.
5080 * testsuite/Makefile.in: Regenerate.
5082 2021-02-03 Matthias Kretz <kretz@kde.org>
5084 * testsuite/experimental/simd/generate_makefile.sh: Use
5085 different variables internally than documented for user
5086 overrides. This makes internal append/prepend work as intended.
5088 2021-02-03 Matthias Kretz <kretz@kde.org>
5090 * testsuite/experimental/simd/driver.sh (verify_test): Print
5091 test output on run xfail. Do not repeat lines from the log that
5092 were already printed on stdout.
5093 (test_selector): Make the compiler flags pattern usable as a
5095 (toplevel): Trap on SIGINT and remove the log and sum files.
5096 Call timout with --foreground to quickly terminate on SIGINT.
5097 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
5098 targets via target patterns. Default DRIVEROPTS to -v for run
5099 targets. Remove log and sum files after completion of the run
5100 target (so that it's always recompiled).
5101 Place help text into text file for reasonable 'make help'
5104 2021-02-03 Matthias Kretz <kretz@kde.org>
5106 * include/experimental/bits/simd.h: Remove unnecessary static
5107 assertion. Allow sizeof(8) integer __intrinsic_type to enable
5108 the necessary mask type.
5110 2021-02-03 Matthias Kretz <kretz@kde.org>
5112 * include/experimental/bits/simd.h: Let __intrinsic_type<long
5113 double, N> be valid if sizeof(long double) == sizeof(double) and
5114 use a __vector double as member type.
5116 2021-02-03 Matthias Kretz <kretz@kde.org>
5118 * include/experimental/bits/simd.h (__is_intrinsic_type): New
5119 internal type trait. Alias for __is_vector_type on x86.
5120 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
5122 (__intrin_bitcast): Allow casting to & from vector & intrinsic
5124 (__intrinsic_type): Explicitly specialize for NEON intrinsic
5127 2021-02-03 Matthias Kretz <kretz@kde.org>
5129 * testsuite/experimental/simd/driver.sh: Implement skip, only,
5130 expensive, and xfail markers. They can select on type, ABI tag
5131 subset number, target-triplet, and compiler flags.
5132 * testsuite/experimental/simd/generate_makefile.sh: The summary
5133 now includes lines for unexpected passes and expected failures.
5134 If the skip or only markers are only conditional on the type, do
5135 not generate rules for those types.
5136 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
5137 for ABI tag subsets 1-9.
5138 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
5139 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
5140 * testsuite/experimental/simd/tests/casts.cc: Ditto.
5141 * testsuite/experimental/simd/tests/generator.cc: Ditto.
5142 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
5143 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
5144 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
5145 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
5146 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
5147 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
5148 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
5149 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
5150 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
5151 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
5152 * testsuite/experimental/simd/tests/operators.cc: Ditto.
5153 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
5154 * testsuite/experimental/simd/tests/simd.cc: Ditto.
5155 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
5156 * testsuite/experimental/simd/tests/splits.cc: Ditto.
5157 * testsuite/experimental/simd/tests/where.cc: Ditto.
5158 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
5159 addition replace "test only floattypes" marker by unconditional
5160 "float|double|ldouble" only marker.
5161 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
5162 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
5163 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5165 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
5166 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
5167 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
5168 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
5169 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
5170 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
5171 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
5172 addition, xfail on run because the reference data is missing.
5174 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
5176 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
5177 * doc/xml/manual/status_cxx2014.xml: Likewise.
5178 * doc/xml/manual/status_cxx2017.xml: Likewise.
5179 * doc/html/manual/status.html: Regenerate.
5181 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
5184 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
5185 Return 0 if both iterators are value-initialized.
5186 * testsuite/23_containers/deque/70303.cc: New test.
5187 * testsuite/23_containers/vector/70303.cc: New test.
5189 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
5191 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
5193 * doc/xml/manual/status_cxx2014.xml: Likewise.
5194 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
5195 std::from_chars and std::to_chars status. Fix formatting.
5196 * doc/html/manual/status.html: Regenerate.
5198 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
5200 * include/experimental/bits/numeric_traits.h: Update copyright
5202 * include/experimental/bits/simd.h: Likewise.
5203 * include/experimental/bits/simd_builtin.h: Likewise.
5204 * include/experimental/bits/simd_converter.h: Likewise.
5205 * include/experimental/bits/simd_detail.h: Likewise.
5206 * include/experimental/bits/simd_fixed_size.h: Likewise.
5207 * include/experimental/bits/simd_math.h: Likewise.
5208 * include/experimental/bits/simd_neon.h: Likewise.
5209 * include/experimental/bits/simd_ppc.h: Likewise.
5210 * include/experimental/bits/simd_scalar.h: Likewise.
5211 * include/experimental/bits/simd_x86.h: Likewise.
5212 * include/experimental/bits/simd_x86_conversions.h: Likewise.
5213 * include/experimental/simd: Likewise.
5214 * testsuite/experimental/simd/*: Likewise.
5216 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
5218 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
5219 * doc/html/*: Regenerate.
5221 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
5223 * testsuite/experimental/simd/generate_makefile.sh: Use printf
5224 instead of echo when printing escape characters.
5226 2021-01-27 Matthias Kretz <kretz@kde.org>
5228 * scripts/check_simd: New file. This script is called from the
5229 the check-simd target. It determines a set of compiler flags and
5230 simulator setups for calling generate_makefile.sh and passes the
5231 information back to the check-simd target, which recurses to the
5232 generated Makefiles.
5233 * scripts/create_testsuite_files: Remove files below simd/tests/
5234 from testsuite_files and place them in testsuite_files_simd.
5235 * testsuite/Makefile.am: Add testsuite_files_simd. Add
5237 * testsuite/Makefile.in: Regenerate.
5238 * testsuite/experimental/simd/driver.sh: New file. This script
5239 compiles and runs a given simd test, logging its output and
5240 status. It uses the timeout command to implement compile and
5242 * testsuite/experimental/simd/generate_makefile.sh: New file.
5243 This script generates a Makefile which uses driver.sh to compile
5244 and run the tests and collect the logs into a single log file.
5245 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
5247 * testsuite/experimental/simd/tests/algorithms.cc: New file.
5248 Tests min/max(simd, simd).
5249 * testsuite/experimental/simd/tests/bits/conversions.h: New
5250 file. Contains functions to support tests involving conversions.
5251 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
5252 Support functions make_mask and make_vec.
5253 * testsuite/experimental/simd/tests/bits/mathreference.h: New
5254 file. Support functions to supply precomputed math function
5256 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
5257 file. Support code for SFINAE testing.
5258 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
5259 * testsuite/experimental/simd/tests/bits/test_values.h: New
5260 file. Test functions to easily drive a test with simd objects
5261 initialized from a given list of values and a range of random
5263 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
5264 Support code to determine the ULP distance of simd objects.
5265 * testsuite/experimental/simd/tests/bits/verify.h: New file.
5266 Test framework for COMPARE'ing simd objects and instantiating
5267 the test templates with value_type and ABI tag.
5268 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
5270 * testsuite/experimental/simd/tests/casts.cc: New file. Test
5272 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
5273 Test floating-point classification functions.
5274 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
5276 * testsuite/experimental/simd/tests/generator.cc: New file. Test
5277 simd generator constructor.
5278 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
5279 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
5280 * testsuite/experimental/simd/tests/integer_operators.cc: New
5281 file. Test integer operators.
5282 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5283 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
5285 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
5286 (converting) simd loads and stores.
5287 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
5289 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
5290 Test simd_mask broadcasts.
5291 * testsuite/experimental/simd/tests/mask_conversions.cc: New
5292 file. Test simd_mask conversions.
5293 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
5294 file. Test simd_mask implicit conversions.
5295 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
5296 Test simd_mask loads and stores.
5297 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
5298 file. Test simd_mask operators convert as specified.
5299 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
5300 Test simd_mask compares, subscripts, and negation.
5301 * testsuite/experimental/simd/tests/mask_reductions.cc: New
5302 file. Test simd_mask reductions.
5303 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
5304 1-arg math functions on simd.
5305 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
5306 2-arg math functions on simd.
5307 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
5308 Test implicit conversions on simd binary operators behave as
5310 * testsuite/experimental/simd/tests/operators.cc: New file. Test
5311 simd compares, subscripts, not, unary minus, plus, minus,
5312 multiplies, divides, increment, and decrement.
5313 * testsuite/experimental/simd/tests/reductions.cc: New file.
5315 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
5317 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
5318 sanity checks of simd types.
5319 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
5320 sin(simd) and cos(simd).
5321 * testsuite/experimental/simd/tests/split_concat.cc: New file.
5322 Test split(simd) and concat(simd, simd).
5323 * testsuite/experimental/simd/tests/splits.cc: New file. Test
5325 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
5326 Test remaining trigonometric functions on simd.
5327 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
5328 file. Test trunc(simd), ceil(simd), and floor(simd).
5329 * testsuite/experimental/simd/tests/where.cc: New file. Test
5330 masked operations using where.
5332 2021-01-27 Matthias Kretz <kretz@kde.org>
5334 * doc/xml/manual/status_cxx2017.xml: Add implementation status
5335 of the Parallelism TS 2. Document implementation-defined types
5337 * include/Makefile.am: Add new headers.
5338 * include/Makefile.in: Regenerate.
5339 * include/experimental/simd: New file. New header for
5341 * include/experimental/bits/numeric_traits.h: New file.
5342 Implementation of P1841R1 using internal naming. Addition of
5343 missing IEC559 functionality query.
5344 * include/experimental/bits/simd.h: New file. Definition of the
5345 public simd interfaces and general implementation helpers.
5346 * include/experimental/bits/simd_builtin.h: New file.
5347 Implementation of the _VecBuiltin simd_abi.
5348 * include/experimental/bits/simd_converter.h: New file. Generic
5350 * include/experimental/bits/simd_detail.h: New file. Internal
5351 macros for the simd implementation.
5352 * include/experimental/bits/simd_fixed_size.h: New file. Simd
5353 fixed_size ABI specific implementations.
5354 * include/experimental/bits/simd_math.h: New file. Math
5356 * include/experimental/bits/simd_neon.h: New file. Simd NEON
5357 specific implementations.
5358 * include/experimental/bits/simd_ppc.h: New file. Implement bit
5359 shifts to avoid invalid results for integral types smaller than
5361 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
5362 ABI specific implementations.
5363 * include/experimental/bits/simd_x86.h: New file. Simd x86
5364 specific implementations.
5365 * include/experimental/bits/simd_x86_conversions.h: New file.
5366 x86 specific conversion optimizations. The conversion patterns
5367 work around missing conversion patterns in the compiler and
5368 should be removed as soon as PR85048 is resolved.
5369 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
5370 Test that all (not all fixed_size<N>, though) standard simd and
5371 simd_mask types are usable.
5372 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
5373 file. As above but with -ffast-math.
5374 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
5375 from the standard test loop. Instead use
5376 check_vect_support_and_set_flags to build simd tests with the
5377 relevant machine flags.
5379 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
5382 * include/bits/string_view.tcc
5383 (basic_string_view::find(const CharT*, size_type, size_type)):
5386 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
5388 * include/bits/basic_string.h (basic_string::contains): New
5390 * include/std/string_view (basic_string_view::contains):
5392 * include/std/version (__cpp_lib_string_contains): Define.
5393 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
5394 Remove trailing whitespace.
5395 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
5397 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
5398 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
5399 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
5400 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
5401 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
5403 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
5405 * src/c++17/Makefile.in: Regenerate.
5407 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
5409 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
5410 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
5412 (const char* ctype<char>:: is): Same.
5414 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
5417 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
5418 write to a wide character stream if wide character support is
5419 disabled in the library.
5421 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
5423 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
5424 stringbuf not wstringbuf.
5426 2021-01-18 Jakub Jelinek <jakub@redhat.com>
5429 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
5430 Compile with -gno-as-loc-support.
5431 * src/c++11/Makefile.in: Regenerated.
5433 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
5435 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
5436 Add -fcf-protection=none to -march=i486.
5438 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
5440 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
5443 2021-01-14 Alexandre Oliva <oliva@adacore.com>
5445 * testsuite/30_threads/future/members/poll.cc: Calibrate
5448 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
5451 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
5452 (_Node_iterator()): Make default.
5453 (_Node_const_iterator()): Make default.
5454 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
5456 * include/debug/safe_iterator.h
5457 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
5458 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
5460 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
5461 _M_singular checks on input iterators.
5462 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
5464 * testsuite/23_containers/deque/debug/98466.cc: New test.
5465 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
5467 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
5470 * include/bits/fs_path.h (__throw_conversion_error): New
5471 function to throw or abort on character conversion errors.
5472 (__wstr_from_utf8): Move definition after filesystem_error has
5473 been defined. Use __throw_conversion_error.
5474 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
5475 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
5476 (path::u8string): Likewise.
5478 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
5480 * include/std/barrier: Update copyright years. Fix whitespace.
5481 * include/std/version: Fix whitespace.
5482 * testsuite/30_threads/barrier/1.cc: Update copyright years.
5483 * testsuite/30_threads/barrier/2.cc: Likewise.
5484 * testsuite/30_threads/barrier/arrive.cc: Likewise.
5485 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5486 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5487 * testsuite/30_threads/barrier/completion.cc: Likewise.
5489 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
5491 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
5493 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
5496 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
5498 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
5500 2021-01-08 Olivier Hainque <hainque@adacore.com>
5502 * testsuite/20_util/bind/ref_neg.cc: Tweak the
5503 dg-prune-output regex for out-of-build-tree contexts.
5505 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
5507 * doc/doxygen/user.cfg.in: Add new header.
5508 * include/Makefile.am (std_headers): likewise.
5509 * include/Makefile.in: Regenerate.
5510 * include/precompiled/stdc++.h: Add new header.
5511 * include/std/barrier: New file.
5512 * include/std/version: Add __cpp_lib_barrier feature test macro.
5513 * testsuite/30_threads/barrier/1.cc: New test.
5514 * testsuite/30_threads/barrier/2.cc: Likewise.
5515 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5516 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5517 * testsuite/30_threads/barrier/arrive.cc: Likewise.
5518 * testsuite/30_threads/barrier/completion.cc: Likewise.
5520 2021-01-07 Patrick Palka <ppalka@redhat.com>
5523 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
5524 instead of the non-standard nextupl and nextdownl.
5526 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
5528 * configure: Re-generate.
5530 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
5532 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
5534 2021-01-01 Jakub Jelinek <jakub@redhat.com>
5536 * ChangeLog-2020: Rotate ChangeLog. New file.
5539 Copyright (C) 2021 Free Software Foundation, Inc.
5541 Copying and distribution of this file, with or without modification,
5542 are permitted in any medium without royalty provided the copyright
5543 notice and this notice are preserved.