]> gcc.gnu.org Git - gcc.git/blame - libstdc++-v3/ChangeLog
Daily bump.
[gcc.git] / libstdc++-v3 / ChangeLog
CommitLineData
ede6c356
GA
12021-06-15 Jonathan Wakely <jwakely@redhat.com>
2
3 * include/bits/ranges_base.h (ranges::begin, ranges::end)
4 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
5 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
6 (ranges::empty, ranges::data, ranges::cdata): Make types final.
7 Add deleted operator& overloads.
8 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
9 Likewise.
10 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
11 ill-formed & expressions with using-declarations. Add checks for
12 other function objects.
13
142021-06-15 Jonathan Wakely <jwakely@redhat.com>
15
16 * include/bits/ranges_util.h (view_interface): Add noexcept to
17 empty, operator bool, data and size members.
18 (subrange): Add noexcept to constructors.
19 * include/std/ranges (single_view, ref_view): Add noexcept to
20 constructors.
21 (views::single, views::all): Add noexcept.
22 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
23 * testsuite/std/ranges/single_view.cc: Likewise.
24
252021-06-15 Jonathan Wakely <jwakely@redhat.com>
26
27 * include/bits/ranges_util.h (subrange): Add __size_type typedef
28 and use it to simplify declarations.
29 (subrange(i, s, n)): Remove assertion.
30 * testsuite/std/ranges/subrange/constexpr.cc: New test.
31
322021-06-15 Jonathan Wakely <jwakely@redhat.com>
33
34 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
35 Replace with function object.
36 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
37 __decay_copy unqualified.
38 * include/bits/ranges_base.h (__member_end, __adl_end):
39 Likewise. Use __range_iter_t for type of ranges::begin.
40 (__member_rend): Use correct value category for rbegin argument.
41 (__member_data): Use __decay_copy unqualified.
42 (__begin_data): Use __range_iter_t for type of ranges::begin.
43
8dc48181
GA
442021-06-14 Jonathan Wakely <jwakely@redhat.com>
45
46 * include/bits/ranges_base.h (ranges::empty): Check whether
47 conversion to bool can throw.
48 * testsuite/std/ranges/access/empty.cc: Check for correct
49 noexcept-specifier.
50
512021-06-14 Jonathan Wakely <jwakely@redhat.com>
52
53 PR libstdc++/100894
54 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
55 use the type if it's a reference.
56 * testsuite/20_util/common_reference/100894.cc: New test.
57
582021-06-14 Jonathan Wakely <jwakely@redhat.com>
59
60 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
61 Add dg-require-filesystem-ts directive.
62
632021-06-14 Jonathan Wakely <jwakely@redhat.com>
64
65 PR libstdc++/101034
66 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
67 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
68 to use lvalue.
69 * testsuite/20_util/any/cons/101034.cc: New test.
70
712021-06-14 Jonathan Wakely <jwakely@redhat.com>
72
73 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
74 -std=gnu++17 option.
75
762021-06-14 Jonathan Wakely <jwakely@redhat.com>
77
78 PR libstdc++/101056
79 * libsupc++/compare (compare_partial_order_fallback): Add
80 constraint using reversed parameter order, as per LWG 3465.
81 * testsuite/18_support/comparisons/algorithms/fallback.cc:
82 Adjust expected result.
83
842021-06-14 Jonathan Wakely <jwakely@redhat.com>
85
86 * libsupc++/compare (__decayed_same_as): New helper concept.
87 (strong_order, weak_order, partial_order): Constrain with new
88 concept instead of using static_assert.
89 (compare_strong_order_fallback, compare_weak_order_fallback)
90 (compare_partial_order_fallback): Likewise. Do not deduce return
91 types. Remove redundant if-constexpr checks.
92 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
93
942021-06-14 Jonathan Wakely <jwakely@redhat.com>
95
96 PR libstdc++/101055
97 * include/std/tuple: Use reserved form of attribute name.
98 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
99 check for no_unique_address.
100 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
101 Likewise.
102 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
103 Likewise.
104
f16f65f8
GA
1052021-06-11 Jonathan Wakely <jwakely@redhat.com>
106
107 * include/bits/fs_path.h (operator==, operator<=>): Use new
108 _S_compare function.
109 (path::_S_compare): New function to call path::compare in a
110 context where path::iterator is complete.
111 * include/experimental/bits/fs_path.h (operator<, operator==):
112 Define after path::iterator is complete.
113 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
114 test.
115 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
116 New test.
117
4f625f47
GA
1182021-06-09 Thomas Rodgers <rodgert@appliantology.com>
119
120 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
121 test logic with constexpr check for is_always_lock_free.
122
1232021-06-09 Jonathan Wakely <jwakely@redhat.com>
124
125 PR libstdc++/100982
126 * include/std/optional (optional::operator=(const optional<U>&)):
127 Fix value category used in is_assignable check.
128 * testsuite/20_util/optional/assignment/100982.cc: New test.
129
1302021-06-09 Jonathan Wakely <jwakely@redhat.com>
131
132 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
133 * include/bits/iterator_concepts.h (indirectly_readable_traits):
134 Add LWG issue number to comment.
135 * include/std/memory_resource (polymorphic_allocator::release):
136 Deprecate.
137 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
138 dg-warning for deprecation. Also check std::allocator<void>.
139
c6038721
GA
1402021-06-08 Thomas Rodgers <rodgert@appliantology.com>
141
142 PR libstdc++/100889
143 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
144 Change parameter type from _Tp to _Tp*.
145 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
146 coverage of types tested.
147
1482021-06-08 Thomas Rodgers <rodgert@appliantology.com>
149
150 * include/std/barrier (__tree_barrier::_M_arrive): Remove
151 unnecessary hasher instantiation.
152
1532021-06-08 Jonathan Wakely <jwakely@redhat.com>
154
155 * include/experimental/propagate_const (swap): Constrain.
156 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
157
438aac59
GA
1582021-06-07 Avi Kivity <avi@scylladb.com>
159
160 PR libstdc++/100900
161 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
162 Add missing typename.
163
1642021-06-07 Jonathan Wakely <jwakely@redhat.com>
165
166 PR libstdc++/98842
167 * include/std/optional (operator<=>(const optional<T>& const U&)):
168 Add missing constraint and add workaround for template
169 recursion.
170 * testsuite/20_util/optional/relops/three_way.cc: Check that
171 type without equality comparison cannot be compared when wrapped
172 in std::optional.
173
28c62475
GA
1742021-06-05 Jonathan Wakely <jwakely@redhat.com>
175
176 PR libstdc++/100824
177 * include/bits/ranges_base.h (_SSize): Return signed type.
178 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
179
600f90cb
GA
1802021-06-04 Jonathan Wakely <jwakely@redhat.com>
181
182 * include/bits/ranges_base.h (_SSize): Return the result of
183 ranges::size converted to the wider of make-signed-like-t<S> and
184 ptrdiff_t, rather than the ranges different type.
185 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
186 for an iota_view that uses an integer class type for its
187 difference_type.
188
1892021-06-04 Jonathan Wakely <jwakely@redhat.com>
190
191 PR libstdc++/100824
192 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
193 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
194
1952021-06-04 Jonathan Wakely <jwakely@redhat.com>
196
197 PR libstdc++/100824
198 * include/bits/iterator_concepts.h (__detail::__decay_copy)
199 (__detail::__member_begin, __detail::__adl_begin): Move to
200 namespace ranges::__cust_access.
201 (__detail::__ranges_begin): Likewise, and rename to __begin.
202 Remove redundant static assertion.
203 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
204 Use lvalue in noexcept specifier.
205 (__as_const): Add non-deduced parameter for value category.
206 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
207 __as_const.
208 (__member_size, __adl_size, __member_empty, __size0_empty):
209 (__eq_iter_empty, __adl_data): Use lvalue objects in
210 requirements.
211 (__sentinel_size): Likewise. Add check for conversion to
212 unsigned-like.
213 (__member_data): Allow non-lvalue types to satisfy the concept,
214 but use lvalue object in requirements.
215 (_Size, _SSize): Remove forwarding to always use an lvalue.
216 (_Data): Likewise. Add static assertion for arrays.
217 * testsuite/std/ranges/access/cdata.cc: Adjust expected
218 behaviour for rvalues. Add negative tests for ill-formed
219 expressions.
220 * testsuite/std/ranges/access/data.cc: Likewise.
221 * testsuite/std/ranges/access/empty.cc: Adjust expected
222 behaviour for rvalues.
223 * testsuite/std/ranges/access/size.cc: Likewise.
224
2252021-06-04 Tim Adye <Tim.Adye@cern.ch>
226
227 * include/std/any (any::_Manager::_S_access): New static
228 function to access the contained value.
229 (any::emplace, __any_caster): Use _S_access member of the
230 manager type.
231
2322021-06-04 Jonathan Wakely <jwakely@redhat.com>
233
234 * doc/xml/manual/status_cxx2020.xml:
235 * doc/html/*: Regenerate.
236 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
237 Define.
238 * include/std/version (__cpp_lib_generic_unordered_lookup):
239 Define.
240 * testsuite/23_containers/unordered_map/operations/1.cc: Check
241 feature test macro.
242 * testsuite/23_containers/unordered_set/operations/1.cc:
243 Likewise.
244
440c8a0a
GA
2452021-06-03 Patrick Palka <ppalka@redhat.com>
246
247 * include/bits/ranges_algo.h (__detail::__can_reread_output):
248 Factor out this concept from ...
249 (__unique_copy_fn::operator()): ... here. Use the concept
250 throughout.
251 * testsuite/std/ranges/range.cc: Remove now ill-formed use
252 of range_value_t on an output_range.
253 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
254 Define value_type, pointer and reference member types to void.
255
2562021-06-03 Patrick Palka <ppalka@redhat.com>
257
258 PR libstdc++/100577
259 * include/std/ranges (_RangeAdaptorClosure): Document
260 _S_has_simple_call_op mechanism.
261 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
262 (__closure_has_simple_call_op): New concept.
263 (__adaptor_has_simple_extra_args): Likewise.
264 (_Partial<_Adaptor, _Args...>): New partial specialization.
265 (_Partial<_Adaptor, _Arg>): Likewise.
266 (_Pipe<_Lhs, _Rhs>): Likewise.
267 (views::_All::_S_has_simple_call_op): Define to true.
268 (views::_Filter::_S_has_simple_extra_args): Likewise.
269 (views::_Transform::_S_has_simple_extra_args): Likewise.
270 (views::_Take::_S_has_simple_extra_args): Likewise.
271 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
272 (views::_Drop::_S_has_simple_extra_args): Likewise.
273 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
274 (views::_Join::_S_has_simple_call_op): Likewise.
275 (views::_Split): Document why we don't define
276 _S_has_simple_extra_args to true for this adaptor.
277 (views::_Common::_S_has_simple_call_op): Define to true.
278 (views::_Reverse::_S_has_simple_call_op): Likewise.
279 (views::_Elements::_S_has_simple_call_op): Likewise.
280 * testsuite/std/ranges/adaptors/100577.cc: New test.
281
9663c744
GA
2822021-06-02 Jonathan Wakely <jwakely@redhat.com>
283
284 PR libstdc++/100863
285 PR libstdc++/65816
286 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
287 Value-initialize subobject.
288 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
289 Remove XFAIL.
290 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
291 Remove XFAIL.
292
2932021-06-02 Jonathan Wakely <jwakely@redhat.com>
294
295 PR libstdc++/96088
296 * testsuite/23_containers/unordered_map/96088.cc: Adjust
297 expected number of allocations.
298 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
299
3002021-06-02 Jonathan Wakely <jwakely@redhat.com>
301
302 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
303 * doc/xml/manual/status_cxxtr1.xml: Likewise.
304 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
305 * doc/html/*: Regenerate.
306
b75978d1
GA
3072021-06-01 Patrick Palka <ppalka@redhat.com>
308
309 PR c++/65816
310 * testsuite/23_containers/deque/allocator/default_init.cc,
311 testsuite/23_containers/forward_list/allocator/default_init.cc,
312 testsuite/23_containers/list/allocator/default_init.cc,
313 testsuite/23_containers/map/allocator/default_init.cc,
314 testsuite/23_containers/set/allocator/default_init.cc,
315 testsuite/23_containers/vector/allocator/default_init.cc,
316 testsuite/23_containers/vector/bool/allocator/default_init.cc:
317 Remove xfail.
318
3192021-06-01 Jonathan Wakely <jwakely@redhat.com>
320
321 * testsuite/23_containers/unordered_map/96088.cc: Change
322 effective target to c++17.
323 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
324
3252021-06-01 Jonathan Wakely <jwakely@redhat.com>
326
327 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
328 isblank for C++11 and later.
329
3302021-06-01 Jonathan Wakely <jwakely@redhat.com>
331
332 PR libstdc++/100833
333 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
334 Fix return value for no-op case.
335 * testsuite/24_iterators/range_operations/advance.cc: Test
336 return values of three-argument overload.
337
3382021-06-01 Jonathan Wakely <jwakely@redhat.com>
339
340 PR libstdc++/99453
341 * python/Makefile.am: Use archive name for printer hook if no
342 dynamic library name is available.
343 * python/Makefile.in: Regenerate.
344
e21e9340
GA
3452021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
346
347 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
348 Compilers for Linux: Compatibility with GNU Compilers" article.
349 * doc/html/manual/abi.html: Regenerate.
350
01c59ef2
GA
3512021-05-26 François Dumont <fdumont@gcc.gnu.org>
352
353 * include/debug/formatter.h
354 (_Error_formatter::_Parameter::_Named): New.
355 (_Error_formatter::_Parameter::_Type): Inherit latter.
356 (_Error_formatter::_Parameter::_M_integer): Likewise.
357 (_Error_formatter::_Parameter::_M_string): Likewise.
358 * src/c++11/debug.cc: Include <cstring>.
359 (_Print_func_t): New.
360 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
361 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
362 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
363 (print_type): Rename in...
364 (print_type_info): ...this. Use pretty_print.
365 (print_address, print_integer): New.
366 (print_named_name, print_iterator_constness, print_iterator_state): New.
367 (print_iterator_seq_type): New.
368 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
369 (print_field): Use latters.
370 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
371 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
372 Change signature to...
373 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
374 ...this and adapt. Remove intermediate buffer to render input string.
375 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
376
3772021-05-26 Jonathan Wakely <jwakely@redhat.com>
378
379 PR libstdc++/100768
380 * include/bits/ranges_base.h (advance, distance, next, prev):
381 Replace function templates with function objects.
382 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
383 Adjust for changes to function objects.
384 * testsuite/std/ranges/adaptors/elements.cc: Add using
385 declarations for names from namespace ranges.
386 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
387 * testsuite/24_iterators/range_operations/100768.cc: New test.
388
637569df
GA
3892021-05-24 François Dumont <fdumont@gcc.gnu.org>
390
391 PR libstdc++/96088
392 * include/bits/hashtable_policy.h (_Select2nd): New.
393 (_NodeBuilder<>): New.
394 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
395 (_AllocNode<>::operator()): Likewise.
396 * include/bits/hashtable.h
397 (_Hashtable<>::__node_builder_t): New.
398 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
399 New.
400 (_Hashtable<>::_S_forward_key): New.
401 (_Hashtable<>::_M_insert): Use latter.
402 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
403 Instantiate node first, compute hash code second.
404 * testsuite/23_containers/unordered_map/96088.cc: New test.
405 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
406 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
407 * testsuite/23_containers/unordered_set/96088.cc: New test.
408 * testsuite/util/replacement_memory_operators.h
409 (counter::_M_increment): New.
410 (counter::_M_decrement): New.
411 (counter::reset()): New.
412
4132021-05-24 Patrick Palka <ppalka@redhat.com>
414
415 PR libstdc++/100479
416 * include/std/ranges (__detail::__non_propagating_cache): Move
417 definition up to before that of _CachedPosition. Make base
418 class _Optional_base protected instead of private. Add const
419 overload for operator*.
420 (__detail::_CachedPosition): Rewrite the partial specialization
421 for forward ranges as a derived class of __non_propagating_cache.
422 Remove the size constraint on the partial specialization for
423 random access ranges. Add copy/move/copy-assignment/move-assignment
424 members to the offset partial specialization for random
425 access ranges that propagate the cached value but additionally
426 invalidate it in the source object on move.
427 * testsuite/std/ranges/adaptors/100479.cc: New test.
428
4292021-05-24 Jonathan Wakely <jwakely@redhat.com>
430
431 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
432 call to ranges::next.
433 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
434 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
435 Likewise.
436 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
437 swap_ranges.
438
2832d51b
GA
4392021-05-21 Patrick Palka <ppalka@redhat.com>
440
441 PR libstdc++/100606
442 * include/std/ranges (drop_while_view::begin): Assert the
443 precondition added by LWG 3490.
444
4452021-05-21 Patrick Palka <ppalka@redhat.com>
446
447 PR libstdc++/100690
448 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
449 Split out this member function from ...
450 (iota_view::_Sentinel::operator-): ... here, for sake of access
451 control.
452 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
453
ea34e2ed
GA
4542021-05-20 Jonathan Wakely <jwakely@redhat.com>
455
456 * include/bits/random.tcc (__representable_as_double)
457 (__p1_representable_as_double): Add "" to static asserts.
458
4592021-05-20 Jonathan Wakely <jwakely@redhat.com>
460
461 PR libstdc++/100676
462 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
463 (__glibcxx_constexpr_assert): ... this.
464 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
465 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
466 or __glibcxx_assert_impl.
467 (__glibcxx_assert_2): Remove
468 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
469 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
470 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
471 Adjust expected error.
472 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
473 Likewise.
474 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
475 Likewise.
476 Likewise.
477 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
478 Likewise.
479 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
480 Likewise.
481 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
482 Likewise.
483 * testsuite/23_containers/span/back_neg.cc: Likewise.
484 * testsuite/23_containers/span/front_neg.cc: Likewise.
485 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
486
4872021-05-20 Patrick Palka <ppalka@redhat.com>
488
489 PR libstdc++/100639
490 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
491 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
492 (reverse_iterator::reference): Likewise, but with iter_reference_t.
493 (reverse_iterator::value_type): Likewise, but with iter_value_t.
494 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
495 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
496
4972021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
498
499 PR libstdc++/100361
500 * include/std/charconv (to_chars): Hide the overloads for
501 floating-point types for 16 bit targets.
502 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
503 * testsuite/20_util/to_chars/double.cc: Run this test only on
504 size32plus targets.
505 * testsuite/20_util/to_chars/float.cc: Likewise.
506 * testsuite/20_util/to_chars/long_double.cc: Likewise.
507
a8daf9a1
GA
5082021-05-18 Patrick Palka <ppalka@redhat.com>
509
510 PR libstdc++/100631
511 * include/std/ranges (elements_view::_Sentinel::operator-): Use
512 _M_distance_from in the other operator- overload too.
513 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
514
5152021-05-18 Thomas Schwinge <thomas@codesourcery.com>
516
517 * testsuite/lib/prune.exp: Add note about 'dg-note'.
518
5192021-05-18 Patrick Palka <ppalka@redhat.com>
520
521 PR libstdc++/100475
522 * include/std/ranges (__box::__box): Use non-list-initialization
523 in member initializer list of in-place constructor of the
524 partial specialization for semiregular types.
525 (__box::operator->): Use std::__addressof.
526 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
527 (test02): New test.
528 * testsuite/std/ranges/single_view.cc (test04): New test.
529
5302021-05-18 Patrick Palka <ppalka@redhat.com>
531
532 PR libstdc++/100621
533 * include/std/ranges (reverse_view::_S_needs_cached_begin):
534 Set to true if the underlying non-common random-access range
535 doesn't have a sized sentinel.
536
5372021-05-18 Patrick Palka <ppalka@redhat.com>
538
539 PR libstdc++/100631
540 * include/std/ranges (elements_view::_Iterator): Also befriend
541 _Sentinel<!_Const>.
542 (elements_view::_Sentinel::_M_equal): Templatize.
543 (elements_view::_Sentinel::_M_distance_from): Split out from ...
544 (elements_view::_Sentinel::operator-): ... here. Depend on
545 _Base2 instead of _Base in the return type.
546 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
547 New tests.
548
a7ffc1ef
GA
5492021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
550
551 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
552 until value change observed.
553 (__waiter_base::_M_laundered): New member.
554 (__waiter_base::_M_notify): Check _M_laundered to determine
555 whether to wake one or all.
556 (__detail::__atomic_compare): Return true if call to
557 __builtin_memcmp() == 0.
558 (__waiter_base::_S_do_spin_v): Adjust predicate.
559 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
560 test.
561
5622021-05-17 Jonathan Wakely <jwakely@redhat.com>
563
564 PR libstdc++/100630
565 * include/experimental/bits/fs_path.h (__is_constructible_from):
566 Test construction from a const lvalue, not an rvalue.
567 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
568 * testsuite/experimental/filesystem/path/construct/100630.cc:
569 New test.
570
5712021-05-17 Antony Polukhin <antoshkka@gmail.com>
572
573 PR libstdc++/89728
574 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
575 Declare (but do not define) partial specialization.
576 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
577
5782021-05-17 Jonathan Wakely <jwakely@redhat.com>
579
580 * include/std/thread (jthread::_S_create): Fix static assert
581 message.
582 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
583 * testsuite/30_threads/jthread/jthread.cc: Do not require
584 pthread effective target.
585 * testsuite/30_threads/jthread/2.cc: Moved to...
586 * testsuite/30_threads/jthread/version.cc: ...here.
587
5882021-05-17 Jonathan Wakely <jwakely@redhat.com>
589
590 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
591 * doc/Makefile.in: Regenerate.
592 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
593 value.
594 * scripts/run_doxygen (print_usage): Always print to stdout and
595 do not exit.
596 (fail): New function for exiting on error.
597 (parse_options): Handle --latex_cmd. Do not treat --help the
598 same as errors. Simplify handling of required arguments.
599
0ff3a0f2
GA
6002021-05-12 Jonathan Wakely <jwakely@redhat.com>
601
602 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
603 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
604 warnings. Replace bitwise AND with logical AND in loop
605 condition.
606 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
607 Replace bitwise AND with logical AND in loop condition.
608 * testsuite/util/pstl/test_utils.h: Remove unused parameter
609 names.
610
037e3661
GA
6112021-05-11 Patrick Palka <ppalka@redhat.com>
612
613 * src/c++17/ryu/LOCAL_PATCHES: Update.
614 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
615 Remove declarations for never-defined functions.
616 * testsuite/20_util/to_chars/4.cc: New test.
617
6182021-05-11 Jonathan Wakely <jwakely@redhat.com>
619
620 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
621 alternative for macro.
622 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
623 target keyword.
624 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
625 syntax.
626
6272021-05-11 Jonathan Wakely <jwakely@redhat.com>
628
629 * include/bits/allocator.h (allocator<void>) [C++20]: Add
630 missing noexcept to constructor. Restore missing POCMA and
631 is_always_equal_traits.
632 [C++17]: Make construct and destroy members private and
633 declare allocator_traits as a friend.
634 * include/bits/memoryfwd.h (allocator_traits): Declare.
635 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
636 Add nodiscard attribute. Add static assertion for LWG 3307.
637 * include/ext/new_allocator.h (new_allocator::allocate): Add
638 static assertion for LWG 3307.
639 * testsuite/20_util/allocator/void.cc: Check that converting
640 constructor is noexcept. Check for propagation traits and
641 size_type and difference_type. Check that pointer and
642 const_pointer are gone in C++20.
643
aa891c56
GA
6442021-05-10 Jonathan Wakely <jwakely@redhat.com>
645
646 * include/std/stop_token: Remove TODO comment.
647
6482021-05-10 Jonathan Wakely <jwakely@redhat.com>
649
650 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
651 Initialize a non-reference deleter from an rvalue, as per LWG
652 3548.
653 (__shared_ptr::_UniqCompatible): Add missing constraint.
654 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
655 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
656 constraints.
657
6582021-05-10 Jonathan Wakely <jwakely@redhat.com>
659
660 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
661 -std=gnu++17 from dg-options directive.
662 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
663 Likewise.
664 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
665 Likewise.
666 * testsuite/17_intro/headers/c++2017/operator_names.cc:
667 Likewise.
668 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
669 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
670 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
671 Likewise.
672 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
673 * testsuite/18_support/byte/81076.cc: Likewise.
674 * testsuite/18_support/byte/global_neg.cc: Likewise.
675 * testsuite/18_support/byte/ops.cc: Likewise.
676 * testsuite/18_support/byte/requirements.cc: Likewise.
677 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
678 * testsuite/18_support/launder/1.cc: Likewise.
679 * testsuite/18_support/launder/nodiscard.cc: Likewise.
680 * testsuite/18_support/launder/requirements.cc: Likewise.
681 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
682 * testsuite/18_support/new_aligned.cc: Likewise.
683 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
684 Likewise.
685 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
686 Likewise.
687 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
688 * testsuite/20_util/addressof/requirements/constexpr.cc:
689 Likewise.
690 * testsuite/20_util/as_const/1.cc: Likewise.
691 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
692 * testsuite/20_util/bind/83427.cc: Likewise.
693 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
694 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
695 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
696 Likewise.
697 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
698 Likewise.
699 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
700 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
701 Likewise.
702 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
703 * testsuite/20_util/from_chars/requirements.cc: Likewise.
704 * testsuite/20_util/function/91456.cc: Likewise.
705 * testsuite/20_util/function/cons/deduction.cc: Likewise.
706 * testsuite/20_util/function_objects/83607.cc: Likewise.
707 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
708 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
709 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
710 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
711 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
712 Likewise.
713 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
714 Likewise.
715 * testsuite/20_util/has_unique_object_representations/value.cc:
716 Likewise.
717 * testsuite/20_util/hash/nullptr.cc: Likewise.
718 * testsuite/20_util/in_place/requirements.cc: Likewise.
719 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
720 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
721 Likewise.
722 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
723 Likewise.
724 * testsuite/20_util/is_aggregate/value.cc: Likewise.
725 * testsuite/20_util/is_invocable/83395.cc: Likewise.
726 * testsuite/20_util/is_invocable/91456.cc: Likewise.
727 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
728 Likewise.
729 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
730 Likewise.
731 * testsuite/20_util/is_invocable/value.cc: Likewise.
732 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
733 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
734 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
735 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
736 Likewise.
737 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
738 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
739 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
740 Likewise.
741 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
742 Likewise.
743 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
744 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
745 Likewise.
746 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
747 Likewise.
748 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
749 Likewise.
750 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
751 Likewise.
752 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
753 Likewise.
754 * testsuite/20_util/is_swappable/value.cc: Likewise.
755 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
756 Likewise.
757 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
758 Likewise.
759 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
760 * testsuite/20_util/logical_traits/83134.cc: Likewise.
761 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
762 Likewise.
763 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
764 Likewise.
765 * testsuite/20_util/logical_traits/value.cc: Likewise.
766 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
767 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
768 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
769 Likewise.
770 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
771 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
772 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
773 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
774 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
775 Likewise.
776 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
777 Likewise.
778 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
779 * testsuite/20_util/to_chars/3.cc: Likewise.
780 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
781 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
782 * testsuite/20_util/to_chars/requirements.cc: Likewise.
783 * testsuite/20_util/tuple/78939.cc: Likewise.
784 * testsuite/20_util/tuple/apply/1.cc: Likewise.
785 * testsuite/20_util/tuple/apply/2.cc: Likewise.
786 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
787 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
788 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
789 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
790 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
791 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
792 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
793 Likewise.
794 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
795 * testsuite/20_util/void_t/1.cc: Likewise.
796 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
797 * testsuite/24_iterators/container_access.cc: Likewise.
798 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
799 Likewise.
800 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
801 Likewise.
802 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
803 Likewise.
804 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
805 Likewise.
806 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
807 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
808 Likewise.
809 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
810 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
811 Likewise.
812 * testsuite/26_numerics/lcm/1.cc: Likewise.
813 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
814 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
815 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
816 Likewise.
817 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
818 Likewise.
819 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
820 Likewise.
821 * testsuite/27_io/types/4.cc: Likewise.
822 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
823 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
824 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
825
8262021-05-10 Jonathan Wakely <jwakely@redhat.com>
827
828 * testsuite/20_util/function_objects/searchers.cc: Remove
829 -std=gnu++17 from dg-options directive.
830 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
831 Likewise.
832 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
833 Likewise.
834 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
835 Likewise.
836 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
837 Likewise.
838 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
839 Likewise.
840 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
841 Likewise.
842 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
843 Likewise.
844 * testsuite/25_algorithms/clamp/1.cc: Likewise.
845 * testsuite/25_algorithms/clamp/2.cc: Likewise.
846 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
847 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
848 Likewise.
849 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
850 Likewise.
851 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
852 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
853 Likewise.
854 * testsuite/25_algorithms/sample/1.cc: Likewise.
855 * testsuite/25_algorithms/sample/2.cc: Likewise.
856 * testsuite/25_algorithms/sample/3.cc: Likewise.
857 * testsuite/25_algorithms/sample/81221.cc: Likewise.
858 * testsuite/25_algorithms/search/searcher.cc: Likewise.
859 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
860 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
861 * testsuite/26_numerics/reduce/1.cc: Likewise.
862 * testsuite/26_numerics/reduce/2.cc: Likewise.
863 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
864 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
865 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
866
8672021-05-10 Jonathan Wakely <jwakely@redhat.com>
868
869 * testsuite/23_containers/array/cons/deduction.cc: Remove
870 -std=gnu++17 from dg-options directive.
871 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
872 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
873 Likewise.
874 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
875 Likewise.
876 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
877 Likewise.
878 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
879 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
880 Likewise.
881 * testsuite/23_containers/forward_list/cons/deduction.cc:
882 Likewise.
883 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
884 Likewise.
885 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
886 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
887 Likewise.
888 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
889 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
890 * testsuite/23_containers/map/modifiers/insert/83226.cc:
891 Likewise.
892 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
893 Likewise.
894 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
895 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
896 Likewise.
897 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
898 * testsuite/23_containers/multimap/modifiers/extract.cc:
899 Likewise.
900 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
901 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
902 * testsuite/23_containers/multiset/modifiers/extract.cc:
903 Likewise.
904 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
905 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
906 * testsuite/23_containers/queue/deduction.cc: Likewise.
907 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
908 Likewise.
909 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
910 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
911 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
912 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
913 * testsuite/23_containers/stack/deduction.cc: Likewise.
914 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
915 Likewise.
916 * testsuite/23_containers/unordered_map/cons/deduction.cc:
917 Likewise.
918 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
919 Likewise.
920 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
921 Likewise.
922 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
923 Likewise.
924 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
925 Likewise.
926 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
927 Likewise.
928 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
929 Likewise.
930 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
931 Likewise.
932 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
933 Likewise.
934 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
935 Likewise.
936 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
937 Likewise.
938 * testsuite/23_containers/unordered_set/cons/deduction.cc:
939 Likewise.
940 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
941 Likewise.
942 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
943 Likewise.
944 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
945 Likewise.
946 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
947 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
948 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
949 Likewise.
950
9512021-05-10 Jonathan Wakely <jwakely@redhat.com>
952
953 * testsuite/21_strings/basic_string/79162.cc: Remove
954 -std=gnu++17 from dg-options directive.
955 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
956 * testsuite/21_strings/basic_string/cons/char/79162.cc:
957 Likewise.
958 * testsuite/21_strings/basic_string/cons/char/86138.cc:
959 Likewise.
960 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
961 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
962 Likewise.
963 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
964 Likewise.
965 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
966 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
967 Likewise.
968 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
969 Likewise.
970 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
971 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
972 Likewise.
973 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
974 Likewise.
975 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
976 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
977 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
978 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
979 Likewise.
980 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
981 Likewise.
982 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
983 Likewise.
984 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
985 Likewise.
986 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
987 Likewise.
988 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
989 Likewise.
990 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
991 Likewise.
992 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
993 Likewise.
994 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
995 Likewise.
996 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
997 Likewise.
998 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
999 Likewise.
1000 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
1001 Likewise.
1002 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
1003 Likewise.
1004 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
1005 Likewise.
1006 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
1007 Likewise.
1008 * testsuite/21_strings/basic_string/operators/char/5.cc:
1009 Likewise.
1010 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
1011 Likewise.
1012 * testsuite/21_strings/basic_string_view/capacity/1.cc:
1013 Likewise.
1014 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
1015 Likewise.
1016 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
1017 Likewise.
1018 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
1019 Likewise.
1020 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
1021 Likewise.
1022 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1023 Likewise.
1024 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
1025 Likewise.
1026 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
1027 Likewise.
1028 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
1029 Likewise.
1030 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1031 Likewise.
1032 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1033 Likewise.
1034 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1035 Likewise.
1036 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
1037 Likewise.
1038 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
1039 Likewise.
1040 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
1041 Likewise.
1042 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
1043 Likewise.
1044 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
1045 Likewise.
1046 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
1047 Likewise.
1048 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
1049 Likewise.
1050 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1051 Likewise.
1052 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1053 Likewise.
1054 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
1055 Likewise.
1056 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
1057 Likewise.
1058 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
1059 Likewise.
1060 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
1061 Likewise.
1062 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
1063 Likewise.
1064 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
1065 Likewise.
1066 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
1067 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
1068 Likewise.
1069 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
1070 Likewise.
1071 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
1072 Likewise.
1073 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
1074 Likewise.
1075 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
1076 Likewise.
1077 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
1078 Likewise.
1079 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
1080 Likewise.
1081 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
1082 Likewise.
1083 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
1084 Likewise.
1085 * testsuite/21_strings/basic_string_view/literals/types.cc:
1086 Likewise.
1087 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
1088 Likewise.
1089 * testsuite/21_strings/basic_string_view/literals/values.cc:
1090 Likewise.
1091 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
1092 Likewise.
1093 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
1094 Likewise.
1095 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
1096 Likewise.
1097 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
1098 Likewise.
1099 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
1100 Likewise.
1101 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
1102 Likewise.
1103 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
1104 Likewise.
1105 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
1106 Likewise.
1107 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
1108 Likewise.
1109 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
1110 Likewise.
1111 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
1112 Likewise.
1113 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
1114 Likewise.
1115 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
1116 Likewise.
1117 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
1118 Likewise.
1119 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
1120 Likewise.
1121 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
1122 Likewise.
1123 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
1124 Likewise.
1125 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
1126 Likewise.
1127 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
1128 Likewise.
1129 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
1130 Likewise.
1131 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
1132 Likewise.
1133 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
1134 Likewise.
1135 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
1136 Likewise.
1137 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
1138 Likewise.
1139 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
1140 Likewise.
1141 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
1142 Likewise.
1143 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
1144 Likewise.
1145 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
1146 Likewise.
1147 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
1148 Likewise.
1149 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
1150 Likewise.
1151 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
1152 Likewise.
1153 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
1154 Likewise.
1155 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
1156 Likewise.
1157 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
1158 Likewise.
1159 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
1160 Likewise.
1161 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
1162 Likewise.
1163 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
1164 Likewise.
1165 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
1166 Likewise.
1167 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
1168 Likewise.
1169 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
1170 Likewise.
1171 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
1172 Likewise.
1173 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
1174 Likewise.
1175 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
1176 Likewise.
1177 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
1178 Likewise.
1179 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
1180 Likewise.
1181 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1182 Likewise.
1183 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1184 Likewise.
1185 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
1186 Likewise.
1187 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
1188 Likewise.
1189 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
1190 Likewise.
1191 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
1192 Likewise.
1193 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
1194 Likewise.
1195 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
1196 Likewise.
1197 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
1198 Likewise.
1199 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
1200 Likewise.
1201 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
1202 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
1203 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
1204 Likewise.
1205 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
1206
12072021-05-10 Jonathan Wakely <jwakely@redhat.com>
1208
1209 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
1210 from dg-options directive.
1211 * testsuite/20_util/memory_resource/2.cc: Likewise.
1212 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
1213 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
1214 Likewise.
1215 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
1216 Likewise.
1217 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
1218 Likewise.
1219 * testsuite/20_util/monotonic_buffer_resource/release.cc:
1220 Likewise.
1221 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
1222 Likewise.
1223 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
1224 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
1225 Likewise.
1226 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
1227 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
1228 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
1229 Likewise.
1230 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
1231 Likewise.
1232 * testsuite/20_util/synchronized_pool_resource/cons.cc:
1233 Likewise.
1234 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
1235 Likewise.
1236 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
1237 Likewise.
1238 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
1239 Likewise.
1240 * testsuite/20_util/synchronized_pool_resource/options.cc:
1241 Likewise.
1242 * testsuite/20_util/synchronized_pool_resource/release.cc:
1243 Likewise.
1244 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
1245 Likewise.
1246 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
1247 Likewise.
1248 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1249 Likewise.
1250 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
1251 Likewise.
1252 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
1253 Likewise.
1254 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
1255 Likewise.
1256 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
1257 Likewise.
1258 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
1259 Likewise.
1260 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
1261 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
1262 Likewise.
1263 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
1264 Likewise.
1265 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
1266 Likewise.
1267 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
1268 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
1269 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
1270 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
1271 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
1272 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
1273 Likewise.
1274 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
1275 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
1276 Likewise.
1277 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
1278 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
1279 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
1280 Likewise.
1281 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
1282 Likewise.
1283 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
1284 Likewise.
1285 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
1286 Likewise.
1287 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
1288 Likewise.
1289 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
1290 Likewise.
1291 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
1292 Likewise.
1293 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
1294 Likewise.
1295 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
1296 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
1297 Likewise.
1298 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
1299
13002021-05-10 Jonathan Wakely <jwakely@redhat.com>
1301
1302 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
1303 dg-options.
1304 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
1305 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
1306 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
1307 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
1308 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
1309 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
1310 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
1311 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
1312 Likewise.
1313 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
1314 Likewise.
1315 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
1316 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
1317 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
1318 Likewise.
1319 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
1320 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
1321 Likewise.
1322 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
1323 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
1324 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
1325 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
1326
13272021-05-10 Jonathan Wakely <jwakely@redhat.com>
1328
1329 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
1330 dg-options directive.
1331 * testsuite/20_util/any/assign/2.cc: Likewise.
1332 * testsuite/20_util/any/assign/emplace.cc: Likewise.
1333 * testsuite/20_util/any/assign/exception.cc: Likewise.
1334 * testsuite/20_util/any/assign/self.cc: Likewise.
1335 * testsuite/20_util/any/cons/1.cc: Likewise.
1336 * testsuite/20_util/any/cons/2.cc: Likewise.
1337 * testsuite/20_util/any/cons/90415.cc: Likewise.
1338 * testsuite/20_util/any/cons/92156.cc: Likewise.
1339 * testsuite/20_util/any/cons/aligned.cc: Likewise.
1340 * testsuite/20_util/any/cons/explicit.cc: Likewise.
1341 * testsuite/20_util/any/cons/in_place.cc: Likewise.
1342 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
1343 * testsuite/20_util/any/make_any.cc: Likewise.
1344 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
1345 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
1346 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
1347 * testsuite/20_util/any/misc/swap.cc: Likewise.
1348 * testsuite/20_util/any/modifiers/1.cc: Likewise.
1349 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
1350 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
1351 * testsuite/20_util/any/observers/type.cc: Likewise.
1352 * testsuite/20_util/any/requirements.cc: Likewise.
1353 * testsuite/20_util/any/typedefs.cc: Likewise.
1354 * testsuite/20_util/optional/77288.cc: Likewise.
1355 * testsuite/20_util/optional/84601.cc: Likewise.
1356 * testsuite/20_util/optional/assignment/1.cc: Likewise.
1357 * testsuite/20_util/optional/assignment/2.cc: Likewise.
1358 * testsuite/20_util/optional/assignment/3.cc: Likewise.
1359 * testsuite/20_util/optional/assignment/4.cc: Likewise.
1360 * testsuite/20_util/optional/assignment/5.cc: Likewise.
1361 * testsuite/20_util/optional/assignment/6.cc: Likewise.
1362 * testsuite/20_util/optional/assignment/7.cc: Likewise.
1363 * testsuite/20_util/optional/assignment/8.cc: Likewise.
1364 * testsuite/20_util/optional/assignment/9.cc: Likewise.
1365 * testsuite/20_util/optional/bad_access.cc: Likewise.
1366 * testsuite/20_util/optional/cons/77727.cc: Likewise.
1367 * testsuite/20_util/optional/cons/85642.cc: Likewise.
1368 * testsuite/20_util/optional/cons/copy.cc: Likewise.
1369 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
1370 * testsuite/20_util/optional/cons/default.cc: Likewise.
1371 * testsuite/20_util/optional/cons/move.cc: Likewise.
1372 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
1373 * testsuite/20_util/optional/cons/value.cc: Likewise.
1374 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
1375 * testsuite/20_util/optional/constexpr/cons/default.cc:
1376 Likewise.
1377 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
1378 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
1379 * testsuite/20_util/optional/constexpr/make_optional.cc:
1380 Likewise.
1381 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
1382 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
1383 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
1384 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
1385 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
1386 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
1387 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
1388 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
1389 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
1390 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
1391 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
1392 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
1393 * testsuite/20_util/optional/hash.cc: Likewise.
1394 * testsuite/20_util/optional/in_place.cc: Likewise.
1395 * testsuite/20_util/optional/make_optional.cc: Likewise.
1396 * testsuite/20_util/optional/nullopt.cc: Likewise.
1397 * testsuite/20_util/optional/observers/1.cc: Likewise.
1398 * testsuite/20_util/optional/observers/2.cc: Likewise.
1399 * testsuite/20_util/optional/observers/3.cc: Likewise.
1400 * testsuite/20_util/optional/observers/4.cc: Likewise.
1401 * testsuite/20_util/optional/observers/5.cc: Likewise.
1402 * testsuite/20_util/optional/observers/6.cc: Likewise.
1403 * testsuite/20_util/optional/relops/1.cc: Likewise.
1404 * testsuite/20_util/optional/relops/2.cc: Likewise.
1405 * testsuite/20_util/optional/relops/3.cc: Likewise.
1406 * testsuite/20_util/optional/relops/4.cc: Likewise.
1407 * testsuite/20_util/optional/relops/5.cc: Likewise.
1408 * testsuite/20_util/optional/relops/6.cc: Likewise.
1409 * testsuite/20_util/optional/relops/7.cc: Likewise.
1410 * testsuite/20_util/optional/requirements.cc: Likewise.
1411 * testsuite/20_util/optional/swap/1.cc: Likewise.
1412 * testsuite/20_util/optional/swap/2.cc: Likewise.
1413 * testsuite/20_util/optional/typedefs.cc: Likewise.
1414 * testsuite/20_util/variant/80165.cc: Likewise.
1415 * testsuite/20_util/variant/85183.cc: Likewise.
1416 * testsuite/20_util/variant/86874.cc: Likewise.
1417 * testsuite/20_util/variant/87431.cc: Likewise.
1418 * testsuite/20_util/variant/87619.cc: Likewise.
1419 * testsuite/20_util/variant/91807.cc: Likewise.
1420 * testsuite/20_util/variant/any.cc: Likewise.
1421 * testsuite/20_util/variant/compile.cc: Likewise.
1422 * testsuite/20_util/variant/deduction.cc: Likewise.
1423 * testsuite/20_util/variant/exception_safety.cc: Likewise.
1424 * testsuite/20_util/variant/hash.cc: Likewise.
1425 * testsuite/20_util/variant/index_type.cc: Likewise.
1426 * testsuite/20_util/variant/relops/89851.cc: Likewise.
1427 * testsuite/20_util/variant/relops/90008.cc: Likewise.
1428 * testsuite/20_util/variant/run.cc: Likewise.
1429 * testsuite/20_util/variant/visit.cc: Likewise.
1430
14312021-05-10 Jonathan Wakely <jwakely@redhat.com>
1432
1433 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
1434 -std=gnu++17 from dg-options directive.
1435 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
1436 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
1437 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
1438 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
1439 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
1440 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
1441 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
1442 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
1443 Likewise.
1444 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
1445 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
1446 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
1447 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
1448 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
1449 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1450 Likewise.
1451 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
1452 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
1453 Likewise.
1454 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1455 Likewise.
1456 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
1457 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
1458 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
1459 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
1460 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
1461 * testsuite/27_io/filesystem/operations/create_directories.cc:
1462 Likewise.
1463 * testsuite/27_io/filesystem/operations/create_directory.cc:
1464 Likewise.
1465 * testsuite/27_io/filesystem/operations/create_symlink.cc:
1466 Likewise.
1467 * testsuite/27_io/filesystem/operations/current_path.cc:
1468 Likewise.
1469 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
1470 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1471 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
1472 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1473 * testsuite/27_io/filesystem/operations/last_write_time.cc:
1474 Likewise.
1475 * testsuite/27_io/filesystem/operations/permissions.cc:
1476 Likewise.
1477 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
1478 * testsuite/27_io/filesystem/operations/read_symlink.cc:
1479 Likewise.
1480 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
1481 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
1482 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
1483 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
1484 * testsuite/27_io/filesystem/operations/resize_file.cc:
1485 Likewise.
1486 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
1487 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
1488 * testsuite/27_io/filesystem/operations/symlink_status.cc:
1489 Likewise.
1490 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1491 Likewise.
1492 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
1493 Likewise.
1494 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
1495 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
1496 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
1497 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
1498 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
1499 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
1500 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
1501 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
1502 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
1503 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
1504 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
1505 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
1506 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
1507 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
1508 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
1509 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
1510 * testsuite/27_io/filesystem/path/construct/default.cc:
1511 Likewise.
1512 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
1513 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
1514 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
1515 * testsuite/27_io/filesystem/path/construct/string_view.cc:
1516 Likewise.
1517 * testsuite/27_io/filesystem/path/decompose/extension.cc:
1518 Likewise.
1519 * testsuite/27_io/filesystem/path/decompose/filename.cc:
1520 Likewise.
1521 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
1522 Likewise.
1523 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
1524 Likewise.
1525 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
1526 Likewise.
1527 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
1528 Likewise.
1529 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
1530 Likewise.
1531 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
1532 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
1533 Likewise.
1534 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
1535 * testsuite/27_io/filesystem/path/generation/normal.cc:
1536 Likewise.
1537 * testsuite/27_io/filesystem/path/generation/normal2.cc:
1538 Likewise.
1539 * testsuite/27_io/filesystem/path/generation/proximate.cc:
1540 Likewise.
1541 * testsuite/27_io/filesystem/path/generation/relative.cc:
1542 Likewise.
1543 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
1544 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
1545 Likewise.
1546 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
1547 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
1548 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
1549 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
1550 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
1551 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
1552 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
1553 Likewise.
1554 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
1555 Likewise.
1556 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
1557 Likewise.
1558 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
1559 Likewise.
1560 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
1561 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
1562 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
1563 Likewise.
1564 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
1565 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
1566 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
1567 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
1568 Likewise.
1569 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
1570 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
1571 * testsuite/27_io/filesystem/path/query/has_extension.cc:
1572 Likewise.
1573 * testsuite/27_io/filesystem/path/query/has_filename.cc:
1574 Likewise.
1575 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
1576 Likewise.
1577 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
1578 Likewise.
1579 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
1580 Likewise.
1581 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
1582 Likewise.
1583 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
1584 Likewise.
1585 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
1586 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
1587 Likewise.
1588 * testsuite/27_io/filesystem/path/query/is_relative.cc:
1589 Likewise.
1590 * testsuite/experimental/filesystem/path/construct/string_view.cc:
1591 Likewise.
1592
15932021-05-10 Jonathan Wakely <jwakely@redhat.com>
1594
1595 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
1596 Remove -std=gnu++17 from dg-options.
1597 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
1598 Likewise.
1599 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
1600 Likewise.
1601 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
1602 Likewise.
1603 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
1604 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
1605 Likewise.
1606 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
1607 Likewise.
1608 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
1609 Likewise.
1610 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
1611 Likewise.
1612 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
1613 Likewise.
1614 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
1615 Likewise.
1616 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
1617 Likewise.
1618 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
1619 Likewise.
1620 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
1621 Likewise.
1622 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
1623 Likewise.
1624 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
1625 Likewise.
1626 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
1627 Likewise.
1628 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
1629 Likewise.
1630 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
1631 Likewise.
1632 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
1633 Likewise.
1634 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
1635 Likewise.
1636 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
1637 Likewise.
1638 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
1639 Likewise.
1640 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
1641 Likewise.
1642 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
1643 Likewise.
1644 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
1645 Likewise.
1646 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
1647 Likewise.
1648 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
1649 Likewise.
1650 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
1651 Likewise.
1652 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
1653 Likewise.
1654 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
1655 Likewise.
1656 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
1657 Likewise.
1658 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
1659 Likewise.
1660 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
1661 Likewise.
1662 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
1663 Likewise.
1664 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
1665 Likewise.
1666 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
1667 Likewise.
1668 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
1669 Likewise.
1670 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
1671 Likewise.
1672 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
1673 Likewise.
1674 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
1675 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
1676 Likewise.
1677 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
1678 Likewise.
1679 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
1680 Likewise.
1681 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
1682 Likewise.
1683 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
1684 Likewise.
1685 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
1686 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
1687 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
1688 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
1689 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
1690 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
1691 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
1692 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
1693 Likewise.
1694 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
1695 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
1696 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
1697 Likewise.
1698 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
1699 Likewise.
1700
17012021-05-10 Jonathan Wakely <jwakely@redhat.com>
1702
1703 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
1704 for additional errors in C++20.
1705 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
1706 Likewise.
1707 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
1708 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
1709
17102021-05-10 Jonathan Wakely <jwakely@redhat.com>
1711
1712 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
1713 clash with std::any.
1714
62d87a32
GA
17152021-05-07 Jonathan Wakely <jwakely@redhat.com>
1716
1717 * include/std/istream (__rvalue_stream_extraction_t): Replace
1718 use of __rval_streamable.
1719 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
1720 (__rval_streamable): Remove.
1721 (_Require_derived_from_ios_base, __derived_from_ios_base): New
1722 helper for checking constraints.
1723 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
1724 reference to the wrong subclause of the standard.
1725 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
1726 Likewise.
1727 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
1728 Likewise.
1729 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
1730 Likewise.
1731 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
1732 New test.
1733 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
1734 errors.
1735
cfe82a0c
GA
17362021-05-06 Jonathan Wakely <jwakely@redhat.com>
1737
1738 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
1739 Improve static_assert messages.
1740 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
1741 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
1742
17432021-05-06 Patrick Palka <ppalka@redhat.com>
1744
1745 * include/std/ranges (filter_view::_Iterator::base): Make the
1746 const& overload unconstrained and return a const reference as
1747 per LWG 3533. Make unconditionally noexcept.
1748 (transform_view::_Iterator::base): Likewise.
1749 (elements_view::_Iterator::base): Likewise.
1750
17512021-05-06 Patrick Palka <ppalka@redhat.com>
1752
1753 * include/bits/stl_iterator.h (move_iterator::base): Make the
1754 const& overload unconstrained and return a const reference as
1755 per LWG 3391. Make unconditionally noexcept.
1756 (counted_iterator::base): Likewise.
1757 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
1758 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
1759 has_member_base concept to decay-copy the result of base().
1760
17612021-05-06 Jonathan Wakely <jwakely@redhat.com>
1762
1763 * include/std/type_traits (remove_cvref_t): Define in terms of
1764 remove_cvref.
1765 * testsuite/20_util/remove_cvref/value.cc: Check alias.
1766
17672021-05-06 Jonathan Wakely <jwakely@redhat.com>
1768
1769 Revert:
1770 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
1771
1772 * include/std/charconv (__from_chars_alnum): Pass unsigned
1773 char to std::isdigit.
1774
44948011
GA
17752021-05-05 Patrick Palka <ppalka@redhat.com>
1776
1777 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
1778 Remove constraints on this partial specialization.
1779 * include/std/ranges (enable_borrowed_range<iota_view>):
1780 Likewise.
1781
17822021-05-05 Patrick Palka <ppalka@redhat.com>
1783
1784 * include/std/ranges (transform_view::_Iterator::iter_swap):
1785 Remove as per LWG 3520.
1786 (join_view::_Iterator::iter_swap): Add indirectly_swappable
1787 constraint as per LWG 3517.
1788
17892021-05-05 Jonathan Wakely <jwakely@redhat.com>
1790
1791 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
1792 test macro.
1793 * testsuite/20_util/function_objects/invoke/version.cc: New test.
1794
17952021-05-05 Jonathan Wakely <jwakely@redhat.com>
1796
1797 * include/std/charconv (__from_chars_alnum): Pass unsigned
1798 char to std::isdigit.
1799
18002021-05-05 Corentin Gay <gay@adacore.com>
1801
1802 * acinclude.m4: Add VxWorks-specific case for the
1803 configuration of ctypes.
1804 * configure: Regenerate.
1805 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
1806 version.
1807 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
1808 * config/os/vxworks/ctype_configure_char.cc: Likewise.
1809 * config/os/vxworks/ctype_inline.h: Likewise.
1810 * testsuite/28_regex/traits/char/isctype.cc: Defines
1811 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
1812 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
1813
99e8df7a
GA
18142021-05-04 Jonathan Wakely <jwakely@redhat.com>
1815
1816 * include/std/future (promise::set_value): Check for existence
1817 of shared state before dereferncing it.
1818 (promise::set_exception, promise::set_value_at_thread_exit)
1819 (promise::set_exception_at_thread_exit): Likewise.
1820 (promise<R&>::set_value, promise<R&>::set_exception)
1821 (promise<R&>::set_value_at_thread_exit)
1822 (promise<R&>::set_exception_at_thread_exit): Likewise.
1823 (promise<void>::set_value, promise<void>::set_exception)
1824 (promise<void>::set_value_at_thread_exit)
1825 (promise<void>::set_exception_at_thread_exit): Likewise.
1826 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
1827 Remove unused variable.
1828
18292021-05-04 Jonathan Wakely <jwakely@redhat.com>
1830
1831 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
1832 Do not do arithmetic on null pointer.
1833
18342021-05-04 Jonathan Wakely <jwakely@redhat.com>
1835
1836 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
1837 (find_key_pointer(key_const_reference, false_type))
1838 (find_key_pointer(key_const_reference, true_type)): Do not
1839 dereference null pointer.
1840
18412021-05-04 Jonathan Wakely <jwakely@redhat.com>
1842
1843 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
1844 overflow.
1845 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
1846 non-zero value to null pointer.
1847 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
1848 Use past-the-end iterator for result.
1849 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
1850 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
1851
18522021-05-04 Jonathan Wakely <jwakely@redhat.com>
1853
1854 PR libstdc++/100384
1855 * include/std/variant (__get_t): New alias template yielding the
1856 return type of std::get<N> on a variant.
1857 (__visit_result_t): New alias template yielding the result of
1858 std::visit.
1859 (__same_types): Move into namespace __detail::__variant.
1860 (__check_visitor_results): Likewise. Use __invoke_result_t and
1861 __get_t.
1862 (__check_visitor_result): Remove.
1863 (visit): Use __visit_result_t for return type.
1864 * testsuite/20_util/variant/100384.cc: New test.
1865
18662021-05-04 Jonathan Wakely <jwakely@redhat.com>
1867
1868 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
1869 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
1870 * config.h.in: Regenerate.
1871 * configure: Regenerate.
1872 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
1873 * include/bits/random.h (_Select_uint_least_t<s, 1>):
1874 Use __SIZEOF_INT128__ to decide whether to use __int128.
1875 * include/std/charconv (__to_chars_unsigned_type): Likewise.
1876
54b20ee0
GA
18772021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
1878
1879 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
1880 * doc/html/manual/facets.html: Regenerate.
1881
9326049e
GA
18822021-04-30 Patrick Palka <ppalka@redhat.com>
1883
1884 * include/std/ranges (__detail::__non_propating_cache): Define
1885 as per P2328.
1886 (join_view): Remove constraints on the value and reference types
1887 of the wrapped iterator type as per P2328.
1888 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
1889 (join_view::_Iterator::operator++): Likewise.
1890 (join_view::_M_inner): Use __non_propating_cache as per P2328.
1891 Remove now-redundant use of __maybe_present_t.
1892 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
1893 (test10): New test.
1894
18952021-04-30 Jonathan Wakely <jwakely@redhat.com>
1896
1897 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
1898 Only define for C++17 and later.
1899 * include/std/version (__cpp_lib_semaphore): Fix condition
1900 to match the one in <semaphore>.
1901
19022021-04-30 Jonathan Wakely <jwakely@redhat.com>
1903
1904 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
1905 * config.h.in: Regenerate.
1906 * configure: Regenerate.
1907 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
1908 * include/bits/postypes.h: Remove include of <stdint.h> and
1909 definition/undefinition of the __STDC_LIMIT_MACROS and
1910 __STDC_CONSTANT_MACROS macros.
1911 (streamoff): Use __INT64_TYPE__ if defined.
1912
19132021-04-30 Patrick Palka <ppalka@redhat.com>
1914
1915 * include/std/ranges (split_view::_InnerIter::operator++):
1916 Depend on _Base instead of _Vp directly, as per LWG 3532.
1917
19182021-04-30 Patrick Palka <ppalka@redhat.com>
1919
1920 * include/bits/ranges_util.h (subrange::subrange): Avoid
1921 list-initialization in delegating constructor.
1922 * include/std/ranges (single_view): Replace implicit guide
1923 with explicit deduction guide that decays its argument.
1924 (_Single::operator()): Avoid CTAD when constructing the
1925 single_view object.
1926 (_Iota::operator()): Avoid list-initialization.
1927 (__detail::__can_filter_view, _Filter::operator()): Likewise.
1928 (__detail::__can_transform_view, _Transform::operator()): Likewise.
1929 (take_view::begin): Likewise.
1930 (__detail::__can_take_view, _Take::operator()): Likewise.
1931 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
1932 (__detail::__can_drop_view, _Drop::operator()): Likewise.
1933 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
1934 (split_view::split_view): Use views::single when initializing
1935 _M_pattern.
1936 (__detail::__can_split_view, _Split::operator()): Avoid
1937 list-initialization.
1938 (_Counted::operator()): Likewise.
1939 * testsuite/std/ranges/p2367.cc: New test.
1940
19412021-04-30 Jonathan Wakely <jwakely@redhat.com>
1942
1943 PR libstdc++/60497
1944 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
1945 std::addressof.
1946 * include/bits/basic_string.tcc (basic_string::swap)
1947 (basic_string::assign): Likewise.
1948 * include/bits/deque.tcc (deque::operator=(const deque&)):
1949 Likewise.
1950 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
1951 Likewise.
1952 * include/bits/vector.tcc (vector::operator=(const vector&)):
1953 Likewise.
1954
19552021-04-30 Jonathan Wakely <jwakely@redhat.com>
1956
1957 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
1958 per LWG 1203.
1959 * include/std/ostream (operator<<(Ostream&&, const x&)):
1960 Likewise.
1961 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
1962 Adjust dg-error pattern.
1963 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
1964 Likewise.
1965 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
1966 is_extractable trait to replace std::__is_extractable. Make it
1967 work with rvalue streams as well as lvalues, to replace f() and
1968 g() helper functions.
1969 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
1970 Likewise.
1971 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
1972 Define is_insertable trait to replace std::__is_insertable. Make
1973 it work with rvalue streams as well as lvalues, to replace f()
1974 and g() helper functions.
1975 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
1976 Likewise.
1977 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
1978 errors from new constraints.
1979 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
1980 which are no longer expected to compile.
1981 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
1982 Verify LWG 1203 changes.
1983
19842021-04-30 Jonathan Wakely <jwakely@redhat.com>
1985
1986 PR libstdc++/100285
1987 * include/experimental/socket (__basic_socket_impl::set_option)
1988 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
1989 Just set error code.
1990 * testsuite/experimental/net/socket/socket_base.cc: CHeck
1991 for <sys/socket.h> not <socket.h>.
1992
19932021-04-30 Jonathan Wakely <jwakely@redhat.com>
1994
1995 PR libstdc++/100180
1996 PR libstdc++/100286
1997 PR libstdc++/100351
1998 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
1999 Use new effective-target keyword.
2000 * testsuite/experimental/net/internet/address/v4/cons.cc:
2001 Likewise.
2002 * testsuite/experimental/net/internet/address/v4/creation.cc:
2003 Likewise.
2004 * testsuite/experimental/net/internet/address/v4/members.cc:
2005 Likewise.
2006 * testsuite/experimental/net/internet/address/v6/members.cc:
2007 Likewise.
2008 * testsuite/experimental/net/internet/resolver/base.cc:
2009 Likewise.
2010 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2011 Likewise.
2012 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
2013 Likewise.
2014 * testsuite/experimental/net/internet/socket/opt.cc:
2015 Likewise.
2016 * testsuite/experimental/net/internet/tcp.cc:
2017 Likewise.
2018 * testsuite/experimental/net/internet/udp.cc:
2019 Likewise.
2020 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
2021 New proc to check net_ts_ip et.
2022
e4ff4ffb
GA
20232021-04-28 Jonathan Wakely <jwakely@redhat.com>
2024
2025 PR libstdc++/97930
2026 * testsuite/20_util/pair/requirements/structural.cc: New test.
2027
20282021-04-28 Jonathan Wakely <jwakely@redhat.com>
2029
2030 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
2031 new definitions for constructors and assignment operators using
2032 concepts for constraints.
2033 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
2034 later.
2035 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
2036 expected error messages to also match C++20 errors.
2037
20382021-04-28 Jonathan Wakely <jwakely@redhat.com>
2039
2040 PR libstdc++/99957
2041 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
2042 Combine and replace with ...
2043 (_PCC::_DeprConsPair): New SFINAE helper function.
2044 (pair): Merge preprocessor blocks so that all C++03 members
2045 are defined together at the end.
2046 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
2047 Replace _T1 and _T2 parameters with __null_ptr_constant and
2048 adjust constraints.
2049 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
2050 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
2051 * testsuite/20_util/pair/cons/99957.cc: New test.
2052
20532021-04-28 Jonathan Wakely <jwakely@redhat.com>
2054
2055 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
2056 * include/std/version (__cpp_lib_constexpr_string): Define.
2057 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
2058 Check for __cpp_lib_constexpr_string.
2059 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
2060 Likewise.
2061 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
2062
20632021-04-28 Jonathan Wakely <jwakely@redhat.com>
2064
2065 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
2066 dealing with errors. Use '@' to prevent shell command being
2067 echoed.
2068 * doc/Makefile.in: Regenerate.
2069
20702021-04-28 Jonathan Wakely <jwakely@redhat.com>
2071
2072 PR libstdc++/100298
2073 * include/bits/std_thread.h (thread::hardware_concurrency): Add
2074 missing noexcept to inline definition for non-gthreads targets.
2075
20762021-04-28 Patrick Palka <ppalka@redhat.com>
2077
2078 PR libstdc++/100187
2079 PR libstdc++/100237
2080 PR libstdc++/100249
2081 PR libstdc++/100287
2082 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
2083 the __value_comp lambda an explicit bool return type.
2084 (__is_permutation_fn::operator()): Give the __proj_scan local
2085 variable auto&& return type. Give the __comp_scan lambda an
2086 explicit bool return type.
2087 (__remove_fn::operator()): Give the __pred lambda an explicit
2088 bool return type.
2089 (__partition_fn::operator()): Don't std::move __first twice
2090 when returning an empty subrange.
2091 (__min_fn::operator()): Don't std::move __comp.
2092 (__max_fn::operator()): Likewise.
2093 (__minmax_fn::operator()): Likewise.
2094
8f54dd61
GA
20952021-04-27 Patrick Palka <ppalka@redhat.com>
2096
2097 PR libstdc++/100290
2098 * include/std/ranges (join_view::_Iterator::operator++): Correct
2099 the return type of the lambda to avoid returning a copy of
2100 _M_parent->_M_inner.
2101 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
2102
21032021-04-27 Jakub Jelinek <jakub@redhat.com>
2104
2105 Revert:
2106 2021-04-22 Jakub Jelinek <jakub@redhat.com>
2107
2108 PR target/100182
2109 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
2110 ia32.
2111 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
2112 ia32.
2113
21142021-04-27 Jonathan Wakely <jwakely@redhat.com>
2115
2116 * include/experimental/internet (address_v6::bytes_type): Adjust
2117 formatting.
2118 (basic_endpoint): Define _M_is_v6() to put all checks for
2119 AF_INET6 in one place.
2120 (basic_endpoint::resize): Simplify.
2121 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
2122 (operator!=(const tcp&, const tcp&)): Likewise.
2123 (operator==(const udp&, const udp&)): Likewise.
2124 (operator!=(const udp&, const udp&)): Likewise.
2125 * testsuite/experimental/net/internet/tcp.cc: New test.
2126 * testsuite/experimental/net/internet/udp.cc: New test.
2127
21282021-04-27 Jonathan Wakely <jwakely@redhat.com>
2129
2130 PR libstdc++/100286
2131 * include/experimental/internet (resolver_errc, resolver_category())
2132 (make_error_code, make_error_condition): Define unconditionally,
2133 only make enumerators and use of gai_strerror depend on the
2134 availability of <netdb.h>.
2135 (address_v4::to_string): Use correct constant for string length.
2136 (address_v4::to_string, address_v6::to_string): Define
2137 unconditionally, throw if unsupported.
2138 (make_address_v4, make_address_v6): Define unconditionally.
2139 Return an error if unsupported.
2140 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
2141 conditionally,
2142 * testsuite/experimental/net/internet/socket/opt.cc: Check for
2143 <netinet/in.h> and <netinet/tcp.h> before using types from
2144 namespace net::ip.
2145
21462021-04-27 Jonathan Wakely <jwakely@redhat.com>
2147
2148 PR libstdc++/100285
2149 * include/experimental/internet (resolver_base::flags):
2150 Define overloaded operators as hidden friends.
2151 * include/experimental/socket (socket_base::message_flags):
2152 Likewise.
2153
c0fa3f2f
GA
21542021-04-26 Jonathan Wakely <jwakely@redhat.com>
2155
2156 * include/experimental/internet (tcp::no_delay, v6_only)
2157 (unicast::hops, multicast::hops, multicast::enable_loopback):
2158 Change access of base class and static data members. Add
2159 using-declaration for __socket_crtp::operator=(_Tp).
2160 (multicast::__mcastopt): New type.
2161 (multicast::join_group, multicast::leave_group): Derive from
2162 __mcastopt for common implementation.
2163 * include/experimental/socket: Add comment.
2164 * testsuite/experimental/net/internet/socket/opt.cc: New test.
2165 * testsuite/experimental/net/socket/socket_base.cc: Check for
2166 protected constructor/destructor of socket_base. Check for
2167 explicit constructors of socket option classes.
2168
21692021-04-26 Jonathan Wakely <jwakely@redhat.com>
2170
2171 * include/experimental/bits/net.h (__socket_base): Add
2172 bool template parameter to allow BooleanSocketOption and
2173 IntegerSocketOption to have different __socket_base<int>
2174 base classes.
2175 (__socket_base<bool>): Adjust base class.
2176 (__socket_base<int>): Add partial specialization.
2177 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
2178 * include/experimental/socket (socket_base::broadcast)
2179 (socket_base::debug, socket_base::do_not_route)
2180 (socket_base::keep_alive, socket_base::linger)
2181 (socket_base::out_of_band_inline)
2182 (socket_base::receive_buffer_size)
2183 (socket_base::receive_low_watermark)
2184 (socket_base::reuse_address, socket_base::send_buffer_size)
2185 (socket_base::send_low_watermark): Add using-declaration for
2186 __socket_crtp::operator=(_Tp).
2187 * testsuite/experimental/net/socket/socket_base.cc: Check
2188 properties of socket option types.
2189
21902021-04-26 Jonathan Wakely <jwakely@redhat.com>
2191
2192 * include/experimental/internet (resolver_base::flags): Remove
2193 enumerators. Initialize constants directly with desired values.
2194 Make all operators constexpr and noexcept.
2195 * testsuite/experimental/net/internet/resolver/base.cc: Use
2196 __gnu_test::test_bitmask_values for bitmask type. Check
2197 construction and destruction is protected.
2198
21992021-04-26 Jonathan Wakely <jwakely@redhat.com>
2200
2201 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
2202
22032021-04-26 Jonathan Wakely <jwakely@redhat.com>
2204
2205 PR libstdc++/100259
2206 * include/experimental/internet (net::ip::make_error_code)
2207 (net::ip::make_error_condition, net::ip::make_network_v4)
2208 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
2209
502ef97c
GA
22102021-04-24 David Edelsohn <dje.gcc@gmail.com>
2211
2212 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
2213 (add_options_for_libatomic): Use atomic_link_flags.
2214
05ec629f
GA
22152021-04-23 Jonathan Wakely <jwakely@redhat.com>
2216
2217 PR libstdc++/100180
2218 * include/experimental/io_context (io_context): Define
2219 dummy_pollfd type so that most member functions still compile
2220 without <poll.h> and struct pollfd.
2221
22222021-04-23 Jonathan Wakely <jwakely@redhat.com>
2223
2224 * include/experimental/io_context (io_context::async_wait): Add
2225 comment.
2226 * include/experimental/socket (basic_socket::async_connect):
2227 Cast wait_type constant to int.
2228 (basic_datagram_socket::async_receive): Likewise.
2229 (basic_datagram_socket::async_receive_from): Likewise.
2230 (basic_datagram_socket::async_send): Likewise.
2231 (basic_datagram_socket::async_send_to): Likewise.
2232 (basic_stream_socket::async_receive): Likewise.
2233 (basic_stream_socket::async_send): Likewise. Use io_context
2234 parameter directly, instead of via an executor.
2235 (basic_socket_acceptor::async_accept): Likewise.
2236
22372021-04-23 Jonathan Wakely <jwakely@redhat.com>
2238
2239 * include/experimental/socket (socket_base::shutdown_type):
2240 (socket_base::wait_type, socket_base::message_flags):
2241 Remove enumerators. Initialize constants directly with desired
2242 values.
2243 (socket_base::message_flags): Make all operators constexpr and
2244 noexcept.
2245 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
2246 New test utility.
2247 * testsuite/experimental/net/socket/socket_base.cc: New test.
2248
e3948473
GA
22492021-04-22 David Edelsohn <dje.gcc@gmail.com>
2250
2251 * config/os/aix/atomicity.h: Delete.
2252
22532021-04-22 Jonathan Wakely <jwakely@redhat.com>
2254
2255 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
2256 Handle system_clock as well as steady_clock.
2257 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
2258 * testsuite/30_threads/semaphore/try_acquire_until.cc:
2259 Re-enable.
2260
22612021-04-22 Jonathan Wakely <jwakely@redhat.com>
2262
2263 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
2264 options for libatomic.
2265
22662021-04-22 Jonathan Wakely <jwakely@redhat.com>
2267
2268 * config/os/gnu-linux/os_defines.h: Fix type in comment.
2269
22702021-04-22 Jonathan Wakely <jwakely@redhat.com>
2271
2272 PR libstdc++/99006
2273 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
2274 is not an array type.
2275 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
2276 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
2277
22782021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
2279
2280 * include/bits/atomic_wait.h: Always notify waiters in the
2281 case of 'bare' address notification.
2282
22832021-04-22 Jakub Jelinek <jakub@redhat.com>
2284
2285 PR target/100182
2286 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
2287 ia32.
2288 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
2289 ia32.
2290
22912021-04-22 Jonathan Wakely <jwakely@redhat.com>
2292
2293 PR libstdc++/100179
2294 * include/bits/semaphore_base.h: Remove #error.
2295 * include/std/semaphore: Do not define anything unless one of
2296 the implementations is available.
2297
c1ef0c92
GA
22982021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
2299
2300 * include/bits/semaphore_base.h: Always reload __old in
2301 __atomic_semaphore::_S_do_try_acquire().
2302 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
2303 re-enable testcase.
2304
23052021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
2306 Jonathan Wakely <jwakely@redhat.com>
2307
2308 PR libstdc++/99453
2309 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
2310 * python/Makefile.in: Regenerate.
2311
23122021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
2313
2314 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
2315 member to __platform_wait.
2316
23172021-04-21 Jonathan Wakely <jwakely@redhat.com>
2318
2319 * include/std/latch: Replace tab characters in license text.
2320 * include/std/semaphore: Likewise.
2321
23222021-04-21 Jakub Jelinek <jakub@redhat.com>
2323
2324 PR libstdc++/100164
2325 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
2326 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
2327 * configure: Regenerated.
2328 * config.h.in: Regenerated.
2329
be8aad8d
GA
23302021-04-20 Jonathan Wakely <jwakely@redhat.com>
2331
2332 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
2333 test for targets not using futexes for semaphores.
2334 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
2335 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
2336 Disable for all targets.
2337
23382021-04-20 Thomas Rodgers <trodgers@redhat.com>
2339
2340 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
2341 * include/Makefile.in: Regenerate.
2342 * include/bits/this_thread_sleep.h: New file.
2343 * include/bits/atomic_base.h: Adjust all calls
2344 to __atomic_wait/__atomic_notify for new call signatures.
2345 * include/bits/atomic_timed_wait.h: Extensive rewrite.
2346 * include/bits/atomic_wait.h: Likewise.
2347 * include/bits/semaphore_base.h: Adjust all calls
2348 to __atomic_wait/__atomic_notify for new call signatures.
2349 * include/std/atomic: Likewise.
2350 * include/std/barrier: Likewise.
2351 * include/std/latch: Likewise.
2352 * include/std/semaphore: Likewise.
2353 * include/std/thread (this_thread::sleep_for)
2354 (this_thread::sleep_until): Move to new header.
2355 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
2356 test.
2357 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
2358 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
2359 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
2360 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
2361 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
2362 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
2363
23642021-04-20 Patrick Palka <ppalka@redhat.com>
2365
2366 PR libstdc++/95983
2367 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
2368 Define.
2369 (move_iterator): Derive from the above in C++20 in order to
2370 conditionally define iterator_category as per P2259.
2371 (move_iterator::__base_cat): No longer used, so remove.
2372 (move_iterator::iterator_category): Remove in C++20.
2373 (__detail::__common_iter_use_postfix_proxy): Define.
2374 (common_iterator::_Proxy): Rename to ...
2375 (common_iterator:__arrow_proxy): ... this.
2376 (common_iterator::__postfix_proxy): Define as per P2259.
2377 (common_iterator::operator->): Adjust.
2378 (common_iterator::operator++): Adjust as per P2259.
2379 (iterator_traits<common_iterator>::_S_iter_cat): Define.
2380 (iterator_traits<common_iterator>::iterator_category): Change as
2381 per P2259.
2382 (__detail::__counted_iter_value_type): Define.
2383 (__detail::__counted_iter_concept): Define.
2384 (__detail::__counted_iter_cat): Define.
2385 (counted_iterator): Derive from the above three classes in order
2386 to conditionally define value_type, iterator_concept and
2387 iterator category respectively as per P2259.
2388 (counted_iterator::operator->): Define as per P2259.
2389 (incrementable_traits<counted_iterator>): Remove as per P2259.
2390 (iterator_traits<counted_iterator>): Adjust as per P2259.
2391 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
2392 (iota_view::_Iterator): Derive from the above in order to
2393 conditionally define iterator_category as per P2259.
2394 (iota_view::_S_iter_cat): Rename to ...
2395 (iota_view::_S_iter_concept): ... this.
2396 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
2397 (iota_view::iterator_category): Remove.
2398 (__detail::__filter_view_iter_cat): Define.
2399 (filter_view::_Iterator): Derive from the above in order to
2400 conditionally define iterator_category as per P2259.
2401 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
2402 (filter_view::_Iterator::iterator_category): Remove.
2403 (transform_view::_Base): Define.
2404 (transform_view::__iter_cat): Define.
2405 (transform_view::_Iterator): Derive from the above in order to
2406 conditionally define iterator_category as per P2259.
2407 (transform_view::_Iterator::_Base): Just alias
2408 transform_view::_Base.
2409 (transform_view::_Iterator::_S_iter_cat): Move to struct
2410 transform_view::__iter_cat.
2411 (transform_view::_Iterator::iterator_category): Remove.
2412 (transform_view::_Sentinel::_Base): Just alias
2413 transform_view::_Base.
2414 (join_view::_Base): Define.
2415 (join_view::_Outer_iter): Define.
2416 (join_view::_Inner_iter): Define.
2417 (join_view::_S_ref_is_glvalue): Define.
2418 (join_view::__iter_cat): Define.
2419 (join_view::_Iterator): Derive from it in order to conditionally
2420 define iterator_category as per P2259.
2421 (join_view::_Iterator::_Base): Just alias join_view::_Base.
2422 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
2423 join_view::_S_ref_is_glvalue.
2424 (join_view::_Iterator::_S_iter_cat): Move to struct
2425 transform_view::__iter_cat.
2426 (join_view::_Iterator::_Outer_iter): Just alias
2427 join_view::_Outer_iter.
2428 (join_view::_Iterator::_Inner_iter): Just alias
2429 join_view::_Inner_iter.
2430 (join_view::_Iterator::iterator_category): Remove.
2431 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
2432 (__detail::__split_view_outer_iter_cat): Define.
2433 (__detail::__split_view_inner_iter_cat): Define.
2434 (split_view::_Base): Define.
2435 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
2436 in order to conditionally define iterator_category as per P2259.
2437 (split_view::_Outer_iter::iterator_category): Remove.
2438 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
2439 in order to conditionally define iterator_category as per P2259.
2440 (split_view::_Inner_iter::_S_iter_cat): Move to
2441 __split_view_inner_iter_cat.
2442 (split_view::_Inner_iter::iterator_category): Remove.
2443 (elements_view::_Base): Define.
2444 (elements_view::__iter_cat): Define.
2445 (elements_view::_Iterator): Derive from the above in order to
2446 conditionall define iterator_category as per P2259.
2447 (elements_view::_Iterator::_Base): Just alias
2448 elements_view::_Base.
2449 (elements_view::_Iterator::_S_iter_concept)
2450 (elements_view::_Iterator::iterator_concept): Define as per
2451 P2259.
2452 (elements_view::_Iterator::iterator_category): Remove.
2453 (elements_view::_Sentinel::_Base): Just alias
2454 elements_view::_Base.
2455 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
2456 Adjust constraints on iterator_traits<counted_iterator>.
2457 * testsuite/std/ranges/p2259.cc: New test.
2458
24592021-04-20 Jonathan Wakely <jwakely@redhat.com>
2460
2461 PR libstdc++/100146
2462 * include/std/charconv (__cpp_lib_to_chars): Define
2463 conditionally.
2464 * include/std/version (__cpp_lib_to_chars): Likewise..
2465 * testsuite/20_util/from_chars/4.cc: Only check feature test
2466 macro, not _GLIBCXX_HAVE_USELOCALE.
2467 * testsuite/20_util/from_chars/5.cc: Likewise.
2468 * testsuite/20_util/from_chars/6.cc: Likewise.
2469 * testsuite/20_util/to_chars/long_double.cc: Likewise.
2470
24712021-04-20 Jakub Jelinek <jakub@redhat.com>
2472
2473 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
2474 versions with _IEEE128_ substring are found, set ieee_version_found
2475 to true. Ignore missing symbols with _IEEE128_ in version name if
2476 !ieee_version_found. Use i->first as version_name instead of
2477 i->second.version_name if the latter is empty.
2478 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2479
6e81e015
GA
24802021-04-19 H.J. Lu <hjl.tools@gmail.com>
2481
2482 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
2483 Updated.
2484
da946b41
GA
24852021-04-17 Jakub Jelinek <jakub@redhat.com>
2486
2487 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
2488 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
2489
24902021-04-17 Jakub Jelinek <jakub@redhat.com>
2491
2492 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2493 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2494 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
2495 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2496 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2497 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2498
ee351f7f
GA
24992021-04-15 Jonathan Wakely <jwakely@redhat.com>
2500
2501 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
2502 add libatomic options for 32-bit sparc*-*-linux-gnu.
2503
25042021-04-15 Jonathan Wakely <jwakely@redhat.com>
2505
2506 PR libstdc++/96657
2507 * libsupc++/Makefile.am: Add atomicity.cc here.
2508 * src/c++98/Makefile.am: Remove it from here.
2509 * libsupc++/Makefile.in: Regenerate.
2510 * src/c++98/Makefile.in: Regenerate.
2511 * testsuite/18_support/exception_ptr/96657.cc: New test.
2512
6d0d35d5
GA
25132021-04-13 Jonathan Wakely <jwakely@redhat.com>
2514
2515 PR libstdc++/100060
2516 * include/std/bit: Only include <ext/numeric_traits.h> for
2517 hosted build, use <limits> otherwise.
2518
25192021-04-13 Jonathan Wakely <jwakely@redhat.com>
2520
2521 * doc/xml/manual/backwards_compatibility.xml: Remove porting
2522 notes for libg++ and libstdc++-v2, and bibliography.
2523 * doc/html/*: Regenerated.
2524
287ad814
GA
25252021-04-12 Jonathan Wakely <jwakely@redhat.com>
2526
2527 PR libstdc++/100044
2528 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
2529 Remove helper concept.
2530 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
2531 deduction guides, as per LWG 3404.
2532 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
2533 template argument deduction fails.
2534
25352021-04-12 Jonathan Wakely <jwakely@redhat.com>
2536
2537 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
2538 Adjust expected error for C++20 mode.
2539 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
2540 Likewise.
2541
25422021-04-12 Jonathan Wakely <jwakely@redhat.com>
2543
2544 PR libstdc++/99995
2545 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
2546 standard headers and XFAIL for effective-target c++20.
2547
3115aba8
GA
25482021-04-09 François Dumont <fdumont@gcc.gnu.org>
2549
2550 PR libstdc++/99402
2551 * include/debug/helper_functions.h (__can_advance(_InputIterator,
2552 const std::pair<_Diff, _Distance_precision>&, int)): New.
2553 (__can_advance(const _Safe_iterator<>&,
2554 const std::pair<_Diff, _Distance_precision>&, int)): New.
2555 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
2556 use latter.
2557 (__glibcxx_check_can_increment_range): Adapt to use latter.
2558 (__glibcxx_check_can_decrement_range): Likewise.
2559 * include/debug/safe_iterator.h
2560 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
2561 int)): New.
2562 (__can_advance(const _Safe_iterator<>&,
2563 const std::pair<_Diff, _Distance_precision>&, int)): New.
2564 * include/debug/safe_iterator.tcc
2565 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
2566 int)): New.
2567 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
2568 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
2569 __dp_sign_max_size.
2570 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
2571 (__copy_move_backward_a): Likewise.
2572 (__equal_aux): Likewise.
2573 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
2574 const std::pair<_Diff, _Distance_precision>&, int)): New.
2575 (__can_advance(const std::move_iterator<>&,
2576 const std::pair<_Diff, _Distance_precision>&, int)): New.
2577 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
2578
25792021-04-09 Jonathan Wakely <jwakely@redhat.com>
2580
2581 PR libstdc++/99985
2582 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
2583 to be a valid constexpr function in C++11.
2584 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
2585
25862021-04-09 Jonathan Wakely <jwakely@redhat.com>
2587
2588 * include/bits/fs_fwd.h: Fix doxygen group command.
2589 * include/bits/streambuf_iterator.h: Likewise.
2590 * include/bits/uses_allocator_args.h: Likewise.
2591 * include/std/memory: Likewise.
2592 * include/tr1/complex: Likewise.
2593
019a9220
GA
25942021-04-08 Jonathan Wakely <jwakely@redhat.com>
2595
2596 * include/bits/basic_string.h: Tweak doxygen comment.
2597
25982021-04-08 Patrick Palka <ppalka@redhat.com>
2599
2600 * include/std/ranges (__detail::find): Define.
2601 (split_view::_OuterIter::operator++): Apply proposed resolution
2602 of LWG 3505.
2603 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
2604
26052021-04-08 Patrick Palka <ppalka@redhat.com>
2606
2607 * include/std/ranges (__detail::find_if): Simplify.
2608 (__detail::find_if_not): Likewise.
2609 (__detail::min): Remove.
2610 (__detail::mismatch): Simplify.
2611 (take_view::size): Use std::min instead of __detail::min.
2612
26132021-04-08 Patrick Palka <ppalka@redhat.com>
2614
2615 * include/std/ranges (__detail::__returnable_element): New
2616 concept.
2617 (elements_view): Use this concept in its constraints. Add
2618 missing private access specifier.
2619 (elements_view::_S_get_element): Define as per LWG 3502.
2620 (elements_view::operator*, elements_view::operator[]): Use
2621 _S_get_element.
2622 (elements_view::operator++): Remove unnecessary constraint
2623 as per LWG 3492.
2624 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
2625
26262021-04-08 Jonathan Wakely <jwakely@redhat.com>
2627
2628 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
2629 out-of-memory error in log file.
2630 * doc/Makefile.in: Regenerate.
2631
26322021-04-08 Jonathan Wakely <jwakely@redhat.com>
2633
2634 * configure: Regenerate.
2635
26362021-04-08 Jonathan Wakely <jwakely@redhat.com>
2637
2638 * include/bits/random.h: Fix doxygen group commands.
2639 * include/bits/regex_constants.h: Likewise.
2640 * include/tr1/random.h: Likewise.
2641
26422021-04-08 Jonathan Wakely <jwakely@redhat.com>
2643
2644 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
2645 New function to determine noexcept-specifier for move
2646 constructors.
2647 (_Hashtable): Use _S_nothrow_move() on move constructors.
2648 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
2649 Correct static assertion message.
2650 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
2651 Likewise.
2652 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
2653 Likewise.
2654 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
2655 Likewise.
2656
26572021-04-08 Patrick Palka <ppalka@redhat.com>
2658
2659 PR libstdc++/98384
2660 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
2661 on targets without a large long double. XFAIL the execution on
2662 targets with a non-conforming printf.
2663
26642021-04-08 Patrick Palka <ppalka@redhat.com>
2665
2666 PR libstdc++/99433
2667 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
2668 (__adaptor::__adaptor_invocable): New concept.
2669 (__adaptor::__adaptor_partial_app_viable): New concept.
2670 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
2671 non-template base class.
2672 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
2673 class template.
2674 (__adaptor::_Partial): New class template that represents
2675 partial application of a range adaptor non-closure.
2676 (__adaptor::__pipe_invocable): New concept.
2677 (__adaptor::_Pipe): New class template.
2678 (__detail::__can_ref_view): New concept.
2679 (__detail::__can_subrange): New concept.
2680 (all): Replace the lambda here with ...
2681 (_All): ... this functor. Add appropriate constraints.
2682 (__detail::__can_filter_view): New concept.
2683 (filter, _Filter): As in all/_All.
2684 (__detail::__can_transform): New concept.
2685 (transform, _Transform): As in all/_All.
2686 (__detail::__can_take_view): New concept.
2687 (take, _Take): As in all/_All.
2688 (__detail::__can_take_while_view): New concept.
2689 (take_while, _TakeWhile): As in all/_All.
2690 (__detail::__can_drop_view): New concept.
2691 (drop, _Drop): As in all/_All.
2692 (__detail::__can_drop_while_view): New concept.
2693 (drop_while, _DropWhile): As in all/_All.
2694 (__detail::__can_join_view): New concept.
2695 (join, _Join): As in all/_All.
2696 (__detail::__can_split_view): New concept.
2697 (split, _Split): As in all/_All. Rename template parameter
2698 _Fp to _Pattern.
2699 (__detail::__already_common): New concept.
2700 (__detail::__can_common_view): New concept.
2701 (common, _Common): As in all/_All.
2702 (__detail::__can_reverse_view): New concept.
2703 (reverse, _Reverse): As in all/_All.
2704 (__detail::__can_elements_view): New concept.
2705 (elements, _Elements): As in all/_All.
2706 (keys, values): Adjust.
2707 * testsuite/std/ranges/adaptors/99433.cc: New test.
2708 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
2709 adding empty range adaptor closure objects to a pipeline doesn't
2710 increase the size of the pipeline.
2711 (test05): New test.
2712 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
2713 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
2714 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
2715 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
2716 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
2717 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
2718 * testsuite/std/ranges/adaptors/p2281.cc: New test.
2719 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
2720 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
2721 Adjust.
2722 (test09): New test.
2723 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
2724 expected error message.
2725 (test02): Likewise. Extend test.
2726 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
2727 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
2728 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
2729 New test.
2730
27312021-04-08 Jonathan Wakely <jwakely@redhat.com>
2732
2733 * include/std/string_view: Adjust Doxygen @file comment.
2734
27352021-04-08 Jonathan Wakely <jwakely@redhat.com>
2736
2737 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
2738 specialization to not match incomplete enum types. Use a
2739 requires-expression instead of instantiating is_convertible.
2740 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
2741 * testsuite/20_util/is_scoped_enum/value.cc: Check with
2742 incomplete types and opaque-enum-declarations.
2743
299859c2
GA
27442021-04-07 Jonathan Wakely <jwakely@redhat.com>
2745
2746 PR libstdc++/99805
2747 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
2748 non-const member on _M_pathname, to avoid copy-on-write.
2749 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
2750 Check construction from strings that might be shared.
2751
8cac6af6
GA
27522021-04-06 Jonathan Wakely <jwakely@redhat.com>
2753
2754 * include/bits/move.h (forward, move, move_if_noexcept)
2755 (addressof): Add _GLIBCXX_NODISCARD.
2756 * include/bits/ranges_cmp.h (identity::operator()): Add
2757 nodiscard attribute.
2758 * include/c_global/cstddef (to_integer): Likewise.
2759 * include/std/bit (bit_cast): Likewise.
2760 * include/std/utility (as_const, to_underlying): Likewise.
2761
27622021-04-06 Jonathan Wakely <jwakely@redhat.com>
2763
2764 * include/bits/move.h (forward): Change static_assert message
2765 to be unambiguous about what must be true.
2766 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
2767 * testsuite/20_util/forward/f_neg.cc: Likewise.
2768
27692021-04-06 Jonathan Wakely <jwakely@redhat.com>
2770
2771 * include/bits/alloc_traits.h: Use markdown for code font.
2772 * include/bits/basic_string.h: Fix @param names.
2773 * include/bits/max_size_type.h: Remove period after @file.
2774 * include/bits/regex.h: Fix duplicate @retval names, and rename.
2775 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
2776 group open to match existing group close.
2777 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
2778 open.
2779
8cac6af6
GA
27802021-04-06 Jonathan Wakely <jwakely@redhat.com>
2781
2782 * include/bits/atomic_base.h: Fix doxygen group close.
2783 * include/bits/basic_ios.h: Likewise.
2784 * include/bits/forward_list.h: Likewise.
2785 * include/bits/fs_dir.h: Likewise.
2786 * include/bits/fs_ops.h: Likewise.
2787 * include/bits/fs_path.h: Likewise.
2788 * include/bits/functional_hash.h: Likewise.
2789 * include/bits/gslice.h: Likewise.
2790 * include/bits/gslice_array.h: Likewise.
2791 * include/bits/hashtable_policy.h: Likewise.
2792 * include/bits/indirect_array.h: Likewise.
2793 * include/bits/locale_classes.h: Likewise.
2794 * include/bits/locale_facets.h: Likewise.
2795 * include/bits/locale_facets_nonio.h: Likewise.
2796 * include/bits/mask_array.h: Likewise.
2797 * include/bits/refwrap.h: Likewise.
2798 * include/bits/regex.h: Likewise.
2799 * include/bits/regex_automaton.h: Likewise.
2800 * include/bits/regex_compiler.h: Likewise.
2801 * include/bits/regex_constants.h: Likewise.
2802 * include/bits/regex_error.h: Likewise.
2803 * include/bits/regex_executor.h: Likewise.
2804 * include/bits/regex_scanner.h: Likewise.
2805 * include/bits/shared_ptr.h: Likewise.
2806 * include/bits/shared_ptr_atomic.h: Likewise.
2807 * include/bits/shared_ptr_base.h: Likewise.
2808 * include/bits/slice_array.h: Likewise.
2809 * include/bits/specfun.h: Likewise.
2810 * include/bits/std_function.h: Likewise.
2811 * include/bits/std_mutex.h: Likewise.
2812 * include/bits/stl_deque.h: Likewise.
2813 * include/bits/stl_iterator.h: Likewise.
2814 * include/bits/stl_iterator_base_types.h: Likewise.
2815 * include/bits/stl_map.h: Likewise.
2816 * include/bits/stl_multimap.h: Likewise.
2817 * include/bits/stl_multiset.h: Likewise.
2818 * include/bits/stl_numeric.h: Likewise.
2819 * include/bits/stl_pair.h: Likewise.
2820 * include/bits/stl_set.h: Likewise.
2821 * include/bits/stl_uninitialized.h: Likewise.
2822 * include/bits/stream_iterator.h: Likewise.
2823 * include/bits/streambuf_iterator.h: Likewise.
2824 * include/bits/unique_ptr.h: Likewise.
2825 * include/bits/unordered_map.h: Likewise.
2826 * include/bits/unordered_set.h: Likewise.
2827 * include/decimal/decimal: Likewise.
2828 * include/experimental/any: Likewise.
2829 * include/experimental/array: Likewise.
2830 * include/experimental/bits/fs_dir.h: Likewise.
2831 * include/experimental/bits/fs_fwd.h: Likewise.
2832 * include/experimental/bits/fs_ops.h: Likewise.
2833 * include/experimental/bits/fs_path.h: Likewise.
2834 * include/experimental/buffer: Likewise.
2835 * include/experimental/internet: Likewise.
2836 * include/experimental/optional: Likewise.
2837 * include/experimental/propagate_const: Likewise.
2838 * include/experimental/socket: Likewise.
2839 * include/ext/pb_ds/assoc_container.hpp: Likewise.
2840 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
2841 Likewise.
2842 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
2843 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
2844 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
2845 * include/ext/pb_ds/exception.hpp: Likewise.
2846 * include/ext/pb_ds/priority_queue.hpp: Likewise.
2847 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
2848 * include/ext/random: Likewise.
2849 * include/std/any: Likewise.
2850 * include/std/atomic: Likewise.
2851 * include/std/bitset: Likewise.
2852 * include/std/chrono: Likewise.
2853 * include/std/complex: Likewise.
2854 * include/std/condition_variable: Likewise.
2855 * include/std/fstream: Likewise.
2856 * include/std/future: Likewise.
2857 * include/std/iostream: Likewise.
2858 * include/std/istream: Likewise.
2859 * include/std/mutex: Likewise.
2860 * include/std/numeric: Likewise.
2861 * include/std/ostream: Likewise.
2862 * include/std/ratio: Likewise.
2863 * include/std/shared_mutex: Likewise.
2864 * include/std/stdexcept: Likewise.
2865 * include/std/streambuf: Likewise.
2866 * include/std/system_error: Likewise.
2867 * include/std/thread: Likewise.
2868 * include/std/valarray: Likewise.
2869 * include/std/variant: Likewise.
2870 * include/tr1/cmath: Likewise.
2871 * include/tr1/regex: Likewise.
2872 * include/tr2/dynamic_bitset: Likewise.
2873 * libsupc++/atomic_lockfree_defines.h: Likewise.
2874 * libsupc++/exception: Likewise.
2875 * libsupc++/exception.h: Likewise.
2876 * libsupc++/exception_ptr.h: Likewise.
2877 * libsupc++/nested_exception.h: Likewise.
2878
95d217ab
GA
28792021-03-31 Alexandre Oliva <oliva@adacore.com>
2880
2881 * testsuite/30_threads/future/members/poll.cc: Use faster
2882 after-ready call in the calibration loop.
2883
65374af2
GA
28842021-03-29 Jonathan Wakely <jwakely@redhat.com>
2885
2886 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
2887 * doc/html/manual/status.html: Regenerate.
2888
c4110112
GA
28892021-03-28 François Dumont <fdumont@gcc.gnu.org>
2890
2891 * include/debug/forward_list
2892 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
2893 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
2894 call to safe container allocator aware move constructor.
2895 * include/debug/vector (vector(vector&&, const allocator_type&)):
2896 Fix noexcept qualification.
2897 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
2898 Add allocator-extended move constructor noexceot qualification check.
2899 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
2900
651684b4
GA
29012021-03-26 Jonathan Wakely <jwakely@redhat.com>
2902
2903 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
2904 fallback is needed.
2905 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
2906 New helper functions and callback.
2907 (random_device::_M_init): Add 'prng' and 'all' enumerators.
2908 Replace switch with fallthrough with a series of 'if' statements.
2909 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
2910 checks fail.
2911 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
2912 token.
2913 (random_device::_M_getval): Check for callback unconditionally
2914 and always pass _M_file pointer.
2915 * testsuite/26_numerics/random/random_device/85494.cc: Remove
2916 effective-target check. Use new random_device_available helper.
2917 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
2918 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
2919 Remove effective-target check.
2920 * testsuite/26_numerics/random/random_device/cons/default.cc:
2921 Likewise.
2922 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
2923 new random_device_available helper. Test "prng" token.
2924 * testsuite/util/testsuite_random.h (random_device_available):
2925 New helper function.
2926
4493b1c1
GA
29272021-03-25 François Dumont <fdumont@gcc.gnu.org>
2928
2929 * include/debug/string
2930 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
2931 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
2932 (basic_string<>::erase): Adapt to take __const_iterator.
2933 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
2934 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
2935 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
2936 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
2937 (__gnu_debug::u16string, __gnu_debug::u32string): New.
2938 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
2939 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
2940 * testsuite/util/exception/safety.h
2941 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
2942 (insert_base<__gnu_debug::basic_string<>>): Likewise.
2943 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
2944 New partial specialization.
2945 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
2946 * testsuite/21_strings/basic_string/requirements/citerators.cc:
2947 Add test on __gnu_debug::string.
2948 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
2949 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
2950 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
2951 Likewise.
2952 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
2953 Likewise.
2954 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
2955 Likewise.
2956 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
2957 Likewise.
2958 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
2959 Likewise.
2960 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
2961 Likewise.
2962 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
2963 Likewise.
2964 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
2965
29662021-03-25 Jakub Jelinek <jakub@redhat.com>
2967
2968 PR c++/99672
2969 * testsuite/18_support/source_location/consteval.cc (main): Adjust
2970 expected column numbers.
2971 * testsuite/18_support/source_location/1.cc (main): Likewise.
2972
29732021-03-25 Jonathan Wakely <jwakely@redhat.com>
2974
2975 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
2976
29772021-03-25 Jonathan Wakely <jwakely@redhat.com>
2978
2979 * testsuite/util/exception/safety.h (setup_base::generate):
2980 Support seeding random engine.
2981 (erase_point, erase_range): Adjust range of random numbers to
2982 ensure dereferenceable iterators are used where required.
2983 (generation_prohibited::run): Do not try to erase from empty
2984 containers.
2985 * testsuite/util/testsuite_containergen.h (test_containers):
2986 Support seeding random engine.
2987
bf1f3168
GA
29882021-03-23 Jonathan Wakely <jwakely@redhat.com>
2989
2990 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
2991 line with a check that uses the const being/end overloads.
2992
29932021-03-23 Moritz Sichert <sichert@in.tum.de>
2994
2995 * include/std/ranges (reverse_view::begin, reverse_view::end):
2996 Qualify make_reverse_iterator calls to avoid ADL.
2997 * testsuite/std/ranges/adaptors/reverse.cc: Test that
2998 views::reverse works when make_reverse_iterator is defined
2999 in an associated namespace.
3000
30012021-03-23 Jonathan Wakely <jwakely@redhat.com>
3002
3003 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
3004 Do not define when compiling with Clang.
3005
8b744f46
GA
30062021-03-22 Jonathan Wakely <jwakely@redhat.com>
3007
3008 * include/std/string_view (basic_string_view(Range&&)): Define new
3009 constructor and deduction guide.
3010 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
3011 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
3012
30132021-03-22 Jonathan Wakely <jwakely@redhat.com>
3014
3015 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
3016 Add missing 'noexcept' as per LWG 2280.
3017 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
3018 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
3019 * testsuite/24_iterators/range_access/range_access.cc: Check for
3020 expected noexcept specifiers. Check result types of generic
3021 std::begin and std::end overloads.
3022 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
3023 Check for expected noexcept specifiers.
3024 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
3025 Likewise.
3026
5f256a70
GA
30272021-03-19 Jonathan Wakely <jwakely@redhat.com>
3028
3029 * include/std/type_traits (is_scoped_enum): Define.
3030 * include/std/version (__cpp_lib_is_scoped_enum): Define.
3031 * testsuite/20_util/is_scoped_enum/value.cc: New test.
3032 * testsuite/20_util/is_scoped_enum/version.cc: New test.
3033
bc212776
GA
30342021-03-16 Jonathan Wakely <jwakely@redhat.com>
3035
3036 PR libstdc++/99341
3037 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
3038 std::once_flag symbols.
3039 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
3040 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
3041 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
3042 Likewise.
3043 * config/abi/pre/gnu.ver: Likewise.
3044 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
3045 (struct __once_flag_compat): Remove.
3046 (_ZNSt9once_flag11_M_activateEv): Remove.
3047 (_ZNSt9once_flag9_M_finishEb): Remove.
3048
30492021-03-16 Jonathan Wakely <jwakely@redhat.com>
3050
3051 PR libstdc++/99341
3052 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
3053 Revert to pthread_once_t implementation.
3054 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
3055 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
3056 (struct __once_flag_compat): New type matching the reverted
3057 implementation of once_flag using futexes.
3058 (once_flag::_M_activate): Remove, replace with ...
3059 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
3060 (once_flag::_M_finish): Remove, replace with ...
3061 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
3062 * testsuite/30_threads/call_once/66146.cc: Removed.
3063
3c5b6d24
GA
30642021-03-15 Iain Sandoe <iain@sandoe.co.uk>
3065
3066 * testsuite/17_intro/names.cc: Exclude j from the list
3067 of test symbols for Darwin.
3068
30692021-03-15 Iain Sandoe <iain@sandoe.co.uk>
3070
3071 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
3072 to_chars and from_chars for long double.
3073
30742021-03-15 Patrick Palka <ppalka@redhat.com>
3075
3076 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
3077 Fix formatting.
3078 (__max_size_type::operator++): Define.
3079 (__max_size_type::operator--): Likewise.
3080 (__max_size_type::operator<=>): Conditionally define (in place
3081 of the other comparison operators).
3082 (__max_diff_type::operator _Tp): Fix formatting.
3083 (__max_diff_type::operator++): Define.
3084 (__max_diff_type::operator--): Likewise.
3085 (__max_diff_type::operator<=>): Conditionally define (in place
3086 of the other comparison operators).
3087 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
3088 these operator overloads.
3089
c2be8205
CT
30902021-03-15 Caroline Tice <cmtice@google.com>
3091
3092 PR libstdc++/99172
3093 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
3094 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
3095 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
3096 filtered out.
3097 * src/Makefile.in: Regenerate.
3098
48ff383f
GA
30992021-03-11 Patrick Palka <ppalka@redhat.com>
3100
3101 * src/c++17/floating_to_chars.cc: Simplify the file as if
3102 __SIZEOF_INT128__ is always defined.
3103 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
3104 a base-10 to_chars overload for the uint128_t class type.
3105 * src/c++17/uint128_t.h: New file.
3106 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
3107 execution FAIL on targets that have a large long double type
3108 but lack __int128.
3109
31102021-03-11 Patrick Palka <ppalka@redhat.com>
3111
3112 * src/c++17/ryu/LOCAL_PATCHES: Update.
3113 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
3114 * src/c++17/ryu/generic_128.h: Likewise.
3115 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
3116 Use uint128_t instead of __uint128_t.
3117 (generic_binary_to_decimal): Likewise.
3118
31192021-03-11 Patrick Palka <ppalka@redhat.com>
3120
3121 * src/c++17/ryu/LOCAL_PATCHES: New file.
3122
31232021-03-11 Patrick Palka <ppalka@redhat.com>
3124
3125 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
3126 defined alias of unsigned __int128.
3127 (floating_type_traits_binary128::mantissa_t): Use uint128_t
3128 instead of unsigned __int128.
3129 (floating_type_traits<long double>::mantissa_t)
3130 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
3131 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
3132 and uint32_t explicit. Simplify the extraction of mantissa,
3133 exponent and sign bit.
3134
31352021-03-11 Jonathan Wakely <jwakely@redhat.com>
3136
3137 * include/std/barrier (barrier::arrival_token): New move-only
3138 class that encapsulates the underlying token value.
3139
31402021-03-11 Jonathan Wakely <jwakely@redhat.com>
3141
3142 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
3143 instead of unqualified() method.
3144
31452021-03-11 Jonathan Wakely <jwakely@redhat.com>
3146
3147 PR libstdc++/99537
3148 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
3149 Use acq_rel memory ordering.
3150
31512021-03-11 Jonathan Wakely <jwakely@redhat.com>
3152
864caa15 3153 PR libstdc++/99533
48ff383f
GA
3154 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
3155 helper function to check for permission denied errors.
3156 * src/filesystem/dir.cc (recursive_directory_iterator):
3157 Likewise.
3158 * src/filesystem/dir-common.h (is_permission_denied_error): New
3159 helper function.
3160
31612021-03-11 Jonathan Wakely <jwakely@redhat.com>
3162
3163 PR libstdc++/99536
3164 * include/bits/random.h (normal_distribution): Use
3165 default-initializer for _M_saved and _M_saved_available.
3166
e9800852
GA
31672021-03-10 John David Anglin <danglin@gcc.gnu.org>
3168
3169 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
3170 link with libatomic.
3171 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
3172 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
3173 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
3174 * testsuite/30_threads/barrier/arrive.cc: Likewise.
3175 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
3176 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
3177 * testsuite/30_threads/barrier/completion.cc: Likewise.
3178 * testsuite/30_threads/latch/3.cc: Likewise.
3179 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
3180 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
3181 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
3182
31832021-03-10 Jonathan Wakely <jwakely@redhat.com>
3184
3185 PR libstdc++/99413
3186 * include/bits/align.h: Include debug/assertions.h.
3187 * include/bits/codecvt.h: Include bits/c++config.h.
3188 * include/bits/enable_special_members.h: Likewise.
3189 * include/bits/erase_if.h: Likewise.
3190 * include/bits/functional_hash.h: Include <type_traits>.
3191 * include/bits/invoke.h: Include bits/move.h.
3192 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
3193 * include/bits/parse_numbers.h: Include <type_traits>.
3194 * include/bits/predefined_ops.h: Include bits/c++config.h.
3195 * include/bits/range_access.h: Include bits/stl_iterator.h.
3196 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
3197 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
3198 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
3199 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
3200 * include/bits/unique_lock.h: Include bits/std_mutex.h.
3201 * include/debug/assertions.h: Include bits/c++config.h.
3202
32032021-03-10 Jonathan Wakely <jwakely@redhat.com>
3204
3205 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
3206 (ranges::equal_to, ranges::not_equal_to): Do not constrain
3207 with __eq_builtin_ptr_cmp.
3208 (ranges::less, ranges::greater, ranges::less_equal)
3209 (ranges::greater_equal): Do not constrain with
3210 __less_builtin_ptr_cmp.
3211 * libsupc++/compare (compare_three_way): Do not constrain with
3212 __3way_builtin_ptr_cmp.
3213 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
3214 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
3215 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
3216
32172021-03-10 Jonathan Wakely <jwakely@redhat.com>
3218
3219 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
3220 C++20 calendar types.
3221
0ad6a2e2
GA
32222021-03-06 Jakub Jelinek <jakub@redhat.com>
3223
3224 PR libstdc++/99396
3225 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
3226 two _Nd which the compiler can pattern match the rotates.
3227
67f10d28
GA
32282021-03-04 Jonathan Wakely <jwakely@redhat.com>
3229
3230 PR libstdc++/99382
3231 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
3232 Make storage larger than required. Verify no write to the last
3233 element.
3234 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
3235 Likewise.
3236
f3641ac7
GA
32372021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3238
3239 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3240 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3241 Likewise.
3242 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3243 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3244 Likewise.
3245
32462021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3247
3248 * include/experimental/bits/simd.h: Replace reserved _X, _B by
3249 _Xp, _Bp.
3250 * include/experimental/bits/simd_builtin.h: Likewise.
3251 * include/experimental/bits/simd_x86.h: Likewise.
3252
ec9dc4fa
GA
32532021-02-27 Jonathan Wakely <jwakely@redhat.com>
3254
3255 PR libstdc++/99301
3256 * include/std/chrono (year_month_day::_M_days_since_epoch()):
3257 Convert chrono::month and chrono::day to unsigned before
3258 converting to uint32_t.
3259
daa68844
GA
32602021-02-25 Jonathan Wakely <jwakely@redhat.com>
3261
3262 * include/std/chrono (year_month_day::_S_from_days): Perform
3263 all calculations with type uint32_t.
3264
32652021-02-25 Jonathan Wakely <jwakely@redhat.com>
3266
3267 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
3268 * doc/html/manual/abi.html: Regenerate.
3269
32702021-02-25 Jonathan Wakely <jwakely@redhat.com>
3271
3272 PR libstdc++/99270
3273 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
3274 FILE instead of FILE.
3275
32762021-02-25 Andreas Schwab <schwab@suse.de>
3277
3278 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3279 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
3280 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3281 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
3282
32832021-02-25 Jonathan Wakely <jwakely@redhat.com>
3284
3285 PR libstdc++/99265
3286 * include/std/chrono (year_month_day::_S_from_days): Cast long
3287 to int explicitly.
3288
32892021-02-25 Jonathan Wakely <jwakely@redhat.com>
3290
3291 * include/std/utility (to_underlying): Define.
3292 * include/std/version (__cpp_lib_to_underlying): Define.
3293 * testsuite/20_util/to_underlying/1.cc: New test.
3294 * testsuite/20_util/to_underlying/version.cc: New test.
3295
4028d01a
GA
32962021-02-24 Jonathan Wakely <jwakely@redhat.com>
3297
3298 PR libstdc++/99261
3299 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
3300 before value to be printed.
3301
33022021-02-24 Patrick Palka <ppalka@redhat.com>
3303
3304 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
3305 Relax the condition that guards the printf code path to accept
3306 F128_type as well as long double.
3307
33082021-02-24 Cassio Neri <cassio.neri@gmail.com>
3309
3310 * include/std/chrono (year_month_day_last:day): New
3311 implementation.
3312
33132021-02-24 Cassio Neri <cassio.neri@gmail.com>
3314
3315 * include/std/chrono (year::is_leap): New implementation.
3316 * testsuite/std/time/year/2.cc: New test.
3317
33182021-02-24 Cassio Neri <cassio.neri@gmail.com>
3319
3320 * include/std/chrono (year_month_day::_M_days_since_epoch):
3321 New implementation.
3322 * testsuite/std/time/year_month_day/4.cc: New test.
3323
33242021-02-24 Cassio Neri <cassio.neri@gmail.com>
3325
3326 * include/std/chrono (year_month_day::_S_from_days): New
3327 implementation.
3328 * testsuite/std/time/year_month_day/3.cc: New test.
3329
33302021-02-24 Patrick Palka <ppalka@redhat.com>
3331
3332 PR libstdc++/98384
3333 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
3334 (test01): Simplify verifying the nearby values by using a
3335 2-iteration loop and a dedicated output buffer to check that the
3336 nearby values are different. Factor out the printf-based
3337 verification into a local function, and check that the leading
3338 hex digits agree before comparing to the output of printf. Also
3339 verify the output by round-tripping it through from_chars.
3340
33412021-02-24 Jonathan Wakely <jwakely@redhat.com>
3342
3343 PR libstdc++/98389
3344 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
3345 symbols for long double arguments mangled as 'g'.
3346 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
3347 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
3348 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
3349 Use -mabi=ibmlongdouble for floating_to_chars.cc.
3350 * src/c++17/Makefile.in: Regenerate.
3351 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
3352 New type defining type traits of IEEE binary128 format.
3353 (floating_type_traits<__float128>): Define specialization.
3354 (floating_type_traits<long double>): Define in terms of
3355 floating_type_traits_binary128 when appropriate.
3356 (floating_to_shortest_scientific): Handle __float128.
3357 (sprintf_ld): New function template for printing a long double
3358 or __ieee128 value using sprintf.
3359 (__floating_to_chars_shortest, __floating_to_chars_precision):
3360 Use sprintf_ld.
3361 (to_chars): Define overloads for __float128.
3362
33632021-02-24 Jonathan Wakely <jwakely@redhat.com>
3364
3365 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
3366
71e24b06
GA
33672021-02-23 Martin Sebor <msebor@redhat.com>
3368
3369 PR c++/99074
3370 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
3371 first argument is null.
3372
33732021-02-23 Jakub Jelinek <jakub@redhat.com>
3374
3375 PR libstdc++/99181
3376 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
3377 test.
3378
33792021-02-23 Jakub Jelinek <jakub@redhat.com>
3380
3381 PR libstdc++/99181
3382 * include/bits/char_traits.h (char_traits<char>::compare): For
3383 constexpr evaluation don't call
3384 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
3385 directly.
3386
33872021-02-23 Jakub Jelinek <jakub@redhat.com>
3388
3389 PR libstdc++/97549
3390 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
3391
33922021-02-23 Patrick Palka <ppalka@redhat.com>
3393
3394 PR libstdc++/98384
3395 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
3396 the high- and low-order parts from an IBM long double value
3397 in an endian-agnostic way.
3398
50352c6c
GA
33992021-02-19 Jonathan Wakely <jwakely@redhat.com>
3400
3401 * include/bits/atomic_wait.h (__thread_relax()): Call
3402 __thread_yield() not __gthread_yield().
3403
de594739
GA
34042021-02-15 Jonathan Wakely <jwakely@redhat.com>
3405
3406 * include/bits/atomic_wait.h (__thread_yield()): Check
3407 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
3408 (__thread_relax()): Use __thread_yield() instead of repeating
3409 the preprocessor checks for __gthread_yield.
3410
34112021-02-15 Jonathan Wakely <jwakely@redhat.com>
3412
3413 * include/std/mutex (once_flag::_M_activate()): Add explicit
3414 return statement for passive case.
3415 (once_flag::_M_finish(bool)): Use reserved name for parameter.
3416
c5ae38e8
GA
34172021-02-14 Jonathan Wakely <jwakely@redhat.com>
3418
3419 PR libstdc++/99096
3420 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
3421
fab095da
GA
34222021-02-12 Jonathan Wakely <jwakely@redhat.com>
3423
3424 PR libstdc++/88881
3425 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
3426
34272021-02-12 Jonathan Wakely <jwakely@redhat.com>
3428
3429 * doc/xml/manual/status_cxx2014.xml: Document implementation
3430 specific properties of std::experimental::filesystem::rename.
3431 * doc/xml/manual/status_cxx2017.xml: Document implementation
3432 specific properties of std::filesystem::rename.
3433 * doc/html/*: Regenerate.
3434 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
3435 for directories on Windows.
3436 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
3437 MoveFileExW on Windows.
3438 * testsuite/27_io/filesystem/operations/rename.cc: New test.
3439 * testsuite/experimental/filesystem/operations/rename.cc: New test.
3440
34412021-02-12 Jonathan Wakely <jwakely@redhat.com>
3442
3443 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
3444 random number to the path.
3445
34462021-02-12 Jonathan Wakely <jwakely@redhat.com>
3447
3448 * include/experimental/internet (address_v6::to_string): Include
3449 scope ID in string.
3450 * testsuite/experimental/net/internet/address/v6/members.cc:
3451 Test to_string() results.
3452
34532021-02-12 Jonathan Wakely <jwakely@redhat.com>
3454
3455 * include/experimental/internet (address_v6::any): Avoid using
3456 memcpy in constexpr function.
3457 (address_v6::loopback): Likewise.
3458 (make_address_v6): Fix missing return statements on error paths.
3459 * include/experimental/io_context: Avoid -Wdangling-else
3460 warning.
3461 * testsuite/experimental/net/internet/address/v4/members.cc:
3462 Remove unused variables.
3463 * testsuite/experimental/net/internet/address/v6/members.cc:
3464 New test.
3465
34662021-02-12 Jonathan Wakely <jwakely@redhat.com>
3467
3468 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
3469 Add unused attribute to parameter.
3470 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
3471 Likewise.
3472
34732021-02-12 Jonathan Wakely <jwakely@redhat.com>
3474
3475 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
3476 if -fno-rtti is used.
3477 * testsuite/30_threads/async/forced_unwind.cc: Expect test
3478 to abort if -fno-rtti is used.
3479
34802021-02-12 Jonathan Wakely <jwakely@redhat.com>
3481
3482 * testsuite/util/testsuite_allocator.h (memory_resource):
3483 Remove requirement for RTTI and exceptions to be enabled.
3484
34852021-02-12 Jonathan Wakely <jwakely@redhat.com>
3486
3487 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
3488 static_cast when RTTI is disabled.
3489 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
3490 Likewise.
3491 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
3492 Likewise.
3493 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
3494 Likewise.
3495 * testsuite/27_io/basic_stringstream/str/char/2.cc:
3496 Likewise.
3497 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
3498 Likewise.
3499
35002021-02-12 Jonathan Wakely <jwakely@redhat.com>
3501
3502 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
3503 as unused and only use dynamic_cast when RTTI is enabled.
3504
35052021-02-12 Jonathan Wakely <jwakely@redhat.com>
3506
3507 PR libstdc++/99077
3508 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
3509 Change int parameter to error_code, to match std::ios_failure.
3510 (__throw_ios_failure(const char*, int)): Construct error_code
3511 from int parameter.
3512
0c5cdb31
GA
35132021-02-11 Jonathan Wakely <jwakely@redhat.com>
3514
3515 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
3516 new macro.
3517 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
3518 macro instead of _GLIBCXX_EH_PTR_COMPAT.
3519 (operator==): Likewise.
3520
35212021-02-11 Jonathan Wakely <jwakely@redhat.com>
3522
3523 PR libstdc++/99058
3524 * doc/xml/manual/status_cxx2011.xml: Document when support
3525 became stable.
3526 * doc/xml/manual/status_cxx2014.xml: Likewise.
3527 * doc/xml/manual/status_cxx2017.xml: Likewise.
3528 * doc/html/manual/status.html: Regenerate.
3529
4b37c3ea
GA
35302021-02-10 Jonathan Wakely <jwakely@redhat.com>
3531
3532 PR libstdc++/88881
3533 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
3534
35352021-02-10 Jonathan Wakely <jwakely@redhat.com>
3536
3537 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
3538 (fs::remove): Use std::system_category() for error codes from
3539 GetLastError().
3540 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
3541 Likewise.
3542
35432021-02-10 Jonathan Wakely <jwakely@redhat.com>
3544
3545 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
3546 in __MINGW32__ macro name.
3547 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
3548 * testsuite/27_io/filesystem/path/generation/proximate.cc:
3549 Likewise.
3550 * testsuite/27_io/filesystem/path/generation/relative.cc:
3551 Likewise.
3552 * testsuite/util/testsuite_fs.h: Likewise.
3553
0a91b73e
GA
35542021-02-09 François Dumont <fdumont@gcc.gnu.org>
3555
3556 * include/bits/stl_tree.h
3557 (__has_is_transparent, __has_is_transparent_t): Move...
3558 * include/bits/stl_function.h: ...here.
3559 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
3560 (_Hashtable_base<>::_M_equals_tr): New.
3561 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
3562 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
3563 heterogeneous lookup.
3564 (_Hashtable<>::_M_find_before_node_tr): New.
3565 (_Hashtable<>::_M_find_node_tr): New.
3566 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
3567 unordered_map::contains<>, unordered_map::equal_range<>): New member function
3568 templates to perform heterogeneous lookup.
3569 (unordered_multimap::find<>, unordered_multimap::count<>,
3570 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
3571 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
3572 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
3573 (unordered_multiset::find<>, unordered_multiset::count<>,
3574 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
3575 * include/debug/unordered_map
3576 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
3577 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
3578 * include/debug/unordered_set
3579 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
3580 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
3581 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
3582 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
3583 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
3584 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
3585
35862021-02-09 François Dumont <fdumont@gcc.gnu.org>
3587
3588 * include/bits/stl_deque.h
3589 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
3590 a null pointer test.
3591
35922021-02-09 Jonathan Wakely <jwakely@redhat.com>
3593
3594 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
3595 test directory after making it writable again.
3596 * testsuite/experimental/filesystem/operations/remove_all.cc:
3597 Likewise.
3598
35992021-02-09 Jonathan Wakely <jwakely@redhat.com>
3600
3601 PR libstdc++/99021
3602 * include/std/coroutine (coroutine_handle<P>::from_address): Add
3603 noexcept.
3604
36052021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
3606
3607 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
3608 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
3609
36102021-02-09 Jakub Jelinek <jakub@redhat.com>
3611
3612 PR middle-end/98465
3613 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
3614 points to the characters moved by earlier _S_move, compute the source
3615 address using expression based on the __p pointer rather than __s
3616 pointer.
3617
9faaa807
GA
36182021-02-03 Jonathan Wakely <jwakely@redhat.com>
3619
3620 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
3621 Add comparison with same category and different values.
3622 * testsuite/19_diagnostics/error_code/operators/less.cc:
3623 Likewise. Fix comparison involving different categories.
3624 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
3625 Likewise.
3626 * testsuite/19_diagnostics/error_condition/operators/less.cc:
3627 Add comment.
3628 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
3629 Likewise.
3630
36312021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
3632
3633 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
3634 calls with a single vaddv for aarch64.
3635
36362021-02-03 Matthias Kretz <kretz@kde.org>
3637
3638 * testsuite/Makefile.am: Warn about the workaround. Add
3639 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
3640 Improve initial user feedback from make check-simd.
3641 * testsuite/Makefile.in: Regenerated.
3642
36432021-02-03 Matthias Kretz <kretz@kde.org>
3644
3645 * include/experimental/bits/simd.h: Add __detail::_Minimum and
3646 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
3647 Add hmin and hmax overloads for simd and const_where_expression.
3648 * include/experimental/bits/simd_scalar.h
3649 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
3650 parameter const-ref to allow calling _S_reduce with an rvalue.
3651 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
3652 hmin and hmax. Since the compiler statically determined that all
3653 tests pass, repeat the test after a call to make_value_unknown.
3654
36552021-02-03 Matthias Kretz <kretz@kde.org>
3656
3657 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
3658 instruction pointer data member. Ensure that the `if (m_failed)`
3659 branch is always inlined into the calling code. The body of the
3660 conditional can still be a function call. Move the get_ip call
3661 into the verify ctor to simplify the ctor calls.
3662 (COMPARE): Don't mention the use of all_of for reduction of a
3663 simd_mask. It only distracts from the real issue.
3664
36652021-02-03 Matthias Kretz <kretz@kde.org>
3666
3667 * testsuite/experimental/simd/driver.sh: Abstract reading test
3668 options into read_src_option function. Read skip, only,
3669 expensive, and xfail via read_src_option. Add timeout and
3670 timeout-factor options and adjust timeout variable accordingly.
3671 * testsuite/experimental/simd/tests/loadstore.cc: Set
3672 timeout-factor 2.
3673
36742021-02-03 Matthias Kretz <kretz@kde.org>
3675
3676 * testsuite/experimental/simd/driver.sh: When handling the pipe
3677 to log (and on verbose to stdout) count the lines. If it exceeds
3678 1000 log the issue and exit 125, which is then handled as a
3679 failure.
3680
36812021-02-03 Matthias Kretz <kretz@kde.org>
3682
3683 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
3684 markup for long double on powerpc64*.
3685
36862021-02-03 Matthias Kretz <kretz@kde.org>
3687
3688 * include/experimental/bits/simd.h: Add __have_power10vec
3689 conditional on _ARCH_PWR10.
3690 * include/experimental/bits/simd_builtin.h: Forward declare
3691 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
3692 defined.
3693 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
3694 _SuperImpl for optimizations and correctness.
3695 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
3696 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
3697 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
3698 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
3699
37002021-02-03 Matthias Kretz <kretz@kde.org>
3701
3702 * testsuite/experimental/simd/driver.sh: Remove executable on
3703 SIGINT. Process compiler and test executable output: In verbose
3704 mode print messages immediately, limited to 1000 lines and
3705 breaking long lines to below $COLUMNS (or 1024 if not set).
3706 Communicating the exit status of the compiler / test with the
3707 necessary pipe is done via a message through stdout/-in.
3708
37092021-02-03 Matthias Kretz <kretz@kde.org>
3710
3711 * testsuite/Makefile.am: Ensure .simd.summary is empty before
3712 collecting a new summary.
3713 * testsuite/Makefile.in: Regenerate.
3714
37152021-02-03 Matthias Kretz <kretz@kde.org>
3716
3717 * testsuite/experimental/simd/generate_makefile.sh: Use
3718 different variables internally than documented for user
3719 overrides. This makes internal append/prepend work as intended.
3720
37212021-02-03 Matthias Kretz <kretz@kde.org>
3722
3723 * testsuite/experimental/simd/driver.sh (verify_test): Print
3724 test output on run xfail. Do not repeat lines from the log that
3725 were already printed on stdout.
3726 (test_selector): Make the compiler flags pattern usable as a
3727 substring selector.
3728 (toplevel): Trap on SIGINT and remove the log and sum files.
3729 Call timout with --foreground to quickly terminate on SIGINT.
3730 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
3731 targets via target patterns. Default DRIVEROPTS to -v for run
3732 targets. Remove log and sum files after completion of the run
3733 target (so that it's always recompiled).
3734 Place help text into text file for reasonable 'make help'
3735 performance.
3736
37372021-02-03 Matthias Kretz <kretz@kde.org>
3738
3739 * include/experimental/bits/simd.h: Remove unnecessary static
3740 assertion. Allow sizeof(8) integer __intrinsic_type to enable
3741 the necessary mask type.
3742
37432021-02-03 Matthias Kretz <kretz@kde.org>
3744
3745 * include/experimental/bits/simd.h: Let __intrinsic_type<long
3746 double, N> be valid if sizeof(long double) == sizeof(double) and
3747 use a __vector double as member type.
3748
37492021-02-03 Matthias Kretz <kretz@kde.org>
3750
3751 * include/experimental/bits/simd.h (__is_intrinsic_type): New
3752 internal type trait. Alias for __is_vector_type on x86.
3753 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
3754 __vector_type.
3755 (__intrin_bitcast): Allow casting to & from vector & intrinsic
3756 types.
3757 (__intrinsic_type): Explicitly specialize for NEON intrinsic
3758 vector types.
3759
37602021-02-03 Matthias Kretz <kretz@kde.org>
3761
3762 * testsuite/experimental/simd/driver.sh: Implement skip, only,
3763 expensive, and xfail markers. They can select on type, ABI tag
3764 subset number, target-triplet, and compiler flags.
3765 * testsuite/experimental/simd/generate_makefile.sh: The summary
3766 now includes lines for unexpected passes and expected failures.
3767 If the skip or only markers are only conditional on the type, do
3768 not generate rules for those types.
3769 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
3770 for ABI tag subsets 1-9.
3771 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
3772 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
3773 * testsuite/experimental/simd/tests/casts.cc: Ditto.
3774 * testsuite/experimental/simd/tests/generator.cc: Ditto.
3775 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
3776 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
3777 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
3778 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
3779 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
3780 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
3781 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
3782 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
3783 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
3784 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
3785 * testsuite/experimental/simd/tests/operators.cc: Ditto.
3786 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
3787 * testsuite/experimental/simd/tests/simd.cc: Ditto.
3788 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
3789 * testsuite/experimental/simd/tests/splits.cc: Ditto.
3790 * testsuite/experimental/simd/tests/where.cc: Ditto.
3791 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
3792 addition replace "test only floattypes" marker by unconditional
3793 "float|double|ldouble" only marker.
3794 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
3795 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
3796 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
3797 Ditto.
3798 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
3799 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
3800 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
3801 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
3802 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
3803 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
3804 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
3805 addition, xfail on run because the reference data is missing.
3806
548b75d8
GA
38072021-02-02 Jonathan Wakely <jwakely@redhat.com>
3808
3809 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
3810 * doc/xml/manual/status_cxx2014.xml: Likewise.
3811 * doc/xml/manual/status_cxx2017.xml: Likewise.
3812 * doc/html/manual/status.html: Regenerate.
3813
f7884fb1
GA
38142021-02-01 François Dumont <fdumont@gcc.gnu.org>
3815
3816 PR libstdc++/70303
3817 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
3818 Return 0 if both iterators are value-initialized.
3819 * testsuite/23_containers/deque/70303.cc: New test.
3820 * testsuite/23_containers/vector/70303.cc: New test.
3821
38222021-02-01 Jonathan Wakely <jwakely@redhat.com>
3823
3824 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
3825 status.
3826 * doc/xml/manual/status_cxx2014.xml: Likewise.
3827 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
3828 std::from_chars and std::to_chars status. Fix formatting.
3829 * doc/html/manual/status.html: Regenerate.
3830
85d04a2e
GA
38312021-01-28 Jonathan Wakely <jwakely@redhat.com>
3832
3833 * include/experimental/bits/numeric_traits.h: Update copyright
3834 dates.
3835 * include/experimental/bits/simd.h: Likewise.
3836 * include/experimental/bits/simd_builtin.h: Likewise.
3837 * include/experimental/bits/simd_converter.h: Likewise.
3838 * include/experimental/bits/simd_detail.h: Likewise.
3839 * include/experimental/bits/simd_fixed_size.h: Likewise.
3840 * include/experimental/bits/simd_math.h: Likewise.
3841 * include/experimental/bits/simd_neon.h: Likewise.
3842 * include/experimental/bits/simd_ppc.h: Likewise.
3843 * include/experimental/bits/simd_scalar.h: Likewise.
3844 * include/experimental/bits/simd_x86.h: Likewise.
3845 * include/experimental/bits/simd_x86_conversions.h: Likewise.
3846 * include/experimental/simd: Likewise.
3847 * testsuite/experimental/simd/*: Likewise.
3848
aa69f0a8
GA
38492021-01-27 Jonathan Wakely <jwakely@redhat.com>
3850
3851 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
3852 * doc/html/*: Regenerate.
3853
38542021-01-27 Jonathan Wakely <jwakely@redhat.com>
3855
3856 * testsuite/experimental/simd/generate_makefile.sh: Use printf
3857 instead of echo when printing escape characters.
3858
38592021-01-27 Matthias Kretz <kretz@kde.org>
3860
3861 * scripts/check_simd: New file. This script is called from the
3862 the check-simd target. It determines a set of compiler flags and
3863 simulator setups for calling generate_makefile.sh and passes the
3864 information back to the check-simd target, which recurses to the
3865 generated Makefiles.
3866 * scripts/create_testsuite_files: Remove files below simd/tests/
3867 from testsuite_files and place them in testsuite_files_simd.
3868 * testsuite/Makefile.am: Add testsuite_files_simd. Add
3869 check-simd target.
3870 * testsuite/Makefile.in: Regenerate.
3871 * testsuite/experimental/simd/driver.sh: New file. This script
3872 compiles and runs a given simd test, logging its output and
3873 status. It uses the timeout command to implement compile and
3874 test timeouts.
3875 * testsuite/experimental/simd/generate_makefile.sh: New file.
3876 This script generates a Makefile which uses driver.sh to compile
3877 and run the tests and collect the logs into a single log file.
3878 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
3879 abs(simd).
3880 * testsuite/experimental/simd/tests/algorithms.cc: New file.
3881 Tests min/max(simd, simd).
3882 * testsuite/experimental/simd/tests/bits/conversions.h: New
3883 file. Contains functions to support tests involving conversions.
3884 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
3885 Support functions make_mask and make_vec.
3886 * testsuite/experimental/simd/tests/bits/mathreference.h: New
3887 file. Support functions to supply precomputed math function
3888 reference data.
3889 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
3890 file. Support code for SFINAE testing.
3891 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
3892 * testsuite/experimental/simd/tests/bits/test_values.h: New
3893 file. Test functions to easily drive a test with simd objects
3894 initialized from a given list of values and a range of random
3895 values.
3896 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
3897 Support code to determine the ULP distance of simd objects.
3898 * testsuite/experimental/simd/tests/bits/verify.h: New file.
3899 Test framework for COMPARE'ing simd objects and instantiating
3900 the test templates with value_type and ABI tag.
3901 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
3902 simd broadcasts.
3903 * testsuite/experimental/simd/tests/casts.cc: New file. Test
3904 simd casts.
3905 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
3906 Test floating-point classification functions.
3907 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
3908 frexp(simd).
3909 * testsuite/experimental/simd/tests/generator.cc: New file. Test
3910 simd generator constructor.
3911 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
3912 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
3913 * testsuite/experimental/simd/tests/integer_operators.cc: New
3914 file. Test integer operators.
3915 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
3916 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
3917 modf(simd).
3918 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
3919 (converting) simd loads and stores.
3920 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
3921 log*(simd).
3922 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
3923 Test simd_mask broadcasts.
3924 * testsuite/experimental/simd/tests/mask_conversions.cc: New
3925 file. Test simd_mask conversions.
3926 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
3927 file. Test simd_mask implicit conversions.
3928 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
3929 Test simd_mask loads and stores.
3930 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
3931 file. Test simd_mask operators convert as specified.
3932 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
3933 Test simd_mask compares, subscripts, and negation.
3934 * testsuite/experimental/simd/tests/mask_reductions.cc: New
3935 file. Test simd_mask reductions.
3936 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
3937 1-arg math functions on simd.
3938 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
3939 2-arg math functions on simd.
3940 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
3941 Test implicit conversions on simd binary operators behave as
3942 specified.
3943 * testsuite/experimental/simd/tests/operators.cc: New file. Test
3944 simd compares, subscripts, not, unary minus, plus, minus,
3945 multiplies, divides, increment, and decrement.
3946 * testsuite/experimental/simd/tests/reductions.cc: New file.
3947 Test reduce(simd).
3948 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
3949 remqo(simd).
3950 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
3951 sanity checks of simd types.
3952 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
3953 sin(simd) and cos(simd).
3954 * testsuite/experimental/simd/tests/split_concat.cc: New file.
3955 Test split(simd) and concat(simd, simd).
3956 * testsuite/experimental/simd/tests/splits.cc: New file. Test
3957 split(simd_mask).
3958 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
3959 Test remaining trigonometric functions on simd.
3960 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
3961 file. Test trunc(simd), ceil(simd), and floor(simd).
3962 * testsuite/experimental/simd/tests/where.cc: New file. Test
3963 masked operations using where.
3964
39652021-01-27 Matthias Kretz <kretz@kde.org>
3966
3967 * doc/xml/manual/status_cxx2017.xml: Add implementation status
3968 of the Parallelism TS 2. Document implementation-defined types
3969 and behavior.
3970 * include/Makefile.am: Add new headers.
3971 * include/Makefile.in: Regenerate.
3972 * include/experimental/simd: New file. New header for
3973 Parallelism TS 2.
3974 * include/experimental/bits/numeric_traits.h: New file.
3975 Implementation of P1841R1 using internal naming. Addition of
3976 missing IEC559 functionality query.
3977 * include/experimental/bits/simd.h: New file. Definition of the
3978 public simd interfaces and general implementation helpers.
3979 * include/experimental/bits/simd_builtin.h: New file.
3980 Implementation of the _VecBuiltin simd_abi.
3981 * include/experimental/bits/simd_converter.h: New file. Generic
3982 simd conversions.
3983 * include/experimental/bits/simd_detail.h: New file. Internal
3984 macros for the simd implementation.
3985 * include/experimental/bits/simd_fixed_size.h: New file. Simd
3986 fixed_size ABI specific implementations.
3987 * include/experimental/bits/simd_math.h: New file. Math
3988 overloads for simd.
3989 * include/experimental/bits/simd_neon.h: New file. Simd NEON
3990 specific implementations.
3991 * include/experimental/bits/simd_ppc.h: New file. Implement bit
3992 shifts to avoid invalid results for integral types smaller than
3993 int.
3994 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
3995 ABI specific implementations.
3996 * include/experimental/bits/simd_x86.h: New file. Simd x86
3997 specific implementations.
3998 * include/experimental/bits/simd_x86_conversions.h: New file.
3999 x86 specific conversion optimizations. The conversion patterns
4000 work around missing conversion patterns in the compiler and
4001 should be removed as soon as PR85048 is resolved.
4002 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
4003 Test that all (not all fixed_size<N>, though) standard simd and
4004 simd_mask types are usable.
4005 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
4006 file. As above but with -ffast-math.
4007 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
4008 from the standard test loop. Instead use
4009 check_vect_support_and_set_flags to build simd tests with the
4010 relevant machine flags.
4011
40122021-01-27 Jonathan Wakely <jwakely@redhat.com>
4013
4014 PR libstdc++/66414
4015 * include/bits/string_view.tcc
4016 (basic_string_view::find(const CharT*, size_type, size_type)):
4017 Optimize.
4018
40192021-01-27 Paul Fee <paul.f.fee@gmail.com>
4020
4021 * include/bits/basic_string.h (basic_string::contains): New
4022 member functions.
4023 * include/std/string_view (basic_string_view::contains):
4024 Likewise.
4025 * include/std/version (__cpp_lib_string_contains): Define.
4026 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
4027 Remove trailing whitespace.
4028 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
4029 Likewise.
4030 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
4031 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
4032 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
4033 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
4034 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
4035
7559d465
GA
40362021-01-21 Jonathan Wakely <jwakely@redhat.com>
4037
4038 * src/c++17/Makefile.in: Regenerate.
4039
b93d0e36
GA
40402021-01-20 David Edelsohn <dje.gcc@gmail.com>
4041
4042 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
4043 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
4044 __lc_type.
4045 (const char* ctype<char>:: is): Same.
4046
ef1f8ee6
GA
40472021-01-18 Jonathan Wakely <jwakely@redhat.com>
4048
4049 PR libstdc++/98725
4050 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
4051 write to a wide character stream if wide character support is
4052 disabled in the library.
4053
40542021-01-18 Jonathan Wakely <jwakely@redhat.com>
4055
4056 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
4057 stringbuf not wstringbuf.
4058
40592021-01-18 Jakub Jelinek <jakub@redhat.com>
4060
4061 PR debug/98708
4062 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
4063 Compile with -gno-as-loc-support.
4064 * src/c++11/Makefile.in: Regenerated.
4065
59cf67d1
GA
40662021-01-16 H.J. Lu <hjl.tools@gmail.com>
4067
4068 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
4069 Add -fcf-protection=none to -march=i486.
4070
5fff80fd
GA
40712021-01-14 François Dumont <fdumont@gcc.gnu.org>
4072
4073 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
4074 compliant.
4075
40762021-01-14 Alexandre Oliva <oliva@adacore.com>
4077
4078 * testsuite/30_threads/future/members/poll.cc: Calibrate
4079 iteration count.
4080
40812021-01-14 François Dumont <fdumont@gcc.gnu.org>
4082
4083 PR libstdc++/98466
4084 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
4085 (_Node_iterator()): Make default.
4086 (_Node_const_iterator()): Make default.
4087 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
4088 iterator checks.
4089 * include/debug/safe_iterator.h
4090 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
4091 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
4092 Likewise.
4093 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
4094 _M_singular checks on input iterators.
4095 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
4096 checks.
4097 * testsuite/23_containers/deque/debug/98466.cc: New test.
4098 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
4099
41002021-01-14 Jonathan Wakely <jwakely@redhat.com>
4101
4102 PR libstdc++/98471
4103 * include/bits/fs_path.h (__throw_conversion_error): New
4104 function to throw or abort on character conversion errors.
4105 (__wstr_from_utf8): Move definition after filesystem_error has
4106 been defined. Use __throw_conversion_error.
4107 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
4108 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
4109 (path::u8string): Likewise.
4110
41112021-01-14 Jonathan Wakely <jwakely@redhat.com>
4112
4113 * include/std/barrier: Update copyright years. Fix whitespace.
4114 * include/std/version: Fix whitespace.
4115 * testsuite/30_threads/barrier/1.cc: Update copyright years.
4116 * testsuite/30_threads/barrier/2.cc: Likewise.
4117 * testsuite/30_threads/barrier/arrive.cc: Likewise.
4118 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4119 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4120 * testsuite/30_threads/barrier/completion.cc: Likewise.
4121
be0851b8
GA
41222021-01-13 Jonathan Wakely <jwakely@redhat.com>
4123
4124 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
4125
366f86bd
GA
41262021-01-10 David Edelsohn <dje.gcc@gmail.com>
4127
4128 PR libstdc++/98613
4129 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
4130 warning.
4131 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
4132
bf5cbb9e
GA
41332021-01-08 Olivier Hainque <hainque@adacore.com>
4134
4135 * testsuite/20_util/bind/ref_neg.cc: Tweak the
4136 dg-prune-output regex for out-of-build-tree contexts.
4137
7d187e4f
GA
41382021-01-07 Thomas Rodgers <trodgers@redhat.com>
4139
4140 * doc/doxygen/user.cfg.in: Add new header.
4141 * include/Makefile.am (std_headers): likewise.
4142 * include/Makefile.in: Regenerate.
4143 * include/precompiled/stdc++.h: Add new header.
4144 * include/std/barrier: New file.
4145 * include/std/version: Add __cpp_lib_barrier feature test macro.
4146 * testsuite/30_threads/barrier/1.cc: New test.
4147 * testsuite/30_threads/barrier/2.cc: Likewise.
4148 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4149 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4150 * testsuite/30_threads/barrier/arrive.cc: Likewise.
4151 * testsuite/30_threads/barrier/completion.cc: Likewise.
4152
41532021-01-07 Patrick Palka <ppalka@redhat.com>
4154
4155 PR libstdc++/98384
4156 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
4157 instead of the non-standard nextupl and nextdownl.
4158
651b8a50
GA
41592021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
4160
4161 * configure: Re-generate.
4162
41632021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
4164
4165 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
4166
b6dd195a
GA
41672021-01-01 Jakub Jelinek <jakub@redhat.com>
4168
4169 * ChangeLog-2020: Rotate ChangeLog. New file.
4170
b4df5e92 4171\f
618e665a 4172Copyright (C) 2021 Free Software Foundation, Inc.
b4df5e92
JW
4173
4174Copying and distribution of this file, with or without modification,
4175are permitted in any medium without royalty provided the copyright
4176notice and this notice are preserved.
This page took 1.28532 seconds and 5 git commands to generate.