1 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
4 * include/bits/hashtable_policy.h (_Select2nd): New.
6 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
7 (_AllocNode<>::operator()): Likewise.
8 * include/bits/hashtable.h
9 (_Hashtable<>::__node_builder_t): New.
10 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
12 (_Hashtable<>::_S_forward_key): New.
13 (_Hashtable<>::_M_insert): Use latter.
14 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
15 Instantiate node first, compute hash code second.
16 * testsuite/23_containers/unordered_map/96088.cc: New test.
17 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
18 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
19 * testsuite/23_containers/unordered_set/96088.cc: New test.
20 * testsuite/util/replacement_memory_operators.h
21 (counter::_M_increment): New.
22 (counter::_M_decrement): New.
23 (counter::reset()): New.
25 2021-05-24 Patrick Palka <ppalka@redhat.com>
28 * include/std/ranges (__detail::__non_propagating_cache): Move
29 definition up to before that of _CachedPosition. Make base
30 class _Optional_base protected instead of private. Add const
31 overload for operator*.
32 (__detail::_CachedPosition): Rewrite the partial specialization
33 for forward ranges as a derived class of __non_propagating_cache.
34 Remove the size constraint on the partial specialization for
35 random access ranges. Add copy/move/copy-assignment/move-assignment
36 members to the offset partial specialization for random
37 access ranges that propagate the cached value but additionally
38 invalidate it in the source object on move.
39 * testsuite/std/ranges/adaptors/100479.cc: New test.
41 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
43 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
45 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
46 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
48 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
51 2021-05-21 Patrick Palka <ppalka@redhat.com>
54 * include/std/ranges (drop_while_view::begin): Assert the
55 precondition added by LWG 3490.
57 2021-05-21 Patrick Palka <ppalka@redhat.com>
60 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
61 Split out this member function from ...
62 (iota_view::_Sentinel::operator-): ... here, for sake of access
64 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
66 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
68 * include/bits/random.tcc (__representable_as_double)
69 (__p1_representable_as_double): Add "" to static asserts.
71 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
74 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
75 (__glibcxx_constexpr_assert): ... this.
76 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
77 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
78 or __glibcxx_assert_impl.
79 (__glibcxx_assert_2): Remove
80 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
81 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
82 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
83 Adjust expected error.
84 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
86 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
89 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
91 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
93 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
95 * testsuite/23_containers/span/back_neg.cc: Likewise.
96 * testsuite/23_containers/span/front_neg.cc: Likewise.
97 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
99 2021-05-20 Patrick Palka <ppalka@redhat.com>
102 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
103 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
104 (reverse_iterator::reference): Likewise, but with iter_reference_t.
105 (reverse_iterator::value_type): Likewise, but with iter_value_t.
106 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
107 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
109 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
112 * include/std/charconv (to_chars): Hide the overloads for
113 floating-point types for 16 bit targets.
114 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
115 * testsuite/20_util/to_chars/double.cc: Run this test only on
117 * testsuite/20_util/to_chars/float.cc: Likewise.
118 * testsuite/20_util/to_chars/long_double.cc: Likewise.
120 2021-05-18 Patrick Palka <ppalka@redhat.com>
123 * include/std/ranges (elements_view::_Sentinel::operator-): Use
124 _M_distance_from in the other operator- overload too.
125 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
127 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
129 * testsuite/lib/prune.exp: Add note about 'dg-note'.
131 2021-05-18 Patrick Palka <ppalka@redhat.com>
134 * include/std/ranges (__box::__box): Use non-list-initialization
135 in member initializer list of in-place constructor of the
136 partial specialization for semiregular types.
137 (__box::operator->): Use std::__addressof.
138 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
140 * testsuite/std/ranges/single_view.cc (test04): New test.
142 2021-05-18 Patrick Palka <ppalka@redhat.com>
145 * include/std/ranges (reverse_view::_S_needs_cached_begin):
146 Set to true if the underlying non-common random-access range
147 doesn't have a sized sentinel.
149 2021-05-18 Patrick Palka <ppalka@redhat.com>
152 * include/std/ranges (elements_view::_Iterator): Also befriend
154 (elements_view::_Sentinel::_M_equal): Templatize.
155 (elements_view::_Sentinel::_M_distance_from): Split out from ...
156 (elements_view::_Sentinel::operator-): ... here. Depend on
157 _Base2 instead of _Base in the return type.
158 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
161 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
163 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
164 until value change observed.
165 (__waiter_base::_M_laundered): New member.
166 (__waiter_base::_M_notify): Check _M_laundered to determine
167 whether to wake one or all.
168 (__detail::__atomic_compare): Return true if call to
169 __builtin_memcmp() == 0.
170 (__waiter_base::_S_do_spin_v): Adjust predicate.
171 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
174 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
177 * include/experimental/bits/fs_path.h (__is_constructible_from):
178 Test construction from a const lvalue, not an rvalue.
179 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
180 * testsuite/experimental/filesystem/path/construct/100630.cc:
183 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
186 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
187 Declare (but do not define) partial specialization.
188 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
190 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
192 * include/std/thread (jthread::_S_create): Fix static assert
194 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
195 * testsuite/30_threads/jthread/jthread.cc: Do not require
196 pthread effective target.
197 * testsuite/30_threads/jthread/2.cc: Moved to...
198 * testsuite/30_threads/jthread/version.cc: ...here.
200 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
202 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
203 * doc/Makefile.in: Regenerate.
204 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
206 * scripts/run_doxygen (print_usage): Always print to stdout and
208 (fail): New function for exiting on error.
209 (parse_options): Handle --latex_cmd. Do not treat --help the
210 same as errors. Simplify handling of required arguments.
212 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
214 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
215 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
216 warnings. Replace bitwise AND with logical AND in loop
218 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
219 Replace bitwise AND with logical AND in loop condition.
220 * testsuite/util/pstl/test_utils.h: Remove unused parameter
223 2021-05-11 Patrick Palka <ppalka@redhat.com>
225 * src/c++17/ryu/LOCAL_PATCHES: Update.
226 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
227 Remove declarations for never-defined functions.
228 * testsuite/20_util/to_chars/4.cc: New test.
230 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
232 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
233 alternative for macro.
234 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
236 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
239 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
241 * include/bits/allocator.h (allocator<void>) [C++20]: Add
242 missing noexcept to constructor. Restore missing POCMA and
243 is_always_equal_traits.
244 [C++17]: Make construct and destroy members private and
245 declare allocator_traits as a friend.
246 * include/bits/memoryfwd.h (allocator_traits): Declare.
247 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
248 Add nodiscard attribute. Add static assertion for LWG 3307.
249 * include/ext/new_allocator.h (new_allocator::allocate): Add
250 static assertion for LWG 3307.
251 * testsuite/20_util/allocator/void.cc: Check that converting
252 constructor is noexcept. Check for propagation traits and
253 size_type and difference_type. Check that pointer and
254 const_pointer are gone in C++20.
256 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
258 * include/std/stop_token: Remove TODO comment.
260 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
262 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
263 Initialize a non-reference deleter from an rvalue, as per LWG
265 (__shared_ptr::_UniqCompatible): Add missing constraint.
266 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
267 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
270 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
272 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
273 -std=gnu++17 from dg-options directive.
274 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
276 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
278 * testsuite/17_intro/headers/c++2017/operator_names.cc:
280 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
281 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
282 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
284 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
285 * testsuite/18_support/byte/81076.cc: Likewise.
286 * testsuite/18_support/byte/global_neg.cc: Likewise.
287 * testsuite/18_support/byte/ops.cc: Likewise.
288 * testsuite/18_support/byte/requirements.cc: Likewise.
289 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
290 * testsuite/18_support/launder/1.cc: Likewise.
291 * testsuite/18_support/launder/nodiscard.cc: Likewise.
292 * testsuite/18_support/launder/requirements.cc: Likewise.
293 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
294 * testsuite/18_support/new_aligned.cc: Likewise.
295 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
297 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
299 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
300 * testsuite/20_util/addressof/requirements/constexpr.cc:
302 * testsuite/20_util/as_const/1.cc: Likewise.
303 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
304 * testsuite/20_util/bind/83427.cc: Likewise.
305 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
306 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
307 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
309 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
311 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
312 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
314 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
315 * testsuite/20_util/from_chars/requirements.cc: Likewise.
316 * testsuite/20_util/function/91456.cc: Likewise.
317 * testsuite/20_util/function/cons/deduction.cc: Likewise.
318 * testsuite/20_util/function_objects/83607.cc: Likewise.
319 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
320 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
321 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
322 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
323 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
325 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
327 * testsuite/20_util/has_unique_object_representations/value.cc:
329 * testsuite/20_util/hash/nullptr.cc: Likewise.
330 * testsuite/20_util/in_place/requirements.cc: Likewise.
331 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
332 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
334 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
336 * testsuite/20_util/is_aggregate/value.cc: Likewise.
337 * testsuite/20_util/is_invocable/83395.cc: Likewise.
338 * testsuite/20_util/is_invocable/91456.cc: Likewise.
339 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
341 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
343 * testsuite/20_util/is_invocable/value.cc: Likewise.
344 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
345 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
346 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
347 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
349 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
350 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
351 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
353 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
355 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
356 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
358 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
360 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
362 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
364 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
366 * testsuite/20_util/is_swappable/value.cc: Likewise.
367 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
369 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
371 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
372 * testsuite/20_util/logical_traits/83134.cc: Likewise.
373 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
375 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
377 * testsuite/20_util/logical_traits/value.cc: Likewise.
378 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
379 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
380 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
382 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
383 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
384 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
385 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
386 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
388 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
390 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
391 * testsuite/20_util/to_chars/3.cc: Likewise.
392 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
393 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
394 * testsuite/20_util/to_chars/requirements.cc: Likewise.
395 * testsuite/20_util/tuple/78939.cc: Likewise.
396 * testsuite/20_util/tuple/apply/1.cc: Likewise.
397 * testsuite/20_util/tuple/apply/2.cc: Likewise.
398 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
399 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
400 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
401 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
402 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
403 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
404 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
406 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
407 * testsuite/20_util/void_t/1.cc: Likewise.
408 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
409 * testsuite/24_iterators/container_access.cc: Likewise.
410 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
412 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
414 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
416 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
418 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
419 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
421 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
422 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
424 * testsuite/26_numerics/lcm/1.cc: Likewise.
425 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
426 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
427 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
429 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
431 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
433 * testsuite/27_io/types/4.cc: Likewise.
434 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
435 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
436 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
438 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
440 * testsuite/20_util/function_objects/searchers.cc: Remove
441 -std=gnu++17 from dg-options directive.
442 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
444 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
446 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
448 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
450 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
452 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
454 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
456 * testsuite/25_algorithms/clamp/1.cc: Likewise.
457 * testsuite/25_algorithms/clamp/2.cc: Likewise.
458 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
459 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
461 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
463 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
464 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
466 * testsuite/25_algorithms/sample/1.cc: Likewise.
467 * testsuite/25_algorithms/sample/2.cc: Likewise.
468 * testsuite/25_algorithms/sample/3.cc: Likewise.
469 * testsuite/25_algorithms/sample/81221.cc: Likewise.
470 * testsuite/25_algorithms/search/searcher.cc: Likewise.
471 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
472 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
473 * testsuite/26_numerics/reduce/1.cc: Likewise.
474 * testsuite/26_numerics/reduce/2.cc: Likewise.
475 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
476 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
477 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
479 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
481 * testsuite/23_containers/array/cons/deduction.cc: Remove
482 -std=gnu++17 from dg-options directive.
483 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
484 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
486 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
488 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
490 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
491 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
493 * testsuite/23_containers/forward_list/cons/deduction.cc:
495 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
497 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
498 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
500 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
501 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
502 * testsuite/23_containers/map/modifiers/insert/83226.cc:
504 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
506 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
507 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
509 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
510 * testsuite/23_containers/multimap/modifiers/extract.cc:
512 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
513 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
514 * testsuite/23_containers/multiset/modifiers/extract.cc:
516 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
517 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
518 * testsuite/23_containers/queue/deduction.cc: Likewise.
519 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
521 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
522 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
523 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
524 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
525 * testsuite/23_containers/stack/deduction.cc: Likewise.
526 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
528 * testsuite/23_containers/unordered_map/cons/deduction.cc:
530 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
532 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
534 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
536 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
538 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
540 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
542 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
544 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
546 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
548 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
550 * testsuite/23_containers/unordered_set/cons/deduction.cc:
552 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
554 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
556 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
558 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
559 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
560 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
563 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
565 * testsuite/21_strings/basic_string/79162.cc: Remove
566 -std=gnu++17 from dg-options directive.
567 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
568 * testsuite/21_strings/basic_string/cons/char/79162.cc:
570 * testsuite/21_strings/basic_string/cons/char/86138.cc:
572 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
573 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
575 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
577 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
578 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
580 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
582 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
583 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
585 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
587 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
588 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
589 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
590 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
592 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
594 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
596 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
598 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
600 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
602 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
604 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
606 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
608 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
610 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
612 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
614 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
616 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
618 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
620 * testsuite/21_strings/basic_string/operators/char/5.cc:
622 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
624 * testsuite/21_strings/basic_string_view/capacity/1.cc:
626 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
628 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
630 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
632 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
634 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
636 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
638 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
640 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
642 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
644 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
646 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
648 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
650 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
652 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
654 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
656 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
658 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
660 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
662 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
664 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
666 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
668 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
670 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
672 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
674 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
676 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
678 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
679 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
681 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
683 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
685 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
687 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
689 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
691 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
693 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
695 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
697 * testsuite/21_strings/basic_string_view/literals/types.cc:
699 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
701 * testsuite/21_strings/basic_string_view/literals/values.cc:
703 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
705 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
707 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
709 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
711 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
713 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
715 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
717 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
719 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
721 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
723 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
725 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
727 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
729 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
731 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
733 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
735 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
737 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
739 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
741 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
743 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
745 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
747 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
749 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
751 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
753 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
755 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
757 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
759 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
761 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
763 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
765 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
767 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
769 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
771 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
773 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
775 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
777 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
779 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
781 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
783 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
785 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
787 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
789 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
791 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
793 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
795 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
797 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
799 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
801 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
803 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
805 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
807 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
809 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
811 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
813 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
814 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
815 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
817 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
819 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
821 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
822 from dg-options directive.
823 * testsuite/20_util/memory_resource/2.cc: Likewise.
824 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
825 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
827 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
829 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
831 * testsuite/20_util/monotonic_buffer_resource/release.cc:
833 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
835 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
836 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
838 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
839 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
840 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
842 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
844 * testsuite/20_util/synchronized_pool_resource/cons.cc:
846 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
848 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
850 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
852 * testsuite/20_util/synchronized_pool_resource/options.cc:
854 * testsuite/20_util/synchronized_pool_resource/release.cc:
856 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
858 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
860 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
862 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
864 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
866 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
868 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
870 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
872 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
873 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
875 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
877 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
879 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
880 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
881 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
882 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
883 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
884 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
886 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
887 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
889 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
890 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
891 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
893 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
895 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
897 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
899 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
901 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
903 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
905 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
907 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
908 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
910 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
912 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
914 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
916 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
917 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
918 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
919 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
920 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
921 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
922 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
923 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
925 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
927 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
928 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
929 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
931 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
932 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
934 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
935 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
936 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
937 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
939 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
941 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
942 dg-options directive.
943 * testsuite/20_util/any/assign/2.cc: Likewise.
944 * testsuite/20_util/any/assign/emplace.cc: Likewise.
945 * testsuite/20_util/any/assign/exception.cc: Likewise.
946 * testsuite/20_util/any/assign/self.cc: Likewise.
947 * testsuite/20_util/any/cons/1.cc: Likewise.
948 * testsuite/20_util/any/cons/2.cc: Likewise.
949 * testsuite/20_util/any/cons/90415.cc: Likewise.
950 * testsuite/20_util/any/cons/92156.cc: Likewise.
951 * testsuite/20_util/any/cons/aligned.cc: Likewise.
952 * testsuite/20_util/any/cons/explicit.cc: Likewise.
953 * testsuite/20_util/any/cons/in_place.cc: Likewise.
954 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
955 * testsuite/20_util/any/make_any.cc: Likewise.
956 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
957 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
958 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
959 * testsuite/20_util/any/misc/swap.cc: Likewise.
960 * testsuite/20_util/any/modifiers/1.cc: Likewise.
961 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
962 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
963 * testsuite/20_util/any/observers/type.cc: Likewise.
964 * testsuite/20_util/any/requirements.cc: Likewise.
965 * testsuite/20_util/any/typedefs.cc: Likewise.
966 * testsuite/20_util/optional/77288.cc: Likewise.
967 * testsuite/20_util/optional/84601.cc: Likewise.
968 * testsuite/20_util/optional/assignment/1.cc: Likewise.
969 * testsuite/20_util/optional/assignment/2.cc: Likewise.
970 * testsuite/20_util/optional/assignment/3.cc: Likewise.
971 * testsuite/20_util/optional/assignment/4.cc: Likewise.
972 * testsuite/20_util/optional/assignment/5.cc: Likewise.
973 * testsuite/20_util/optional/assignment/6.cc: Likewise.
974 * testsuite/20_util/optional/assignment/7.cc: Likewise.
975 * testsuite/20_util/optional/assignment/8.cc: Likewise.
976 * testsuite/20_util/optional/assignment/9.cc: Likewise.
977 * testsuite/20_util/optional/bad_access.cc: Likewise.
978 * testsuite/20_util/optional/cons/77727.cc: Likewise.
979 * testsuite/20_util/optional/cons/85642.cc: Likewise.
980 * testsuite/20_util/optional/cons/copy.cc: Likewise.
981 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
982 * testsuite/20_util/optional/cons/default.cc: Likewise.
983 * testsuite/20_util/optional/cons/move.cc: Likewise.
984 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
985 * testsuite/20_util/optional/cons/value.cc: Likewise.
986 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
987 * testsuite/20_util/optional/constexpr/cons/default.cc:
989 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
990 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
991 * testsuite/20_util/optional/constexpr/make_optional.cc:
993 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
994 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
995 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
996 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
997 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
998 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
999 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
1000 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
1001 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
1002 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
1003 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
1004 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
1005 * testsuite/20_util/optional/hash.cc: Likewise.
1006 * testsuite/20_util/optional/in_place.cc: Likewise.
1007 * testsuite/20_util/optional/make_optional.cc: Likewise.
1008 * testsuite/20_util/optional/nullopt.cc: Likewise.
1009 * testsuite/20_util/optional/observers/1.cc: Likewise.
1010 * testsuite/20_util/optional/observers/2.cc: Likewise.
1011 * testsuite/20_util/optional/observers/3.cc: Likewise.
1012 * testsuite/20_util/optional/observers/4.cc: Likewise.
1013 * testsuite/20_util/optional/observers/5.cc: Likewise.
1014 * testsuite/20_util/optional/observers/6.cc: Likewise.
1015 * testsuite/20_util/optional/relops/1.cc: Likewise.
1016 * testsuite/20_util/optional/relops/2.cc: Likewise.
1017 * testsuite/20_util/optional/relops/3.cc: Likewise.
1018 * testsuite/20_util/optional/relops/4.cc: Likewise.
1019 * testsuite/20_util/optional/relops/5.cc: Likewise.
1020 * testsuite/20_util/optional/relops/6.cc: Likewise.
1021 * testsuite/20_util/optional/relops/7.cc: Likewise.
1022 * testsuite/20_util/optional/requirements.cc: Likewise.
1023 * testsuite/20_util/optional/swap/1.cc: Likewise.
1024 * testsuite/20_util/optional/swap/2.cc: Likewise.
1025 * testsuite/20_util/optional/typedefs.cc: Likewise.
1026 * testsuite/20_util/variant/80165.cc: Likewise.
1027 * testsuite/20_util/variant/85183.cc: Likewise.
1028 * testsuite/20_util/variant/86874.cc: Likewise.
1029 * testsuite/20_util/variant/87431.cc: Likewise.
1030 * testsuite/20_util/variant/87619.cc: Likewise.
1031 * testsuite/20_util/variant/91807.cc: Likewise.
1032 * testsuite/20_util/variant/any.cc: Likewise.
1033 * testsuite/20_util/variant/compile.cc: Likewise.
1034 * testsuite/20_util/variant/deduction.cc: Likewise.
1035 * testsuite/20_util/variant/exception_safety.cc: Likewise.
1036 * testsuite/20_util/variant/hash.cc: Likewise.
1037 * testsuite/20_util/variant/index_type.cc: Likewise.
1038 * testsuite/20_util/variant/relops/89851.cc: Likewise.
1039 * testsuite/20_util/variant/relops/90008.cc: Likewise.
1040 * testsuite/20_util/variant/run.cc: Likewise.
1041 * testsuite/20_util/variant/visit.cc: Likewise.
1043 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1045 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
1046 -std=gnu++17 from dg-options directive.
1047 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
1048 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
1049 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
1050 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
1051 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
1052 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
1053 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
1054 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
1056 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
1057 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
1058 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
1059 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
1060 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
1061 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1063 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
1064 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
1066 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1068 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
1069 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
1070 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
1071 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
1072 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
1073 * testsuite/27_io/filesystem/operations/create_directories.cc:
1075 * testsuite/27_io/filesystem/operations/create_directory.cc:
1077 * testsuite/27_io/filesystem/operations/create_symlink.cc:
1079 * testsuite/27_io/filesystem/operations/current_path.cc:
1081 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
1082 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1083 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
1084 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1085 * testsuite/27_io/filesystem/operations/last_write_time.cc:
1087 * testsuite/27_io/filesystem/operations/permissions.cc:
1089 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
1090 * testsuite/27_io/filesystem/operations/read_symlink.cc:
1092 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
1093 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
1094 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
1095 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
1096 * testsuite/27_io/filesystem/operations/resize_file.cc:
1098 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
1099 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
1100 * testsuite/27_io/filesystem/operations/symlink_status.cc:
1102 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1104 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
1106 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
1107 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
1108 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
1109 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
1110 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
1111 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
1112 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
1113 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
1114 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
1115 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
1116 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
1117 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
1118 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
1119 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
1120 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
1121 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
1122 * testsuite/27_io/filesystem/path/construct/default.cc:
1124 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
1125 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
1126 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
1127 * testsuite/27_io/filesystem/path/construct/string_view.cc:
1129 * testsuite/27_io/filesystem/path/decompose/extension.cc:
1131 * testsuite/27_io/filesystem/path/decompose/filename.cc:
1133 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
1135 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
1137 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
1139 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
1141 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
1143 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
1144 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
1146 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
1147 * testsuite/27_io/filesystem/path/generation/normal.cc:
1149 * testsuite/27_io/filesystem/path/generation/normal2.cc:
1151 * testsuite/27_io/filesystem/path/generation/proximate.cc:
1153 * testsuite/27_io/filesystem/path/generation/relative.cc:
1155 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
1156 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
1158 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
1159 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
1160 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
1161 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
1162 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
1163 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
1164 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
1166 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
1168 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
1170 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
1172 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
1173 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
1174 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
1176 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
1177 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
1178 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
1179 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
1181 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
1182 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
1183 * testsuite/27_io/filesystem/path/query/has_extension.cc:
1185 * testsuite/27_io/filesystem/path/query/has_filename.cc:
1187 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
1189 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
1191 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
1193 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
1195 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
1197 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
1198 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
1200 * testsuite/27_io/filesystem/path/query/is_relative.cc:
1202 * testsuite/experimental/filesystem/path/construct/string_view.cc:
1205 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1207 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
1208 Remove -std=gnu++17 from dg-options.
1209 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
1211 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
1213 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
1215 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
1216 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
1218 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
1220 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
1222 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
1224 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
1226 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
1228 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
1230 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
1232 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
1234 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
1236 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
1238 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
1240 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
1242 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
1244 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
1246 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
1248 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
1250 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
1252 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
1254 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
1256 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
1258 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
1260 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
1262 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
1264 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
1266 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
1268 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
1270 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
1272 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
1274 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
1276 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
1278 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
1280 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
1282 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
1284 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
1286 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
1287 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
1289 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
1291 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
1293 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
1295 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
1297 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
1298 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
1299 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
1300 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
1301 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
1302 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
1303 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
1304 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
1306 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
1307 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
1308 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
1310 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
1313 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1315 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
1316 for additional errors in C++20.
1317 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1319 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
1320 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
1322 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
1324 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
1325 clash with std::any.
1327 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
1329 * include/std/istream (__rvalue_stream_extraction_t): Replace
1330 use of __rval_streamable.
1331 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
1332 (__rval_streamable): Remove.
1333 (_Require_derived_from_ios_base, __derived_from_ios_base): New
1334 helper for checking constraints.
1335 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
1336 reference to the wrong subclause of the standard.
1337 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
1339 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
1341 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
1343 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
1345 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
1348 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
1350 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
1351 Improve static_assert messages.
1352 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
1353 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
1355 2021-05-06 Patrick Palka <ppalka@redhat.com>
1357 * include/std/ranges (filter_view::_Iterator::base): Make the
1358 const& overload unconstrained and return a const reference as
1359 per LWG 3533. Make unconditionally noexcept.
1360 (transform_view::_Iterator::base): Likewise.
1361 (elements_view::_Iterator::base): Likewise.
1363 2021-05-06 Patrick Palka <ppalka@redhat.com>
1365 * include/bits/stl_iterator.h (move_iterator::base): Make the
1366 const& overload unconstrained and return a const reference as
1367 per LWG 3391. Make unconditionally noexcept.
1368 (counted_iterator::base): Likewise.
1369 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
1370 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
1371 has_member_base concept to decay-copy the result of base().
1373 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
1375 * include/std/type_traits (remove_cvref_t): Define in terms of
1377 * testsuite/20_util/remove_cvref/value.cc: Check alias.
1379 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
1382 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
1384 * include/std/charconv (__from_chars_alnum): Pass unsigned
1385 char to std::isdigit.
1387 2021-05-05 Patrick Palka <ppalka@redhat.com>
1389 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
1390 Remove constraints on this partial specialization.
1391 * include/std/ranges (enable_borrowed_range<iota_view>):
1394 2021-05-05 Patrick Palka <ppalka@redhat.com>
1396 * include/std/ranges (transform_view::_Iterator::iter_swap):
1397 Remove as per LWG 3520.
1398 (join_view::_Iterator::iter_swap): Add indirectly_swappable
1399 constraint as per LWG 3517.
1401 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
1403 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
1405 * testsuite/20_util/function_objects/invoke/version.cc: New test.
1407 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
1409 * include/std/charconv (__from_chars_alnum): Pass unsigned
1410 char to std::isdigit.
1412 2021-05-05 Corentin Gay <gay@adacore.com>
1414 * acinclude.m4: Add VxWorks-specific case for the
1415 configuration of ctypes.
1416 * configure: Regenerate.
1417 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
1419 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
1420 * config/os/vxworks/ctype_configure_char.cc: Likewise.
1421 * config/os/vxworks/ctype_inline.h: Likewise.
1422 * testsuite/28_regex/traits/char/isctype.cc: Defines
1423 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
1424 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
1426 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
1428 * include/std/future (promise::set_value): Check for existence
1429 of shared state before dereferncing it.
1430 (promise::set_exception, promise::set_value_at_thread_exit)
1431 (promise::set_exception_at_thread_exit): Likewise.
1432 (promise<R&>::set_value, promise<R&>::set_exception)
1433 (promise<R&>::set_value_at_thread_exit)
1434 (promise<R&>::set_exception_at_thread_exit): Likewise.
1435 (promise<void>::set_value, promise<void>::set_exception)
1436 (promise<void>::set_value_at_thread_exit)
1437 (promise<void>::set_exception_at_thread_exit): Likewise.
1438 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
1439 Remove unused variable.
1441 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
1443 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
1444 Do not do arithmetic on null pointer.
1446 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
1448 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
1449 (find_key_pointer(key_const_reference, false_type))
1450 (find_key_pointer(key_const_reference, true_type)): Do not
1451 dereference null pointer.
1453 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
1455 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
1457 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
1458 non-zero value to null pointer.
1459 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
1460 Use past-the-end iterator for result.
1461 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
1462 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
1464 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
1467 * include/std/variant (__get_t): New alias template yielding the
1468 return type of std::get<N> on a variant.
1469 (__visit_result_t): New alias template yielding the result of
1471 (__same_types): Move into namespace __detail::__variant.
1472 (__check_visitor_results): Likewise. Use __invoke_result_t and
1474 (__check_visitor_result): Remove.
1475 (visit): Use __visit_result_t for return type.
1476 * testsuite/20_util/variant/100384.cc: New test.
1478 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
1480 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
1481 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
1482 * config.h.in: Regenerate.
1483 * configure: Regenerate.
1484 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
1485 * include/bits/random.h (_Select_uint_least_t<s, 1>):
1486 Use __SIZEOF_INT128__ to decide whether to use __int128.
1487 * include/std/charconv (__to_chars_unsigned_type): Likewise.
1489 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
1491 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
1492 * doc/html/manual/facets.html: Regenerate.
1494 2021-04-30 Patrick Palka <ppalka@redhat.com>
1496 * include/std/ranges (__detail::__non_propating_cache): Define
1498 (join_view): Remove constraints on the value and reference types
1499 of the wrapped iterator type as per P2328.
1500 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
1501 (join_view::_Iterator::operator++): Likewise.
1502 (join_view::_M_inner): Use __non_propating_cache as per P2328.
1503 Remove now-redundant use of __maybe_present_t.
1504 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
1507 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
1509 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
1510 Only define for C++17 and later.
1511 * include/std/version (__cpp_lib_semaphore): Fix condition
1512 to match the one in <semaphore>.
1514 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
1516 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
1517 * config.h.in: Regenerate.
1518 * configure: Regenerate.
1519 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
1520 * include/bits/postypes.h: Remove include of <stdint.h> and
1521 definition/undefinition of the __STDC_LIMIT_MACROS and
1522 __STDC_CONSTANT_MACROS macros.
1523 (streamoff): Use __INT64_TYPE__ if defined.
1525 2021-04-30 Patrick Palka <ppalka@redhat.com>
1527 * include/std/ranges (split_view::_InnerIter::operator++):
1528 Depend on _Base instead of _Vp directly, as per LWG 3532.
1530 2021-04-30 Patrick Palka <ppalka@redhat.com>
1532 * include/bits/ranges_util.h (subrange::subrange): Avoid
1533 list-initialization in delegating constructor.
1534 * include/std/ranges (single_view): Replace implicit guide
1535 with explicit deduction guide that decays its argument.
1536 (_Single::operator()): Avoid CTAD when constructing the
1538 (_Iota::operator()): Avoid list-initialization.
1539 (__detail::__can_filter_view, _Filter::operator()): Likewise.
1540 (__detail::__can_transform_view, _Transform::operator()): Likewise.
1541 (take_view::begin): Likewise.
1542 (__detail::__can_take_view, _Take::operator()): Likewise.
1543 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
1544 (__detail::__can_drop_view, _Drop::operator()): Likewise.
1545 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
1546 (split_view::split_view): Use views::single when initializing
1548 (__detail::__can_split_view, _Split::operator()): Avoid
1549 list-initialization.
1550 (_Counted::operator()): Likewise.
1551 * testsuite/std/ranges/p2367.cc: New test.
1553 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
1556 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
1558 * include/bits/basic_string.tcc (basic_string::swap)
1559 (basic_string::assign): Likewise.
1560 * include/bits/deque.tcc (deque::operator=(const deque&)):
1562 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
1564 * include/bits/vector.tcc (vector::operator=(const vector&)):
1567 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
1569 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
1571 * include/std/ostream (operator<<(Ostream&&, const x&)):
1573 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
1574 Adjust dg-error pattern.
1575 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
1577 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
1578 is_extractable trait to replace std::__is_extractable. Make it
1579 work with rvalue streams as well as lvalues, to replace f() and
1580 g() helper functions.
1581 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
1583 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
1584 Define is_insertable trait to replace std::__is_insertable. Make
1585 it work with rvalue streams as well as lvalues, to replace f()
1586 and g() helper functions.
1587 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
1589 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
1590 errors from new constraints.
1591 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
1592 which are no longer expected to compile.
1593 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
1594 Verify LWG 1203 changes.
1596 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
1599 * include/experimental/socket (__basic_socket_impl::set_option)
1600 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
1601 Just set error code.
1602 * testsuite/experimental/net/socket/socket_base.cc: CHeck
1603 for <sys/socket.h> not <socket.h>.
1605 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
1610 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
1611 Use new effective-target keyword.
1612 * testsuite/experimental/net/internet/address/v4/cons.cc:
1614 * testsuite/experimental/net/internet/address/v4/creation.cc:
1616 * testsuite/experimental/net/internet/address/v4/members.cc:
1618 * testsuite/experimental/net/internet/address/v6/members.cc:
1620 * testsuite/experimental/net/internet/resolver/base.cc:
1622 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
1624 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
1626 * testsuite/experimental/net/internet/socket/opt.cc:
1628 * testsuite/experimental/net/internet/tcp.cc:
1630 * testsuite/experimental/net/internet/udp.cc:
1632 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
1633 New proc to check net_ts_ip et.
1635 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
1638 * testsuite/20_util/pair/requirements/structural.cc: New test.
1640 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
1642 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
1643 new definitions for constructors and assignment operators using
1644 concepts for constraints.
1645 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
1647 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
1648 expected error messages to also match C++20 errors.
1650 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
1653 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
1654 Combine and replace with ...
1655 (_PCC::_DeprConsPair): New SFINAE helper function.
1656 (pair): Merge preprocessor blocks so that all C++03 members
1657 are defined together at the end.
1658 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
1659 Replace _T1 and _T2 parameters with __null_ptr_constant and
1661 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
1662 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
1663 * testsuite/20_util/pair/cons/99957.cc: New test.
1665 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
1667 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
1668 * include/std/version (__cpp_lib_constexpr_string): Define.
1669 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1670 Check for __cpp_lib_constexpr_string.
1671 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
1673 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
1675 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
1677 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
1678 dealing with errors. Use '@' to prevent shell command being
1680 * doc/Makefile.in: Regenerate.
1682 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
1685 * include/bits/std_thread.h (thread::hardware_concurrency): Add
1686 missing noexcept to inline definition for non-gthreads targets.
1688 2021-04-28 Patrick Palka <ppalka@redhat.com>
1694 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
1695 the __value_comp lambda an explicit bool return type.
1696 (__is_permutation_fn::operator()): Give the __proj_scan local
1697 variable auto&& return type. Give the __comp_scan lambda an
1698 explicit bool return type.
1699 (__remove_fn::operator()): Give the __pred lambda an explicit
1701 (__partition_fn::operator()): Don't std::move __first twice
1702 when returning an empty subrange.
1703 (__min_fn::operator()): Don't std::move __comp.
1704 (__max_fn::operator()): Likewise.
1705 (__minmax_fn::operator()): Likewise.
1707 2021-04-27 Patrick Palka <ppalka@redhat.com>
1710 * include/std/ranges (join_view::_Iterator::operator++): Correct
1711 the return type of the lambda to avoid returning a copy of
1712 _M_parent->_M_inner.
1713 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
1715 2021-04-27 Jakub Jelinek <jakub@redhat.com>
1718 2021-04-22 Jakub Jelinek <jakub@redhat.com>
1721 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
1723 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
1726 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
1728 * include/experimental/internet (address_v6::bytes_type): Adjust
1730 (basic_endpoint): Define _M_is_v6() to put all checks for
1731 AF_INET6 in one place.
1732 (basic_endpoint::resize): Simplify.
1733 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
1734 (operator!=(const tcp&, const tcp&)): Likewise.
1735 (operator==(const udp&, const udp&)): Likewise.
1736 (operator!=(const udp&, const udp&)): Likewise.
1737 * testsuite/experimental/net/internet/tcp.cc: New test.
1738 * testsuite/experimental/net/internet/udp.cc: New test.
1740 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
1743 * include/experimental/internet (resolver_errc, resolver_category())
1744 (make_error_code, make_error_condition): Define unconditionally,
1745 only make enumerators and use of gai_strerror depend on the
1746 availability of <netdb.h>.
1747 (address_v4::to_string): Use correct constant for string length.
1748 (address_v4::to_string, address_v6::to_string): Define
1749 unconditionally, throw if unsupported.
1750 (make_address_v4, make_address_v6): Define unconditionally.
1751 Return an error if unsupported.
1752 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
1754 * testsuite/experimental/net/internet/socket/opt.cc: Check for
1755 <netinet/in.h> and <netinet/tcp.h> before using types from
1758 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
1761 * include/experimental/internet (resolver_base::flags):
1762 Define overloaded operators as hidden friends.
1763 * include/experimental/socket (socket_base::message_flags):
1766 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
1768 * include/experimental/internet (tcp::no_delay, v6_only)
1769 (unicast::hops, multicast::hops, multicast::enable_loopback):
1770 Change access of base class and static data members. Add
1771 using-declaration for __socket_crtp::operator=(_Tp).
1772 (multicast::__mcastopt): New type.
1773 (multicast::join_group, multicast::leave_group): Derive from
1774 __mcastopt for common implementation.
1775 * include/experimental/socket: Add comment.
1776 * testsuite/experimental/net/internet/socket/opt.cc: New test.
1777 * testsuite/experimental/net/socket/socket_base.cc: Check for
1778 protected constructor/destructor of socket_base. Check for
1779 explicit constructors of socket option classes.
1781 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
1783 * include/experimental/bits/net.h (__socket_base): Add
1784 bool template parameter to allow BooleanSocketOption and
1785 IntegerSocketOption to have different __socket_base<int>
1787 (__socket_base<bool>): Adjust base class.
1788 (__socket_base<int>): Add partial specialization.
1789 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
1790 * include/experimental/socket (socket_base::broadcast)
1791 (socket_base::debug, socket_base::do_not_route)
1792 (socket_base::keep_alive, socket_base::linger)
1793 (socket_base::out_of_band_inline)
1794 (socket_base::receive_buffer_size)
1795 (socket_base::receive_low_watermark)
1796 (socket_base::reuse_address, socket_base::send_buffer_size)
1797 (socket_base::send_low_watermark): Add using-declaration for
1798 __socket_crtp::operator=(_Tp).
1799 * testsuite/experimental/net/socket/socket_base.cc: Check
1800 properties of socket option types.
1802 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
1804 * include/experimental/internet (resolver_base::flags): Remove
1805 enumerators. Initialize constants directly with desired values.
1806 Make all operators constexpr and noexcept.
1807 * testsuite/experimental/net/internet/resolver/base.cc: Use
1808 __gnu_test::test_bitmask_values for bitmask type. Check
1809 construction and destruction is protected.
1811 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
1813 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
1815 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
1818 * include/experimental/internet (net::ip::make_error_code)
1819 (net::ip::make_error_condition, net::ip::make_network_v4)
1820 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
1822 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
1824 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
1825 (add_options_for_libatomic): Use atomic_link_flags.
1827 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
1830 * include/experimental/io_context (io_context): Define
1831 dummy_pollfd type so that most member functions still compile
1832 without <poll.h> and struct pollfd.
1834 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
1836 * include/experimental/io_context (io_context::async_wait): Add
1838 * include/experimental/socket (basic_socket::async_connect):
1839 Cast wait_type constant to int.
1840 (basic_datagram_socket::async_receive): Likewise.
1841 (basic_datagram_socket::async_receive_from): Likewise.
1842 (basic_datagram_socket::async_send): Likewise.
1843 (basic_datagram_socket::async_send_to): Likewise.
1844 (basic_stream_socket::async_receive): Likewise.
1845 (basic_stream_socket::async_send): Likewise. Use io_context
1846 parameter directly, instead of via an executor.
1847 (basic_socket_acceptor::async_accept): Likewise.
1849 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
1851 * include/experimental/socket (socket_base::shutdown_type):
1852 (socket_base::wait_type, socket_base::message_flags):
1853 Remove enumerators. Initialize constants directly with desired
1855 (socket_base::message_flags): Make all operators constexpr and
1857 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
1859 * testsuite/experimental/net/socket/socket_base.cc: New test.
1861 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
1863 * config/os/aix/atomicity.h: Delete.
1865 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
1867 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
1868 Handle system_clock as well as steady_clock.
1869 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
1870 * testsuite/30_threads/semaphore/try_acquire_until.cc:
1873 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
1875 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
1876 options for libatomic.
1878 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
1880 * config/os/gnu-linux/os_defines.h: Fix type in comment.
1882 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
1885 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
1886 is not an array type.
1887 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
1888 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
1890 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
1892 * include/bits/atomic_wait.h: Always notify waiters in the
1893 case of 'bare' address notification.
1895 2021-04-22 Jakub Jelinek <jakub@redhat.com>
1898 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
1900 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
1903 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
1906 * include/bits/semaphore_base.h: Remove #error.
1907 * include/std/semaphore: Do not define anything unless one of
1908 the implementations is available.
1910 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
1912 * include/bits/semaphore_base.h: Always reload __old in
1913 __atomic_semaphore::_S_do_try_acquire().
1914 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
1917 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
1918 Jonathan Wakely <jwakely@redhat.com>
1921 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
1922 * python/Makefile.in: Regenerate.
1924 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
1926 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
1927 member to __platform_wait.
1929 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
1931 * include/std/latch: Replace tab characters in license text.
1932 * include/std/semaphore: Likewise.
1934 2021-04-21 Jakub Jelinek <jakub@redhat.com>
1937 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
1938 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
1939 * configure: Regenerated.
1940 * config.h.in: Regenerated.
1942 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
1944 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
1945 test for targets not using futexes for semaphores.
1946 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
1947 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
1948 Disable for all targets.
1950 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
1952 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
1953 * include/Makefile.in: Regenerate.
1954 * include/bits/this_thread_sleep.h: New file.
1955 * include/bits/atomic_base.h: Adjust all calls
1956 to __atomic_wait/__atomic_notify for new call signatures.
1957 * include/bits/atomic_timed_wait.h: Extensive rewrite.
1958 * include/bits/atomic_wait.h: Likewise.
1959 * include/bits/semaphore_base.h: Adjust all calls
1960 to __atomic_wait/__atomic_notify for new call signatures.
1961 * include/std/atomic: Likewise.
1962 * include/std/barrier: Likewise.
1963 * include/std/latch: Likewise.
1964 * include/std/semaphore: Likewise.
1965 * include/std/thread (this_thread::sleep_for)
1966 (this_thread::sleep_until): Move to new header.
1967 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
1969 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
1970 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
1971 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
1972 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
1973 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
1974 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
1976 2021-04-20 Patrick Palka <ppalka@redhat.com>
1979 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
1981 (move_iterator): Derive from the above in C++20 in order to
1982 conditionally define iterator_category as per P2259.
1983 (move_iterator::__base_cat): No longer used, so remove.
1984 (move_iterator::iterator_category): Remove in C++20.
1985 (__detail::__common_iter_use_postfix_proxy): Define.
1986 (common_iterator::_Proxy): Rename to ...
1987 (common_iterator:__arrow_proxy): ... this.
1988 (common_iterator::__postfix_proxy): Define as per P2259.
1989 (common_iterator::operator->): Adjust.
1990 (common_iterator::operator++): Adjust as per P2259.
1991 (iterator_traits<common_iterator>::_S_iter_cat): Define.
1992 (iterator_traits<common_iterator>::iterator_category): Change as
1994 (__detail::__counted_iter_value_type): Define.
1995 (__detail::__counted_iter_concept): Define.
1996 (__detail::__counted_iter_cat): Define.
1997 (counted_iterator): Derive from the above three classes in order
1998 to conditionally define value_type, iterator_concept and
1999 iterator category respectively as per P2259.
2000 (counted_iterator::operator->): Define as per P2259.
2001 (incrementable_traits<counted_iterator>): Remove as per P2259.
2002 (iterator_traits<counted_iterator>): Adjust as per P2259.
2003 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
2004 (iota_view::_Iterator): Derive from the above in order to
2005 conditionally define iterator_category as per P2259.
2006 (iota_view::_S_iter_cat): Rename to ...
2007 (iota_view::_S_iter_concept): ... this.
2008 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
2009 (iota_view::iterator_category): Remove.
2010 (__detail::__filter_view_iter_cat): Define.
2011 (filter_view::_Iterator): Derive from the above in order to
2012 conditionally define iterator_category as per P2259.
2013 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
2014 (filter_view::_Iterator::iterator_category): Remove.
2015 (transform_view::_Base): Define.
2016 (transform_view::__iter_cat): Define.
2017 (transform_view::_Iterator): Derive from the above in order to
2018 conditionally define iterator_category as per P2259.
2019 (transform_view::_Iterator::_Base): Just alias
2020 transform_view::_Base.
2021 (transform_view::_Iterator::_S_iter_cat): Move to struct
2022 transform_view::__iter_cat.
2023 (transform_view::_Iterator::iterator_category): Remove.
2024 (transform_view::_Sentinel::_Base): Just alias
2025 transform_view::_Base.
2026 (join_view::_Base): Define.
2027 (join_view::_Outer_iter): Define.
2028 (join_view::_Inner_iter): Define.
2029 (join_view::_S_ref_is_glvalue): Define.
2030 (join_view::__iter_cat): Define.
2031 (join_view::_Iterator): Derive from it in order to conditionally
2032 define iterator_category as per P2259.
2033 (join_view::_Iterator::_Base): Just alias join_view::_Base.
2034 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
2035 join_view::_S_ref_is_glvalue.
2036 (join_view::_Iterator::_S_iter_cat): Move to struct
2037 transform_view::__iter_cat.
2038 (join_view::_Iterator::_Outer_iter): Just alias
2039 join_view::_Outer_iter.
2040 (join_view::_Iterator::_Inner_iter): Just alias
2041 join_view::_Inner_iter.
2042 (join_view::_Iterator::iterator_category): Remove.
2043 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
2044 (__detail::__split_view_outer_iter_cat): Define.
2045 (__detail::__split_view_inner_iter_cat): Define.
2046 (split_view::_Base): Define.
2047 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
2048 in order to conditionally define iterator_category as per P2259.
2049 (split_view::_Outer_iter::iterator_category): Remove.
2050 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
2051 in order to conditionally define iterator_category as per P2259.
2052 (split_view::_Inner_iter::_S_iter_cat): Move to
2053 __split_view_inner_iter_cat.
2054 (split_view::_Inner_iter::iterator_category): Remove.
2055 (elements_view::_Base): Define.
2056 (elements_view::__iter_cat): Define.
2057 (elements_view::_Iterator): Derive from the above in order to
2058 conditionall define iterator_category as per P2259.
2059 (elements_view::_Iterator::_Base): Just alias
2060 elements_view::_Base.
2061 (elements_view::_Iterator::_S_iter_concept)
2062 (elements_view::_Iterator::iterator_concept): Define as per
2064 (elements_view::_Iterator::iterator_category): Remove.
2065 (elements_view::_Sentinel::_Base): Just alias
2066 elements_view::_Base.
2067 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
2068 Adjust constraints on iterator_traits<counted_iterator>.
2069 * testsuite/std/ranges/p2259.cc: New test.
2071 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
2074 * include/std/charconv (__cpp_lib_to_chars): Define
2076 * include/std/version (__cpp_lib_to_chars): Likewise..
2077 * testsuite/20_util/from_chars/4.cc: Only check feature test
2078 macro, not _GLIBCXX_HAVE_USELOCALE.
2079 * testsuite/20_util/from_chars/5.cc: Likewise.
2080 * testsuite/20_util/from_chars/6.cc: Likewise.
2081 * testsuite/20_util/to_chars/long_double.cc: Likewise.
2083 2021-04-20 Jakub Jelinek <jakub@redhat.com>
2085 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
2086 versions with _IEEE128_ substring are found, set ieee_version_found
2087 to true. Ignore missing symbols with _IEEE128_ in version name if
2088 !ieee_version_found. Use i->first as version_name instead of
2089 i->second.version_name if the latter is empty.
2090 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2092 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
2094 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
2097 2021-04-17 Jakub Jelinek <jakub@redhat.com>
2099 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
2100 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
2102 2021-04-17 Jakub Jelinek <jakub@redhat.com>
2104 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2105 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2106 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2107 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2108 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2109 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2111 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
2113 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
2114 add libatomic options for 32-bit sparc*-*-linux-gnu.
2116 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
2119 * libsupc++/Makefile.am: Add atomicity.cc here.
2120 * src/c++98/Makefile.am: Remove it from here.
2121 * libsupc++/Makefile.in: Regenerate.
2122 * src/c++98/Makefile.in: Regenerate.
2123 * testsuite/18_support/exception_ptr/96657.cc: New test.
2125 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
2128 * include/std/bit: Only include <ext/numeric_traits.h> for
2129 hosted build, use <limits> otherwise.
2131 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
2133 * doc/xml/manual/backwards_compatibility.xml: Remove porting
2134 notes for libg++ and libstdc++-v2, and bibliography.
2135 * doc/html/*: Regenerated.
2137 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
2140 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
2141 Remove helper concept.
2142 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
2143 deduction guides, as per LWG 3404.
2144 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
2145 template argument deduction fails.
2147 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
2149 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
2150 Adjust expected error for C++20 mode.
2151 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
2154 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
2157 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
2158 standard headers and XFAIL for effective-target c++20.
2160 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
2163 * include/debug/helper_functions.h (__can_advance(_InputIterator,
2164 const std::pair<_Diff, _Distance_precision>&, int)): New.
2165 (__can_advance(const _Safe_iterator<>&,
2166 const std::pair<_Diff, _Distance_precision>&, int)): New.
2167 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
2169 (__glibcxx_check_can_increment_range): Adapt to use latter.
2170 (__glibcxx_check_can_decrement_range): Likewise.
2171 * include/debug/safe_iterator.h
2172 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
2174 (__can_advance(const _Safe_iterator<>&,
2175 const std::pair<_Diff, _Distance_precision>&, int)): New.
2176 * include/debug/safe_iterator.tcc
2177 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
2179 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
2180 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
2182 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
2183 (__copy_move_backward_a): Likewise.
2184 (__equal_aux): Likewise.
2185 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
2186 const std::pair<_Diff, _Distance_precision>&, int)): New.
2187 (__can_advance(const std::move_iterator<>&,
2188 const std::pair<_Diff, _Distance_precision>&, int)): New.
2189 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
2191 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
2194 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
2195 to be a valid constexpr function in C++11.
2196 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
2198 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
2200 * include/bits/fs_fwd.h: Fix doxygen group command.
2201 * include/bits/streambuf_iterator.h: Likewise.
2202 * include/bits/uses_allocator_args.h: Likewise.
2203 * include/std/memory: Likewise.
2204 * include/tr1/complex: Likewise.
2206 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
2208 * include/bits/basic_string.h: Tweak doxygen comment.
2210 2021-04-08 Patrick Palka <ppalka@redhat.com>
2212 * include/std/ranges (__detail::find): Define.
2213 (split_view::_OuterIter::operator++): Apply proposed resolution
2215 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
2217 2021-04-08 Patrick Palka <ppalka@redhat.com>
2219 * include/std/ranges (__detail::find_if): Simplify.
2220 (__detail::find_if_not): Likewise.
2221 (__detail::min): Remove.
2222 (__detail::mismatch): Simplify.
2223 (take_view::size): Use std::min instead of __detail::min.
2225 2021-04-08 Patrick Palka <ppalka@redhat.com>
2227 * include/std/ranges (__detail::__returnable_element): New
2229 (elements_view): Use this concept in its constraints. Add
2230 missing private access specifier.
2231 (elements_view::_S_get_element): Define as per LWG 3502.
2232 (elements_view::operator*, elements_view::operator[]): Use
2234 (elements_view::operator++): Remove unnecessary constraint
2236 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
2238 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
2240 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
2241 out-of-memory error in log file.
2242 * doc/Makefile.in: Regenerate.
2244 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
2246 * configure: Regenerate.
2248 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
2250 * include/bits/random.h: Fix doxygen group commands.
2251 * include/bits/regex_constants.h: Likewise.
2252 * include/tr1/random.h: Likewise.
2254 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
2256 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
2257 New function to determine noexcept-specifier for move
2259 (_Hashtable): Use _S_nothrow_move() on move constructors.
2260 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
2261 Correct static assertion message.
2262 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
2264 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
2266 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
2269 2021-04-08 Patrick Palka <ppalka@redhat.com>
2272 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
2273 on targets without a large long double. XFAIL the execution on
2274 targets with a non-conforming printf.
2276 2021-04-08 Patrick Palka <ppalka@redhat.com>
2279 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
2280 (__adaptor::__adaptor_invocable): New concept.
2281 (__adaptor::__adaptor_partial_app_viable): New concept.
2282 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
2283 non-template base class.
2284 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
2286 (__adaptor::_Partial): New class template that represents
2287 partial application of a range adaptor non-closure.
2288 (__adaptor::__pipe_invocable): New concept.
2289 (__adaptor::_Pipe): New class template.
2290 (__detail::__can_ref_view): New concept.
2291 (__detail::__can_subrange): New concept.
2292 (all): Replace the lambda here with ...
2293 (_All): ... this functor. Add appropriate constraints.
2294 (__detail::__can_filter_view): New concept.
2295 (filter, _Filter): As in all/_All.
2296 (__detail::__can_transform): New concept.
2297 (transform, _Transform): As in all/_All.
2298 (__detail::__can_take_view): New concept.
2299 (take, _Take): As in all/_All.
2300 (__detail::__can_take_while_view): New concept.
2301 (take_while, _TakeWhile): As in all/_All.
2302 (__detail::__can_drop_view): New concept.
2303 (drop, _Drop): As in all/_All.
2304 (__detail::__can_drop_while_view): New concept.
2305 (drop_while, _DropWhile): As in all/_All.
2306 (__detail::__can_join_view): New concept.
2307 (join, _Join): As in all/_All.
2308 (__detail::__can_split_view): New concept.
2309 (split, _Split): As in all/_All. Rename template parameter
2311 (__detail::__already_common): New concept.
2312 (__detail::__can_common_view): New concept.
2313 (common, _Common): As in all/_All.
2314 (__detail::__can_reverse_view): New concept.
2315 (reverse, _Reverse): As in all/_All.
2316 (__detail::__can_elements_view): New concept.
2317 (elements, _Elements): As in all/_All.
2318 (keys, values): Adjust.
2319 * testsuite/std/ranges/adaptors/99433.cc: New test.
2320 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
2321 adding empty range adaptor closure objects to a pipeline doesn't
2322 increase the size of the pipeline.
2324 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
2325 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
2326 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
2327 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
2328 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
2329 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
2330 * testsuite/std/ranges/adaptors/p2281.cc: New test.
2331 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
2332 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
2335 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
2336 expected error message.
2337 (test02): Likewise. Extend test.
2338 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
2339 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
2340 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
2343 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
2345 * include/std/string_view: Adjust Doxygen @file comment.
2347 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
2349 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
2350 specialization to not match incomplete enum types. Use a
2351 requires-expression instead of instantiating is_convertible.
2352 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
2353 * testsuite/20_util/is_scoped_enum/value.cc: Check with
2354 incomplete types and opaque-enum-declarations.
2356 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
2359 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
2360 non-const member on _M_pathname, to avoid copy-on-write.
2361 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
2362 Check construction from strings that might be shared.
2364 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
2366 * include/bits/move.h (forward, move, move_if_noexcept)
2367 (addressof): Add _GLIBCXX_NODISCARD.
2368 * include/bits/ranges_cmp.h (identity::operator()): Add
2369 nodiscard attribute.
2370 * include/c_global/cstddef (to_integer): Likewise.
2371 * include/std/bit (bit_cast): Likewise.
2372 * include/std/utility (as_const, to_underlying): Likewise.
2374 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
2376 * include/bits/move.h (forward): Change static_assert message
2377 to be unambiguous about what must be true.
2378 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
2379 * testsuite/20_util/forward/f_neg.cc: Likewise.
2381 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
2383 * include/bits/alloc_traits.h: Use markdown for code font.
2384 * include/bits/basic_string.h: Fix @param names.
2385 * include/bits/max_size_type.h: Remove period after @file.
2386 * include/bits/regex.h: Fix duplicate @retval names, and rename.
2387 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
2388 group open to match existing group close.
2389 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
2392 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
2394 * include/bits/atomic_base.h: Fix doxygen group close.
2395 * include/bits/basic_ios.h: Likewise.
2396 * include/bits/forward_list.h: Likewise.
2397 * include/bits/fs_dir.h: Likewise.
2398 * include/bits/fs_ops.h: Likewise.
2399 * include/bits/fs_path.h: Likewise.
2400 * include/bits/functional_hash.h: Likewise.
2401 * include/bits/gslice.h: Likewise.
2402 * include/bits/gslice_array.h: Likewise.
2403 * include/bits/hashtable_policy.h: Likewise.
2404 * include/bits/indirect_array.h: Likewise.
2405 * include/bits/locale_classes.h: Likewise.
2406 * include/bits/locale_facets.h: Likewise.
2407 * include/bits/locale_facets_nonio.h: Likewise.
2408 * include/bits/mask_array.h: Likewise.
2409 * include/bits/refwrap.h: Likewise.
2410 * include/bits/regex.h: Likewise.
2411 * include/bits/regex_automaton.h: Likewise.
2412 * include/bits/regex_compiler.h: Likewise.
2413 * include/bits/regex_constants.h: Likewise.
2414 * include/bits/regex_error.h: Likewise.
2415 * include/bits/regex_executor.h: Likewise.
2416 * include/bits/regex_scanner.h: Likewise.
2417 * include/bits/shared_ptr.h: Likewise.
2418 * include/bits/shared_ptr_atomic.h: Likewise.
2419 * include/bits/shared_ptr_base.h: Likewise.
2420 * include/bits/slice_array.h: Likewise.
2421 * include/bits/specfun.h: Likewise.
2422 * include/bits/std_function.h: Likewise.
2423 * include/bits/std_mutex.h: Likewise.
2424 * include/bits/stl_deque.h: Likewise.
2425 * include/bits/stl_iterator.h: Likewise.
2426 * include/bits/stl_iterator_base_types.h: Likewise.
2427 * include/bits/stl_map.h: Likewise.
2428 * include/bits/stl_multimap.h: Likewise.
2429 * include/bits/stl_multiset.h: Likewise.
2430 * include/bits/stl_numeric.h: Likewise.
2431 * include/bits/stl_pair.h: Likewise.
2432 * include/bits/stl_set.h: Likewise.
2433 * include/bits/stl_uninitialized.h: Likewise.
2434 * include/bits/stream_iterator.h: Likewise.
2435 * include/bits/streambuf_iterator.h: Likewise.
2436 * include/bits/unique_ptr.h: Likewise.
2437 * include/bits/unordered_map.h: Likewise.
2438 * include/bits/unordered_set.h: Likewise.
2439 * include/decimal/decimal: Likewise.
2440 * include/experimental/any: Likewise.
2441 * include/experimental/array: Likewise.
2442 * include/experimental/bits/fs_dir.h: Likewise.
2443 * include/experimental/bits/fs_fwd.h: Likewise.
2444 * include/experimental/bits/fs_ops.h: Likewise.
2445 * include/experimental/bits/fs_path.h: Likewise.
2446 * include/experimental/buffer: Likewise.
2447 * include/experimental/internet: Likewise.
2448 * include/experimental/optional: Likewise.
2449 * include/experimental/propagate_const: Likewise.
2450 * include/experimental/socket: Likewise.
2451 * include/ext/pb_ds/assoc_container.hpp: Likewise.
2452 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
2454 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
2455 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
2456 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
2457 * include/ext/pb_ds/exception.hpp: Likewise.
2458 * include/ext/pb_ds/priority_queue.hpp: Likewise.
2459 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
2460 * include/ext/random: Likewise.
2461 * include/std/any: Likewise.
2462 * include/std/atomic: Likewise.
2463 * include/std/bitset: Likewise.
2464 * include/std/chrono: Likewise.
2465 * include/std/complex: Likewise.
2466 * include/std/condition_variable: Likewise.
2467 * include/std/fstream: Likewise.
2468 * include/std/future: Likewise.
2469 * include/std/iostream: Likewise.
2470 * include/std/istream: Likewise.
2471 * include/std/mutex: Likewise.
2472 * include/std/numeric: Likewise.
2473 * include/std/ostream: Likewise.
2474 * include/std/ratio: Likewise.
2475 * include/std/shared_mutex: Likewise.
2476 * include/std/stdexcept: Likewise.
2477 * include/std/streambuf: Likewise.
2478 * include/std/system_error: Likewise.
2479 * include/std/thread: Likewise.
2480 * include/std/valarray: Likewise.
2481 * include/std/variant: Likewise.
2482 * include/tr1/cmath: Likewise.
2483 * include/tr1/regex: Likewise.
2484 * include/tr2/dynamic_bitset: Likewise.
2485 * libsupc++/atomic_lockfree_defines.h: Likewise.
2486 * libsupc++/exception: Likewise.
2487 * libsupc++/exception.h: Likewise.
2488 * libsupc++/exception_ptr.h: Likewise.
2489 * libsupc++/nested_exception.h: Likewise.
2491 2021-03-31 Alexandre Oliva <oliva@adacore.com>
2493 * testsuite/30_threads/future/members/poll.cc: Use faster
2494 after-ready call in the calibration loop.
2496 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
2498 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
2499 * doc/html/manual/status.html: Regenerate.
2501 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
2503 * include/debug/forward_list
2504 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
2505 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
2506 call to safe container allocator aware move constructor.
2507 * include/debug/vector (vector(vector&&, const allocator_type&)):
2508 Fix noexcept qualification.
2509 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
2510 Add allocator-extended move constructor noexceot qualification check.
2511 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
2513 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
2515 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
2517 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
2518 New helper functions and callback.
2519 (random_device::_M_init): Add 'prng' and 'all' enumerators.
2520 Replace switch with fallthrough with a series of 'if' statements.
2521 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
2523 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
2525 (random_device::_M_getval): Check for callback unconditionally
2526 and always pass _M_file pointer.
2527 * testsuite/26_numerics/random/random_device/85494.cc: Remove
2528 effective-target check. Use new random_device_available helper.
2529 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
2530 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
2531 Remove effective-target check.
2532 * testsuite/26_numerics/random/random_device/cons/default.cc:
2534 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
2535 new random_device_available helper. Test "prng" token.
2536 * testsuite/util/testsuite_random.h (random_device_available):
2537 New helper function.
2539 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
2541 * include/debug/string
2542 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
2543 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
2544 (basic_string<>::erase): Adapt to take __const_iterator.
2545 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
2546 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
2547 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
2548 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
2549 (__gnu_debug::u16string, __gnu_debug::u32string): New.
2550 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
2551 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
2552 * testsuite/util/exception/safety.h
2553 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
2554 (insert_base<__gnu_debug::basic_string<>>): Likewise.
2555 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
2556 New partial specialization.
2557 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
2558 * testsuite/21_strings/basic_string/requirements/citerators.cc:
2559 Add test on __gnu_debug::string.
2560 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
2561 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
2562 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
2564 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
2566 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
2568 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
2570 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
2572 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
2574 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
2576 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
2578 2021-03-25 Jakub Jelinek <jakub@redhat.com>
2581 * testsuite/18_support/source_location/consteval.cc (main): Adjust
2582 expected column numbers.
2583 * testsuite/18_support/source_location/1.cc (main): Likewise.
2585 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
2587 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
2589 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
2591 * testsuite/util/exception/safety.h (setup_base::generate):
2592 Support seeding random engine.
2593 (erase_point, erase_range): Adjust range of random numbers to
2594 ensure dereferenceable iterators are used where required.
2595 (generation_prohibited::run): Do not try to erase from empty
2597 * testsuite/util/testsuite_containergen.h (test_containers):
2598 Support seeding random engine.
2600 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
2602 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
2603 line with a check that uses the const being/end overloads.
2605 2021-03-23 Moritz Sichert <sichert@in.tum.de>
2607 * include/std/ranges (reverse_view::begin, reverse_view::end):
2608 Qualify make_reverse_iterator calls to avoid ADL.
2609 * testsuite/std/ranges/adaptors/reverse.cc: Test that
2610 views::reverse works when make_reverse_iterator is defined
2611 in an associated namespace.
2613 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
2615 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
2616 Do not define when compiling with Clang.
2618 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
2620 * include/std/string_view (basic_string_view(Range&&)): Define new
2621 constructor and deduction guide.
2622 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
2623 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
2625 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
2627 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
2628 Add missing 'noexcept' as per LWG 2280.
2629 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
2630 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
2631 * testsuite/24_iterators/range_access/range_access.cc: Check for
2632 expected noexcept specifiers. Check result types of generic
2633 std::begin and std::end overloads.
2634 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
2635 Check for expected noexcept specifiers.
2636 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
2639 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
2641 * include/std/type_traits (is_scoped_enum): Define.
2642 * include/std/version (__cpp_lib_is_scoped_enum): Define.
2643 * testsuite/20_util/is_scoped_enum/value.cc: New test.
2644 * testsuite/20_util/is_scoped_enum/version.cc: New test.
2646 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
2649 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
2650 std::once_flag symbols.
2651 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
2652 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
2653 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
2655 * config/abi/pre/gnu.ver: Likewise.
2656 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
2657 (struct __once_flag_compat): Remove.
2658 (_ZNSt9once_flag11_M_activateEv): Remove.
2659 (_ZNSt9once_flag9_M_finishEb): Remove.
2661 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
2664 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
2665 Revert to pthread_once_t implementation.
2666 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
2667 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
2668 (struct __once_flag_compat): New type matching the reverted
2669 implementation of once_flag using futexes.
2670 (once_flag::_M_activate): Remove, replace with ...
2671 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
2672 (once_flag::_M_finish): Remove, replace with ...
2673 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
2674 * testsuite/30_threads/call_once/66146.cc: Removed.
2676 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
2678 * testsuite/17_intro/names.cc: Exclude j from the list
2679 of test symbols for Darwin.
2681 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
2683 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
2684 to_chars and from_chars for long double.
2686 2021-03-15 Patrick Palka <ppalka@redhat.com>
2688 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
2690 (__max_size_type::operator++): Define.
2691 (__max_size_type::operator--): Likewise.
2692 (__max_size_type::operator<=>): Conditionally define (in place
2693 of the other comparison operators).
2694 (__max_diff_type::operator _Tp): Fix formatting.
2695 (__max_diff_type::operator++): Define.
2696 (__max_diff_type::operator--): Likewise.
2697 (__max_diff_type::operator<=>): Conditionally define (in place
2698 of the other comparison operators).
2699 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
2700 these operator overloads.
2702 2021-03-15 Caroline Tice <cmtice@google.com>
2705 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
2706 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
2707 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
2709 * src/Makefile.in: Regenerate.
2711 2021-03-11 Patrick Palka <ppalka@redhat.com>
2713 * src/c++17/floating_to_chars.cc: Simplify the file as if
2714 __SIZEOF_INT128__ is always defined.
2715 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
2716 a base-10 to_chars overload for the uint128_t class type.
2717 * src/c++17/uint128_t.h: New file.
2718 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
2719 execution FAIL on targets that have a large long double type
2722 2021-03-11 Patrick Palka <ppalka@redhat.com>
2724 * src/c++17/ryu/LOCAL_PATCHES: Update.
2725 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
2726 * src/c++17/ryu/generic_128.h: Likewise.
2727 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
2728 Use uint128_t instead of __uint128_t.
2729 (generic_binary_to_decimal): Likewise.
2731 2021-03-11 Patrick Palka <ppalka@redhat.com>
2733 * src/c++17/ryu/LOCAL_PATCHES: New file.
2735 2021-03-11 Patrick Palka <ppalka@redhat.com>
2737 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
2738 defined alias of unsigned __int128.
2739 (floating_type_traits_binary128::mantissa_t): Use uint128_t
2740 instead of unsigned __int128.
2741 (floating_type_traits<long double>::mantissa_t)
2742 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
2743 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
2744 and uint32_t explicit. Simplify the extraction of mantissa,
2745 exponent and sign bit.
2747 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
2749 * include/std/barrier (barrier::arrival_token): New move-only
2750 class that encapsulates the underlying token value.
2752 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
2754 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
2755 instead of unqualified() method.
2757 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
2760 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
2761 Use acq_rel memory ordering.
2763 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
2766 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
2767 helper function to check for permission denied errors.
2768 * src/filesystem/dir.cc (recursive_directory_iterator):
2770 * src/filesystem/dir-common.h (is_permission_denied_error): New
2773 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
2776 * include/bits/random.h (normal_distribution): Use
2777 default-initializer for _M_saved and _M_saved_available.
2779 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
2781 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
2782 link with libatomic.
2783 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
2784 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
2785 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
2786 * testsuite/30_threads/barrier/arrive.cc: Likewise.
2787 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
2788 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
2789 * testsuite/30_threads/barrier/completion.cc: Likewise.
2790 * testsuite/30_threads/latch/3.cc: Likewise.
2791 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
2792 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
2793 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
2795 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
2798 * include/bits/align.h: Include debug/assertions.h.
2799 * include/bits/codecvt.h: Include bits/c++config.h.
2800 * include/bits/enable_special_members.h: Likewise.
2801 * include/bits/erase_if.h: Likewise.
2802 * include/bits/functional_hash.h: Include <type_traits>.
2803 * include/bits/invoke.h: Include bits/move.h.
2804 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
2805 * include/bits/parse_numbers.h: Include <type_traits>.
2806 * include/bits/predefined_ops.h: Include bits/c++config.h.
2807 * include/bits/range_access.h: Include bits/stl_iterator.h.
2808 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
2809 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
2810 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
2811 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
2812 * include/bits/unique_lock.h: Include bits/std_mutex.h.
2813 * include/debug/assertions.h: Include bits/c++config.h.
2815 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
2817 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
2818 (ranges::equal_to, ranges::not_equal_to): Do not constrain
2819 with __eq_builtin_ptr_cmp.
2820 (ranges::less, ranges::greater, ranges::less_equal)
2821 (ranges::greater_equal): Do not constrain with
2822 __less_builtin_ptr_cmp.
2823 * libsupc++/compare (compare_three_way): Do not constrain with
2824 __3way_builtin_ptr_cmp.
2825 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
2826 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
2827 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
2829 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
2831 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
2832 C++20 calendar types.
2834 2021-03-06 Jakub Jelinek <jakub@redhat.com>
2837 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
2838 two _Nd which the compiler can pattern match the rotates.
2840 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
2843 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
2844 Make storage larger than required. Verify no write to the last
2846 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
2849 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2851 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
2852 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
2854 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
2855 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
2858 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2860 * include/experimental/bits/simd.h: Replace reserved _X, _B by
2862 * include/experimental/bits/simd_builtin.h: Likewise.
2863 * include/experimental/bits/simd_x86.h: Likewise.
2865 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
2868 * include/std/chrono (year_month_day::_M_days_since_epoch()):
2869 Convert chrono::month and chrono::day to unsigned before
2870 converting to uint32_t.
2872 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
2874 * include/std/chrono (year_month_day::_S_from_days): Perform
2875 all calculations with type uint32_t.
2877 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
2879 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
2880 * doc/html/manual/abi.html: Regenerate.
2882 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
2885 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
2886 FILE instead of FILE.
2888 2021-02-25 Andreas Schwab <schwab@suse.de>
2890 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2891 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
2892 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2893 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2895 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
2898 * include/std/chrono (year_month_day::_S_from_days): Cast long
2901 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
2903 * include/std/utility (to_underlying): Define.
2904 * include/std/version (__cpp_lib_to_underlying): Define.
2905 * testsuite/20_util/to_underlying/1.cc: New test.
2906 * testsuite/20_util/to_underlying/version.cc: New test.
2908 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
2911 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
2912 before value to be printed.
2914 2021-02-24 Patrick Palka <ppalka@redhat.com>
2916 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
2917 Relax the condition that guards the printf code path to accept
2918 F128_type as well as long double.
2920 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
2922 * include/std/chrono (year_month_day_last:day): New
2925 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
2927 * include/std/chrono (year::is_leap): New implementation.
2928 * testsuite/std/time/year/2.cc: New test.
2930 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
2932 * include/std/chrono (year_month_day::_M_days_since_epoch):
2934 * testsuite/std/time/year_month_day/4.cc: New test.
2936 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
2938 * include/std/chrono (year_month_day::_S_from_days): New
2940 * testsuite/std/time/year_month_day/3.cc: New test.
2942 2021-02-24 Patrick Palka <ppalka@redhat.com>
2945 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
2946 (test01): Simplify verifying the nearby values by using a
2947 2-iteration loop and a dedicated output buffer to check that the
2948 nearby values are different. Factor out the printf-based
2949 verification into a local function, and check that the leading
2950 hex digits agree before comparing to the output of printf. Also
2951 verify the output by round-tripping it through from_chars.
2953 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
2956 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
2957 symbols for long double arguments mangled as 'g'.
2958 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
2959 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
2960 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
2961 Use -mabi=ibmlongdouble for floating_to_chars.cc.
2962 * src/c++17/Makefile.in: Regenerate.
2963 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
2964 New type defining type traits of IEEE binary128 format.
2965 (floating_type_traits<__float128>): Define specialization.
2966 (floating_type_traits<long double>): Define in terms of
2967 floating_type_traits_binary128 when appropriate.
2968 (floating_to_shortest_scientific): Handle __float128.
2969 (sprintf_ld): New function template for printing a long double
2970 or __ieee128 value using sprintf.
2971 (__floating_to_chars_shortest, __floating_to_chars_precision):
2973 (to_chars): Define overloads for __float128.
2975 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
2977 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
2979 2021-02-23 Martin Sebor <msebor@redhat.com>
2982 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
2983 first argument is null.
2985 2021-02-23 Jakub Jelinek <jakub@redhat.com>
2988 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
2991 2021-02-23 Jakub Jelinek <jakub@redhat.com>
2994 * include/bits/char_traits.h (char_traits<char>::compare): For
2995 constexpr evaluation don't call
2996 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
2999 2021-02-23 Jakub Jelinek <jakub@redhat.com>
3002 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
3004 2021-02-23 Patrick Palka <ppalka@redhat.com>
3007 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
3008 the high- and low-order parts from an IBM long double value
3009 in an endian-agnostic way.
3011 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
3013 * include/bits/atomic_wait.h (__thread_relax()): Call
3014 __thread_yield() not __gthread_yield().
3016 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
3018 * include/bits/atomic_wait.h (__thread_yield()): Check
3019 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
3020 (__thread_relax()): Use __thread_yield() instead of repeating
3021 the preprocessor checks for __gthread_yield.
3023 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
3025 * include/std/mutex (once_flag::_M_activate()): Add explicit
3026 return statement for passive case.
3027 (once_flag::_M_finish(bool)): Use reserved name for parameter.
3029 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
3032 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
3034 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3037 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
3039 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3041 * doc/xml/manual/status_cxx2014.xml: Document implementation
3042 specific properties of std::experimental::filesystem::rename.
3043 * doc/xml/manual/status_cxx2017.xml: Document implementation
3044 specific properties of std::filesystem::rename.
3045 * doc/html/*: Regenerate.
3046 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
3047 for directories on Windows.
3048 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
3049 MoveFileExW on Windows.
3050 * testsuite/27_io/filesystem/operations/rename.cc: New test.
3051 * testsuite/experimental/filesystem/operations/rename.cc: New test.
3053 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3055 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
3056 random number to the path.
3058 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3060 * include/experimental/internet (address_v6::to_string): Include
3062 * testsuite/experimental/net/internet/address/v6/members.cc:
3063 Test to_string() results.
3065 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3067 * include/experimental/internet (address_v6::any): Avoid using
3068 memcpy in constexpr function.
3069 (address_v6::loopback): Likewise.
3070 (make_address_v6): Fix missing return statements on error paths.
3071 * include/experimental/io_context: Avoid -Wdangling-else
3073 * testsuite/experimental/net/internet/address/v4/members.cc:
3074 Remove unused variables.
3075 * testsuite/experimental/net/internet/address/v6/members.cc:
3078 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3080 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
3081 Add unused attribute to parameter.
3082 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
3085 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3087 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
3088 if -fno-rtti is used.
3089 * testsuite/30_threads/async/forced_unwind.cc: Expect test
3090 to abort if -fno-rtti is used.
3092 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3094 * testsuite/util/testsuite_allocator.h (memory_resource):
3095 Remove requirement for RTTI and exceptions to be enabled.
3097 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3099 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
3100 static_cast when RTTI is disabled.
3101 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
3103 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
3105 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
3107 * testsuite/27_io/basic_stringstream/str/char/2.cc:
3109 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
3112 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3114 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
3115 as unused and only use dynamic_cast when RTTI is enabled.
3117 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
3120 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
3121 Change int parameter to error_code, to match std::ios_failure.
3122 (__throw_ios_failure(const char*, int)): Construct error_code
3125 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
3127 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
3129 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
3130 macro instead of _GLIBCXX_EH_PTR_COMPAT.
3131 (operator==): Likewise.
3133 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
3136 * doc/xml/manual/status_cxx2011.xml: Document when support
3138 * doc/xml/manual/status_cxx2014.xml: Likewise.
3139 * doc/xml/manual/status_cxx2017.xml: Likewise.
3140 * doc/html/manual/status.html: Regenerate.
3142 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
3145 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
3147 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
3149 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
3150 (fs::remove): Use std::system_category() for error codes from
3152 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
3155 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
3157 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
3158 in __MINGW32__ macro name.
3159 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
3160 * testsuite/27_io/filesystem/path/generation/proximate.cc:
3162 * testsuite/27_io/filesystem/path/generation/relative.cc:
3164 * testsuite/util/testsuite_fs.h: Likewise.
3166 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
3168 * include/bits/stl_tree.h
3169 (__has_is_transparent, __has_is_transparent_t): Move...
3170 * include/bits/stl_function.h: ...here.
3171 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
3172 (_Hashtable_base<>::_M_equals_tr): New.
3173 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
3174 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
3175 heterogeneous lookup.
3176 (_Hashtable<>::_M_find_before_node_tr): New.
3177 (_Hashtable<>::_M_find_node_tr): New.
3178 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
3179 unordered_map::contains<>, unordered_map::equal_range<>): New member function
3180 templates to perform heterogeneous lookup.
3181 (unordered_multimap::find<>, unordered_multimap::count<>,
3182 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
3183 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
3184 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
3185 (unordered_multiset::find<>, unordered_multiset::count<>,
3186 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
3187 * include/debug/unordered_map
3188 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
3189 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
3190 * include/debug/unordered_set
3191 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
3192 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
3193 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
3194 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
3195 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
3196 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
3198 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
3200 * include/bits/stl_deque.h
3201 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
3202 a null pointer test.
3204 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
3206 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
3207 test directory after making it writable again.
3208 * testsuite/experimental/filesystem/operations/remove_all.cc:
3211 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
3214 * include/std/coroutine (coroutine_handle<P>::from_address): Add
3217 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
3219 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
3220 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
3222 2021-02-09 Jakub Jelinek <jakub@redhat.com>
3225 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
3226 points to the characters moved by earlier _S_move, compute the source
3227 address using expression based on the __p pointer rather than __s
3230 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
3232 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
3233 Add comparison with same category and different values.
3234 * testsuite/19_diagnostics/error_code/operators/less.cc:
3235 Likewise. Fix comparison involving different categories.
3236 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
3238 * testsuite/19_diagnostics/error_condition/operators/less.cc:
3240 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
3243 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
3245 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
3246 calls with a single vaddv for aarch64.
3248 2021-02-03 Matthias Kretz <kretz@kde.org>
3250 * testsuite/Makefile.am: Warn about the workaround. Add
3251 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
3252 Improve initial user feedback from make check-simd.
3253 * testsuite/Makefile.in: Regenerated.
3255 2021-02-03 Matthias Kretz <kretz@kde.org>
3257 * include/experimental/bits/simd.h: Add __detail::_Minimum and
3258 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
3259 Add hmin and hmax overloads for simd and const_where_expression.
3260 * include/experimental/bits/simd_scalar.h
3261 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
3262 parameter const-ref to allow calling _S_reduce with an rvalue.
3263 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
3264 hmin and hmax. Since the compiler statically determined that all
3265 tests pass, repeat the test after a call to make_value_unknown.
3267 2021-02-03 Matthias Kretz <kretz@kde.org>
3269 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
3270 instruction pointer data member. Ensure that the `if (m_failed)`
3271 branch is always inlined into the calling code. The body of the
3272 conditional can still be a function call. Move the get_ip call
3273 into the verify ctor to simplify the ctor calls.
3274 (COMPARE): Don't mention the use of all_of for reduction of a
3275 simd_mask. It only distracts from the real issue.
3277 2021-02-03 Matthias Kretz <kretz@kde.org>
3279 * testsuite/experimental/simd/driver.sh: Abstract reading test
3280 options into read_src_option function. Read skip, only,
3281 expensive, and xfail via read_src_option. Add timeout and
3282 timeout-factor options and adjust timeout variable accordingly.
3283 * testsuite/experimental/simd/tests/loadstore.cc: Set
3286 2021-02-03 Matthias Kretz <kretz@kde.org>
3288 * testsuite/experimental/simd/driver.sh: When handling the pipe
3289 to log (and on verbose to stdout) count the lines. If it exceeds
3290 1000 log the issue and exit 125, which is then handled as a
3293 2021-02-03 Matthias Kretz <kretz@kde.org>
3295 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
3296 markup for long double on powerpc64*.
3298 2021-02-03 Matthias Kretz <kretz@kde.org>
3300 * include/experimental/bits/simd.h: Add __have_power10vec
3301 conditional on _ARCH_PWR10.
3302 * include/experimental/bits/simd_builtin.h: Forward declare
3303 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
3305 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
3306 _SuperImpl for optimizations and correctness.
3307 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
3308 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
3309 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
3310 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
3312 2021-02-03 Matthias Kretz <kretz@kde.org>
3314 * testsuite/experimental/simd/driver.sh: Remove executable on
3315 SIGINT. Process compiler and test executable output: In verbose
3316 mode print messages immediately, limited to 1000 lines and
3317 breaking long lines to below $COLUMNS (or 1024 if not set).
3318 Communicating the exit status of the compiler / test with the
3319 necessary pipe is done via a message through stdout/-in.
3321 2021-02-03 Matthias Kretz <kretz@kde.org>
3323 * testsuite/Makefile.am: Ensure .simd.summary is empty before
3324 collecting a new summary.
3325 * testsuite/Makefile.in: Regenerate.
3327 2021-02-03 Matthias Kretz <kretz@kde.org>
3329 * testsuite/experimental/simd/generate_makefile.sh: Use
3330 different variables internally than documented for user
3331 overrides. This makes internal append/prepend work as intended.
3333 2021-02-03 Matthias Kretz <kretz@kde.org>
3335 * testsuite/experimental/simd/driver.sh (verify_test): Print
3336 test output on run xfail. Do not repeat lines from the log that
3337 were already printed on stdout.
3338 (test_selector): Make the compiler flags pattern usable as a
3340 (toplevel): Trap on SIGINT and remove the log and sum files.
3341 Call timout with --foreground to quickly terminate on SIGINT.
3342 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
3343 targets via target patterns. Default DRIVEROPTS to -v for run
3344 targets. Remove log and sum files after completion of the run
3345 target (so that it's always recompiled).
3346 Place help text into text file for reasonable 'make help'
3349 2021-02-03 Matthias Kretz <kretz@kde.org>
3351 * include/experimental/bits/simd.h: Remove unnecessary static
3352 assertion. Allow sizeof(8) integer __intrinsic_type to enable
3353 the necessary mask type.
3355 2021-02-03 Matthias Kretz <kretz@kde.org>
3357 * include/experimental/bits/simd.h: Let __intrinsic_type<long
3358 double, N> be valid if sizeof(long double) == sizeof(double) and
3359 use a __vector double as member type.
3361 2021-02-03 Matthias Kretz <kretz@kde.org>
3363 * include/experimental/bits/simd.h (__is_intrinsic_type): New
3364 internal type trait. Alias for __is_vector_type on x86.
3365 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
3367 (__intrin_bitcast): Allow casting to & from vector & intrinsic
3369 (__intrinsic_type): Explicitly specialize for NEON intrinsic
3372 2021-02-03 Matthias Kretz <kretz@kde.org>
3374 * testsuite/experimental/simd/driver.sh: Implement skip, only,
3375 expensive, and xfail markers. They can select on type, ABI tag
3376 subset number, target-triplet, and compiler flags.
3377 * testsuite/experimental/simd/generate_makefile.sh: The summary
3378 now includes lines for unexpected passes and expected failures.
3379 If the skip or only markers are only conditional on the type, do
3380 not generate rules for those types.
3381 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
3382 for ABI tag subsets 1-9.
3383 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
3384 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
3385 * testsuite/experimental/simd/tests/casts.cc: Ditto.
3386 * testsuite/experimental/simd/tests/generator.cc: Ditto.
3387 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
3388 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
3389 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
3390 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
3391 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
3392 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
3393 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
3394 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
3395 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
3396 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
3397 * testsuite/experimental/simd/tests/operators.cc: Ditto.
3398 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
3399 * testsuite/experimental/simd/tests/simd.cc: Ditto.
3400 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
3401 * testsuite/experimental/simd/tests/splits.cc: Ditto.
3402 * testsuite/experimental/simd/tests/where.cc: Ditto.
3403 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
3404 addition replace "test only floattypes" marker by unconditional
3405 "float|double|ldouble" only marker.
3406 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
3407 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
3408 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
3410 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
3411 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
3412 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
3413 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
3414 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
3415 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
3416 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
3417 addition, xfail on run because the reference data is missing.
3419 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
3421 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
3422 * doc/xml/manual/status_cxx2014.xml: Likewise.
3423 * doc/xml/manual/status_cxx2017.xml: Likewise.
3424 * doc/html/manual/status.html: Regenerate.
3426 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
3429 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
3430 Return 0 if both iterators are value-initialized.
3431 * testsuite/23_containers/deque/70303.cc: New test.
3432 * testsuite/23_containers/vector/70303.cc: New test.
3434 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
3436 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
3438 * doc/xml/manual/status_cxx2014.xml: Likewise.
3439 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
3440 std::from_chars and std::to_chars status. Fix formatting.
3441 * doc/html/manual/status.html: Regenerate.
3443 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
3445 * include/experimental/bits/numeric_traits.h: Update copyright
3447 * include/experimental/bits/simd.h: Likewise.
3448 * include/experimental/bits/simd_builtin.h: Likewise.
3449 * include/experimental/bits/simd_converter.h: Likewise.
3450 * include/experimental/bits/simd_detail.h: Likewise.
3451 * include/experimental/bits/simd_fixed_size.h: Likewise.
3452 * include/experimental/bits/simd_math.h: Likewise.
3453 * include/experimental/bits/simd_neon.h: Likewise.
3454 * include/experimental/bits/simd_ppc.h: Likewise.
3455 * include/experimental/bits/simd_scalar.h: Likewise.
3456 * include/experimental/bits/simd_x86.h: Likewise.
3457 * include/experimental/bits/simd_x86_conversions.h: Likewise.
3458 * include/experimental/simd: Likewise.
3459 * testsuite/experimental/simd/*: Likewise.
3461 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
3463 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
3464 * doc/html/*: Regenerate.
3466 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
3468 * testsuite/experimental/simd/generate_makefile.sh: Use printf
3469 instead of echo when printing escape characters.
3471 2021-01-27 Matthias Kretz <kretz@kde.org>
3473 * scripts/check_simd: New file. This script is called from the
3474 the check-simd target. It determines a set of compiler flags and
3475 simulator setups for calling generate_makefile.sh and passes the
3476 information back to the check-simd target, which recurses to the
3477 generated Makefiles.
3478 * scripts/create_testsuite_files: Remove files below simd/tests/
3479 from testsuite_files and place them in testsuite_files_simd.
3480 * testsuite/Makefile.am: Add testsuite_files_simd. Add
3482 * testsuite/Makefile.in: Regenerate.
3483 * testsuite/experimental/simd/driver.sh: New file. This script
3484 compiles and runs a given simd test, logging its output and
3485 status. It uses the timeout command to implement compile and
3487 * testsuite/experimental/simd/generate_makefile.sh: New file.
3488 This script generates a Makefile which uses driver.sh to compile
3489 and run the tests and collect the logs into a single log file.
3490 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
3492 * testsuite/experimental/simd/tests/algorithms.cc: New file.
3493 Tests min/max(simd, simd).
3494 * testsuite/experimental/simd/tests/bits/conversions.h: New
3495 file. Contains functions to support tests involving conversions.
3496 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
3497 Support functions make_mask and make_vec.
3498 * testsuite/experimental/simd/tests/bits/mathreference.h: New
3499 file. Support functions to supply precomputed math function
3501 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
3502 file. Support code for SFINAE testing.
3503 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
3504 * testsuite/experimental/simd/tests/bits/test_values.h: New
3505 file. Test functions to easily drive a test with simd objects
3506 initialized from a given list of values and a range of random
3508 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
3509 Support code to determine the ULP distance of simd objects.
3510 * testsuite/experimental/simd/tests/bits/verify.h: New file.
3511 Test framework for COMPARE'ing simd objects and instantiating
3512 the test templates with value_type and ABI tag.
3513 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
3515 * testsuite/experimental/simd/tests/casts.cc: New file. Test
3517 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
3518 Test floating-point classification functions.
3519 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
3521 * testsuite/experimental/simd/tests/generator.cc: New file. Test
3522 simd generator constructor.
3523 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
3524 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
3525 * testsuite/experimental/simd/tests/integer_operators.cc: New
3526 file. Test integer operators.
3527 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
3528 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
3530 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
3531 (converting) simd loads and stores.
3532 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
3534 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
3535 Test simd_mask broadcasts.
3536 * testsuite/experimental/simd/tests/mask_conversions.cc: New
3537 file. Test simd_mask conversions.
3538 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
3539 file. Test simd_mask implicit conversions.
3540 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
3541 Test simd_mask loads and stores.
3542 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
3543 file. Test simd_mask operators convert as specified.
3544 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
3545 Test simd_mask compares, subscripts, and negation.
3546 * testsuite/experimental/simd/tests/mask_reductions.cc: New
3547 file. Test simd_mask reductions.
3548 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
3549 1-arg math functions on simd.
3550 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
3551 2-arg math functions on simd.
3552 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
3553 Test implicit conversions on simd binary operators behave as
3555 * testsuite/experimental/simd/tests/operators.cc: New file. Test
3556 simd compares, subscripts, not, unary minus, plus, minus,
3557 multiplies, divides, increment, and decrement.
3558 * testsuite/experimental/simd/tests/reductions.cc: New file.
3560 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
3562 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
3563 sanity checks of simd types.
3564 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
3565 sin(simd) and cos(simd).
3566 * testsuite/experimental/simd/tests/split_concat.cc: New file.
3567 Test split(simd) and concat(simd, simd).
3568 * testsuite/experimental/simd/tests/splits.cc: New file. Test
3570 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
3571 Test remaining trigonometric functions on simd.
3572 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
3573 file. Test trunc(simd), ceil(simd), and floor(simd).
3574 * testsuite/experimental/simd/tests/where.cc: New file. Test
3575 masked operations using where.
3577 2021-01-27 Matthias Kretz <kretz@kde.org>
3579 * doc/xml/manual/status_cxx2017.xml: Add implementation status
3580 of the Parallelism TS 2. Document implementation-defined types
3582 * include/Makefile.am: Add new headers.
3583 * include/Makefile.in: Regenerate.
3584 * include/experimental/simd: New file. New header for
3586 * include/experimental/bits/numeric_traits.h: New file.
3587 Implementation of P1841R1 using internal naming. Addition of
3588 missing IEC559 functionality query.
3589 * include/experimental/bits/simd.h: New file. Definition of the
3590 public simd interfaces and general implementation helpers.
3591 * include/experimental/bits/simd_builtin.h: New file.
3592 Implementation of the _VecBuiltin simd_abi.
3593 * include/experimental/bits/simd_converter.h: New file. Generic
3595 * include/experimental/bits/simd_detail.h: New file. Internal
3596 macros for the simd implementation.
3597 * include/experimental/bits/simd_fixed_size.h: New file. Simd
3598 fixed_size ABI specific implementations.
3599 * include/experimental/bits/simd_math.h: New file. Math
3601 * include/experimental/bits/simd_neon.h: New file. Simd NEON
3602 specific implementations.
3603 * include/experimental/bits/simd_ppc.h: New file. Implement bit
3604 shifts to avoid invalid results for integral types smaller than
3606 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
3607 ABI specific implementations.
3608 * include/experimental/bits/simd_x86.h: New file. Simd x86
3609 specific implementations.
3610 * include/experimental/bits/simd_x86_conversions.h: New file.
3611 x86 specific conversion optimizations. The conversion patterns
3612 work around missing conversion patterns in the compiler and
3613 should be removed as soon as PR85048 is resolved.
3614 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
3615 Test that all (not all fixed_size<N>, though) standard simd and
3616 simd_mask types are usable.
3617 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
3618 file. As above but with -ffast-math.
3619 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
3620 from the standard test loop. Instead use
3621 check_vect_support_and_set_flags to build simd tests with the
3622 relevant machine flags.
3624 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
3627 * include/bits/string_view.tcc
3628 (basic_string_view::find(const CharT*, size_type, size_type)):
3631 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
3633 * include/bits/basic_string.h (basic_string::contains): New
3635 * include/std/string_view (basic_string_view::contains):
3637 * include/std/version (__cpp_lib_string_contains): Define.
3638 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
3639 Remove trailing whitespace.
3640 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
3642 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
3643 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
3644 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
3645 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
3646 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
3648 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
3650 * src/c++17/Makefile.in: Regenerate.
3652 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
3654 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
3655 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
3657 (const char* ctype<char>:: is): Same.
3659 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
3662 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
3663 write to a wide character stream if wide character support is
3664 disabled in the library.
3666 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
3668 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
3669 stringbuf not wstringbuf.
3671 2021-01-18 Jakub Jelinek <jakub@redhat.com>
3674 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
3675 Compile with -gno-as-loc-support.
3676 * src/c++11/Makefile.in: Regenerated.
3678 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
3680 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
3681 Add -fcf-protection=none to -march=i486.
3683 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
3685 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
3688 2021-01-14 Alexandre Oliva <oliva@adacore.com>
3690 * testsuite/30_threads/future/members/poll.cc: Calibrate
3693 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
3696 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
3697 (_Node_iterator()): Make default.
3698 (_Node_const_iterator()): Make default.
3699 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
3701 * include/debug/safe_iterator.h
3702 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
3703 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
3705 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
3706 _M_singular checks on input iterators.
3707 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
3709 * testsuite/23_containers/deque/debug/98466.cc: New test.
3710 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
3712 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
3715 * include/bits/fs_path.h (__throw_conversion_error): New
3716 function to throw or abort on character conversion errors.
3717 (__wstr_from_utf8): Move definition after filesystem_error has
3718 been defined. Use __throw_conversion_error.
3719 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
3720 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
3721 (path::u8string): Likewise.
3723 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
3725 * include/std/barrier: Update copyright years. Fix whitespace.
3726 * include/std/version: Fix whitespace.
3727 * testsuite/30_threads/barrier/1.cc: Update copyright years.
3728 * testsuite/30_threads/barrier/2.cc: Likewise.
3729 * testsuite/30_threads/barrier/arrive.cc: Likewise.
3730 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
3731 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
3732 * testsuite/30_threads/barrier/completion.cc: Likewise.
3734 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
3736 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
3738 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
3741 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
3743 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
3745 2021-01-08 Olivier Hainque <hainque@adacore.com>
3747 * testsuite/20_util/bind/ref_neg.cc: Tweak the
3748 dg-prune-output regex for out-of-build-tree contexts.
3750 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
3752 * doc/doxygen/user.cfg.in: Add new header.
3753 * include/Makefile.am (std_headers): likewise.
3754 * include/Makefile.in: Regenerate.
3755 * include/precompiled/stdc++.h: Add new header.
3756 * include/std/barrier: New file.
3757 * include/std/version: Add __cpp_lib_barrier feature test macro.
3758 * testsuite/30_threads/barrier/1.cc: New test.
3759 * testsuite/30_threads/barrier/2.cc: Likewise.
3760 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
3761 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
3762 * testsuite/30_threads/barrier/arrive.cc: Likewise.
3763 * testsuite/30_threads/barrier/completion.cc: Likewise.
3765 2021-01-07 Patrick Palka <ppalka@redhat.com>
3768 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
3769 instead of the non-standard nextupl and nextdownl.
3771 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
3773 * configure: Re-generate.
3775 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
3777 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
3779 2021-01-01 Jakub Jelinek <jakub@redhat.com>
3781 * ChangeLog-2020: Rotate ChangeLog. New file.
3784 Copyright (C) 2021 Free Software Foundation, Inc.
3786 Copying and distribution of this file, with or without modification,
3787 are permitted in any medium without royalty provided the copyright
3788 notice and this notice are preserved.