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