]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
Daily bump.
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
2
3 * include/Makefile.am: Add new header.
4 * include/Makefile.in: Regenerate.
5 * include/std/chrono (duration, time_point, system_clock)
6 (steady_clock, high_resolution_clock, chrono_literals, sys_time)
7 (file_clock, file_time): Move to ...
8 * include/bits/chrono.h: New file.
9 * include/bits/atomic_futex.h: Include new header instead of
10 <chrono>.
11 * include/bits/atomic_timed_wait.h: Likewise.
12 * include/bits/fs_fwd.h: Likewise.
13 * include/bits/semaphore_base.h: Likewise.
14 * include/bits/this_thread_sleep.h: Likewise.
15 * include/bits/unique_lock.h: Likewise.
16 * include/experimental/bits/fs_fwd.h: Likewise.
17 * include/experimental/chrono: Likewise.
18 * include/experimental/io_context: Likewise.
19 * include/experimental/netfwd: Likewise.
20 * include/experimental/timer: Likewise.
21 * include/std/condition_variable: Likewise.
22 * include/std/mutex: Likewise.
23 * include/std/shared_mutex: Likewise.
24
25 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
26
27 PR libstdc++/102377
28 * include/bits/atomic_wait.h (__waiter_pool_base:_S_align):
29 Hardcode to 64 instead of using non-constant constant.
30
31 2021-10-07 Jonathan Wakely <jwakely@redhat.com>
32
33 * include/bits/erase_if.h (__erase_nodes_if): Remove redundant
34 __niter_base calls.
35 * include/std/string (erase, erase_if): Likewise.
36 * include/std/deque (erase, erase_if): Access non-debug
37 container directly.
38 * include/std/map (erase, erase_if): Likewise.
39 * include/std/set (erase, erase_if): Likewise.
40 * include/std/unordered_map (erase, erase_if): Likewise.
41 * include/std/unordered_set (erase, erase_if): Likewise.
42 * include/std/vector (erase, erase_if): Likewise.
43 * include/experimental/deque (erase, erase_if): Likewise.
44 * include/experimental/map (erase, erase_if): Likewise.
45 * include/experimental/set (erase, erase_if): Likewise.
46 * include/experimental/unordered_map (erase, erase_if):
47 Likewise.
48 * include/experimental/unordered_set (erase, erase_if):
49 Likewise.
50 * include/experimental/vector (erase, erase_if): Likewise.
51
52 2021-10-06 Jonathan Wakely <jwakely@redhat.com>
53
54 * include/Makefile.am: Add new headers.
55 * include/Makefile.in: Regenerate.
56 * include/std/functional: Include <bits/move_only_function.h>.
57 * include/std/version (__cpp_lib_move_only_function): Define.
58 * include/bits/mofunc_impl.h: New file.
59 * include/bits/move_only_function.h: New file.
60 * testsuite/20_util/move_only_function/call.cc: New test.
61 * testsuite/20_util/move_only_function/cons.cc: New test.
62 * testsuite/20_util/move_only_function/move.cc: New test.
63 * testsuite/20_util/move_only_function/version.cc: New test.
64
65 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
66
67 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc:
68 New test.
69 * testsuite/23_containers/span/trivially_copyable.cc: New test.
70
71 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
72
73 * include/bits/utility.h (__is_in_place_type_v): Define
74 variable template to detect in_place_type_t specializations.
75 (__is_in_place_type): Replace class template with alias
76 template using __is_in_place_type_v.
77 * include/std/any (any(T&&)): Check __is_in_place_type first and
78 avoid instantiating is_copy_constructible unnecessarily.
79
80 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
81
82 * testsuite/20_util/integer_comparisons/greater.cc: New test.
83
84 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
85
86 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
87 Check result matches non-volatile pointer.
88
89 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
90
91 PR c++/102535
92 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust
93 expected value for C++20.
94
95 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
96
97 * include/bits/std_function.h (_Any_data::_M_access): Add
98 noexcept.
99 (_Function_base::_Base_manager::_M_get_pointer): Likewise.
100 (_Function_base::_Base_manager::_M_not_empty_function):
101 Likewise.
102
103 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
104
105 * include/std/ostream (operator<<(const volatile void*)):
106 Add new overload, as per P1147R1.
107 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc:
108 New test.
109
110 2021-10-05 Jonathan Wakely <jwakely@redhat.com>
111
112 * include/bits/stl_queue.h
113 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct
114 value.
115 * include/bits/stl_stack.h
116 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
117 * include/std/version
118 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
119 * testsuite/23_containers/queue/cons_from_iters.cc: Update
120 expected value.
121 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
122
123 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
124
125 * include/bits/forward_list.h (forward_list): Use non-deduced
126 context for allocator parameter of allocator-extended copy and
127 move constructors.
128 * include/bits/stl_bvector.h (vector<bool>): Likewise.
129 * include/bits/stl_deque.h (deque): Likewise.
130 * include/bits/stl_list.h (list): Likewise.
131 * include/bits/stl_map.h (map): Likewise.
132 * include/bits/stl_multimap.h (multimap): Likewise.
133 * include/bits/stl_multiset.h (multiset): Likewise.
134 * include/bits/stl_set.h (set): Likewise.
135 * include/bits/stl_vector.h (vector): Likewise.
136 * include/bits/stl_queue.h (queue, priority_queue): Do not
137 constrain Allocator template parameter of deduction guides that
138 have a Container parameter.
139 * include/bits/stl_stack.h (stack): Likewise.
140 * include/debug/deque (__gnu_debug::deque): Use non-deduced
141 context for allocator parameter of allocator-extended copy and
142 move constructors.
143 * include/debug/list (__gnu_debug::list): Likewise.
144 * include/debug/map.h (__gnu_debug::map): Likewise.
145 * include/debug/multimap.h (__gnu_debug::multimap): Likewise.
146 * include/debug/multiset.h (__gnu_debug::multiset): Likewise.
147 * include/debug/set.h (__gnu_debug::set): Likewise.
148 * include/debug/vector (__gnu_debug::vector): Likewise.
149 * testsuite/23_containers/deque/cons/deduction.cc: Test class
150 template argument deduction with non-deduced allocator
151 arguments.
152 * testsuite/23_containers/forward_list/cons/deduction.cc:
153 Likewise.
154 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
155 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
156 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
157 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
158 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
159 * testsuite/23_containers/queue/deduction.cc: Likewise.
160 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
161 * testsuite/23_containers/stack/deduction.cc: Likewise.
162 * testsuite/23_containers/unordered_map/cons/deduction.cc:
163 Likewise.
164 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
165 Likewise.
166 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
167 Likewise.
168 * testsuite/23_containers/unordered_set/cons/deduction.cc:
169 Likewise.
170 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
171
172 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
173
174 * include/std/variant (__detail::__variant::__as): Add missing
175 noexcept to first overload.
176
177 2021-10-04 Jonathan Wakely <jwakely@redhat.com>
178
179 * include/bits/basic_string.h (basic_string(nullptr_t)): Define
180 as deleted.
181 (operator=(nullptr_t)): Likewise.
182 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise.
183 (operator=(nullptr_t)): Likewise.
184 * include/std/string_view (basic_string_view(nullptr_t)):
185 Likewise.
186 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test.
187 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
188 Change dg-warning to dg-error.
189 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
190 Likewise.
191
192 2021-10-02 Jonathan Wakely <jwakely@redhat.com>
193
194 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name.
195 * src/filesystem/ops-common.h (__last_system_error): Add
196 explicit cast to avoid narrowing conversion.
197 (do_space): Fix type in function name.
198
199 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
200
201 PR libstdc++/102100
202 * include/Makefile.am (c++config.h): Define
203 _GLIBCXX_VERBOSE_ASSERT based on configure output.
204 * include/Makefile.in: Regenerate.
205 * include/bits/c++config: Fix condition for verbose assertions.
206
207 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
208
209 PR libstdc++/92546
210 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to
211 unwrap debug iterators.
212 * include/bits/refwrap.h: Do not error if included in C++03.
213 * include/bits/stl_algo.h (__remove_if): Move to ...
214 * include/bits/stl_algobase.h (__remove_if): ... here.
215 * include/std/deque (erase, erase_if): Use __remove_if instead of
216 remove and remove_if.
217 * include/std/string (erase, erase_if): Likewise.
218 * include/std/vector (erase, erase_if): Likewise.
219
220 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
221
222 PR libstdc++/66742
223 * include/bits/list.tcc (list::sort()): Use _Scratch_list
224 objects for splicing and merging.
225 (list::sort(StrictWeakOrdering)): Likewise.
226 * include/bits/stl_list.h (__detail::_Scratch_list): New type.
227 * src/c++98/list.cc (_List_node_base::_M_transfer): Add
228 assertion for --enable-libstdcxx-debug library.
229 * testsuite/23_containers/list/operations/66742.cc: New test.
230
231 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
232
233 PR libstdc++/100612
234 * include/std/thread (__pmf_expects_stop_token): New variable
235 template to detect a pointer to member function that needs a
236 stop_token to be added to the arguments.
237 (jthread::__S_create): Use __pmf_expects_stop_token.
238 (jthread::__S_create_pmf): New function.
239 * testsuite/30_threads/jthread/100612.cc: New test.
240
241 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
242
243 * include/bits/stl_queue.h
244 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as
245 per P1425R4.
246 (queue(InputIterator, InputIterator)): Likewise.
247 (queue(InputIterator, InputIterator, const Alloc&)): Likewise.
248 * include/bits/stl_stack.h
249 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise.
250 (stack(InputIterator, InputIterator)): Likewise.
251 (stack(InputIterator, InputIterator, const Alloc&)): Likewise.
252 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor):
253 Define.
254 * testsuite/23_containers/queue/cons_from_iters.cc: New test.
255 * testsuite/23_containers/stack/cons_from_iters.cc: New test.
256
257 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
258
259 * include/bits/stl_queue.h (priority_queue): Add
260 allocator-extended overloads for constructors taking iterator.
261 * testsuite/23_containers/priority_queue/lwg3506.cc: New test.
262
263 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
264
265 * include/bits/stl_queue.h (priority_queue): Construct sequence
266 from iterators when no sequence argument is present (LWG 3529).
267 * testsuite/23_containers/priority_queue/lwg3529.cc: New test.
268
269 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
270
271 * include/bits/stl_queue.h (priority_queue): Constrain
272 constructors with InputIterator parameters (LWG 3522).
273 * testsuite/23_containers/priority_queue/lwg3522.cc: New test.
274
275 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
276
277 * include/bits/ranges_base.h (ranges::distance): Split overload
278 into two (LWG 3392).
279 * testsuite/24_iterators/range_operations/lwg3392.cc: New test.
280
281 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
282
283 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from
284 std::unary_function.
285 * testsuite/30_threads/thread/cons/4.cc: Likewise.
286 * testsuite/30_threads/thread/cons/5.cc: Likewise.
287
288 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
289
290 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove
291 unnecesary derivation from std::unary_function.
292 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise.
293 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise.
294 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise.
295 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise.
296 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise.
297 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise.
298 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise.
299 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc:
300 Likewise.
301 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise.
302 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise.
303
304 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
305
306 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not
307 expand the format string for freestanding, or non-vebose, or if
308 we're just going to abort anyway.
309 * src/c++11/snprintf_lite.cc: Remove unused header and
310 declaration.
311
312 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
313
314 * include/std/variant (__do_visit): Use variant_npos instead of
315 literal -1 that requires a narrowing conversion.
316
317 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
318
319 PR libstdc++/99327
320 * src/filesystem/ops-common.h (__unsupported): New function to
321 return a suitable error code for missing functionality.
322 (posix::off_t): New typedef.
323 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op
324 fallback implementations.
325 (do_copy_file): Replace uses of errc::not_supported.
326 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir)
327 (fs::create_directory, fs::create_directory_symlink)
328 (fs::create_hard_link, fs::create_symlink, fs::current_path)
329 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count)
330 (fs::last_write_time, fs::permissions, fs::read_symlink):
331 Replace uses of errc::not_supported.
332 (fs::resize_file): Qualify off_t.
333 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir)
334 (fs::create_directory, fs::create_directory_symlink)
335 (fs::create_hard_link, fs::create_symlink, fs::current_path)
336 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time)
337 (fs::permissions, fs::read_symlink, fs::system_complete):
338 Replace uses of errc::not_supported.
339 (fs::resize_file): Qualify off_t and enable unconditionally.
340 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise.
341
342 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
343
344 * src/filesystem/ops-common.h (last_error): New helper function.
345 (filesystem::do_space): Use last_error().
346 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link)
347 (fs::equivalent, fs::remove, fs::temp_directory_path): Use
348 last_error().
349 * src/filesystem/ops.cc (fs::create_hard_link)
350 (fs::remove, fs::temp_directory_path): Likewise.
351
352 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
353
354 * include/std/type_traits (__conditional): New class template
355 for internal uses of std::conditional.
356 (__conditional_t): New alias template to replace conditional_t.
357 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use
358 __conditional_t instead of conditional::type.
359 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise.
360 * include/bits/hashtable.h (_Hashtable): Likewise.
361 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base)
362 (_Local_iterator): Likewise. Replace typedefs with
363 using-declarations.
364 * include/bits/move.h (move_if_noexcept): Use __conditional_t.
365 * include/bits/parse_numbers.h (_Select_int_base): Likewise.
366 * include/bits/ptr_traits.h (__make_not_void): Likewise.
367 * include/bits/ranges_algobase.h (__copy_or_move_backward)
368 (__copy_or_move): Likewise.
369 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise.
370 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise.
371 * include/bits/regex_compiler.h (_BracketMatcher): Use
372 __conditional_t. Replace typedefs with using-declarations.
373 * include/bits/shared_ptr_base.h (__shared_count): Use
374 __conditional_t.
375 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
376 Likewise.
377 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat)
378 (reverse_iterator::iterator_concept)
379 (__make_move_if_noexcept_iterator)
380 (iterator_traits<common_iterator<_It, _Sent>>)
381 (iterator_traits<counted_iterator<_It>>): Likewise.
382 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise.
383 * include/bits/stl_tree.h (_Rb_tree::insert_return_type)
384 (_Rb_tree::_M_clone_node): Likewise.
385 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)):
386 Likewise.
387 * include/bits/uses_allocator.h (__uses_alloc): Likewise.
388 (__is_uses_allocator_predicate): Likewise.
389 * include/debug/functions.h (__foreign_iterator_aux2): Likewise.
390 * include/experimental/any (any::_Manager, __any_caster):
391 Likewise.
392 * include/experimental/executor (async_completion): Likewise.
393 * include/experimental/functional (__boyer_moore_base_t):
394 Likewise.
395 * include/std/any (any::_Manager): Likewise.
396 * include/std/functional (__boyer_moore_base_t): Likewise.
397 * include/std/ranges (borrowed_iterator_t)
398 (borrowed_subrange_t, __detail::__maybe_present_t)
399 (__detail::__maybe_const_t, split_view): Likewise.
400 * include/std/tuple (__empty_not_final, tuple::operator=):
401 Likewise.
402 * include/std/variant (__detail::__variant::__get_t): Likewise.
403
404 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
405
406 PR libstdc++/78113
407 * include/std/variant (__do_visit): Use a switch when we have a
408 single variant with a small number of alternatives.
409
410 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
411
412 PR libstdc++/90943
413 * include/std/variant (__cpp_lib_variant): Update value.
414 (__detail::__variant::__as): New helpers implementing the
415 as-variant exposition-only function templates.
416 (visit, visit<R>): Use __as to upcast the variant parameters.
417 * include/std/version (__cpp_lib_variant): Update value.
418 * testsuite/20_util/variant/visit_inherited.cc: New test.
419
420 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
421
422 * include/bits/stl_iterator.h (__normal_iterator): Simplify
423 converting constructor and do not require _Container::pointer.
424
425 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
426
427 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING]
428 (basic_string(basic_string&&)): Add noexcept and avoid
429 allocation, by sharing rep with the rvalue string.
430
431 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
432
433 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy)
434 (common_iterator::__postfix_proxy): Add noexcept.
435
436 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
437
438 PR libstdc++/94418
439 * include/bits/stl_iterator.h (reverse_iterator): Use
440 conditional noexcept on constructors and assignment operators.
441 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test.
442
443 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
444
445 PR libstdc++/100153
446 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()):
447 When size() is zero just deallocate and reset.
448
449 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
450
451 PR libstdc++/96733
452 * include/bits/stl_algo.h (clamp): Use std::min and std::max.
453
454 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
455
456 * include/bits/regex.h (basic_regex::multiline): Define for
457 non-strict C++11 and C++14 modes.
458 * include/bits/regex_constants.h (regex_constants::multiline):
459 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment.
460
461 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
462
463 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>.
464
465 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
466
467 * include/bits/stream_iterator.h (istream_iterator): Add
468 noexcept to constructors and non-throwing member functions and
469 friend functions.
470 (ostream_iterator): Likewise.
471
472 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
473
474 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator):
475 New trait to identify vector<bool> iterators, including debug
476 ones.
477 (_ForwardIteratorReferenceConcept): Add default template
478 argument using _Is_vector_bool_iterator and use it in partial
479 specialization for the vector<bool> cases.
480 (_Mutable_ForwardIteratorReferenceConcept): Likewise.
481 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
482 line number.
483
484 2021-10-01 Jonathan Wakely <jwakely@redhat.com>
485
486 * include/bits/list.tcc (list::merge): Remove call to size() and
487 try-catch block. Use _Finalize_merge instead.
488 * include/bits/stl_list.h (list::_Finalize_merge): New
489 scope guard type to update _M_size members after a merge.
490
491 2021-09-30 Jonathan Wakely <jwakely@redhat.com>
492
493 * include/bits/regex.h (basic_regex::multiline): Fix #if
494 condition.
495
496 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
497
498 * include/bits/regex.h (basic_regex::multiline): Define constant
499 for C++17.
500 * include/bits/regex_constants.h (regex_constants::multiline):
501 Define constant for C++17.
502 (regex_constants::__multiline): Define duplicate constant for
503 internal use in C++11 and C++14.
504 * include/bits/regex_executor.h (_Executor::_M_match_multiline()):
505 New member function.
506 (_Executor::_M_is_line_terminator(_CharT)): New member function.
507 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new
508 member functions to support multiline matches.
509 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test.
510
511 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
512
513 * include/bits/regex_compiler.h (_Compiler::_S_validate): New
514 function.
515 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use
516 _S_validate to check flags.
517 * include/bits/regex_error.h (_S_grammar): New error code for
518 internal use.
519 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test.
520
521 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
522
523 PR libstdc++/84110
524 * include/bits/regex_error.h (regex_constants::_S_null): New
525 error code for internal use.
526 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()):
527 Check for null character.
528 * testsuite/28_regex/basic_regex/84110.cc: New test.
529
530 2021-09-29 Jonathan Wakely <jwakely@redhat.com>
531
532 * include/bits/regex.h (__detail::__is_contiguous_iter): Move
533 here from <bits/regex_compiler.h>.
534 (basic_regex::_M_compile): New function to compile an NFA from
535 a regular expression string.
536 (basic_regex::basic_regex): Use _M_compile instead of delegating
537 to other constructors.
538 (basic_regex::operator=(const basic_regex&)): Define as
539 defaulted.
540 (basic_regex::operator=(initializer_list<C>)): Use _M_compile.
541 (basic_regex::assign(const basic_regex&)): Use copy assignment.
542 (basic_regex::assign(basic_regex&&)): Use move assignment.
543 (basic_regex::assign(const C*, flag_type)): Use _M_compile
544 instead of constructing a temporary string.
545 (basic_regex::assign(const C*, size_t, flag_type)): Likewise.
546 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)):
547 Use _M_compile instead of constructing a temporary basic_regex.
548 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid
549 constructing a temporary string for contiguous iterators of the
550 right value type.
551 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to
552 <bits/regex.h>.
553 (__enable_if_contiguous_iter, __disable_if_contiguous_iter)
554 (__compile_nfa): Remove.
555 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New
556 test.
557 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test.
558
559 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
560
561 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl):
562 Return false for ETIMEDOUT and true otherwise.
563
564 2021-09-28 François Dumont <fdumont@gcc.gnu.org>
565
566 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message
567 to also match message with '__8' in it.
568
569 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
570
571 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove.
572 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove.
573 * include/bits/regex_compiler.tcc: Likewise.
574 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove.
575 * include/bits/regex_scanner.tcc: Likewise.
576
577 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
578
579 * include/bits/regex_compiler.tcc: Add line break in empty while
580 statement.
581 * include/bits/regex_executor.tcc: Avoid unused parameter
582 warning.
583
584 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
585
586 * include/bits/regex.h (basic_regex, swap): Add noexcept to
587 non-throwing functions.
588 * include/bits/regex_automaton.h (_State_base, _State)
589 (_NFA_base): Likewise.
590 * include/bits/regex_compiler.h (_Compiler): Likewise.
591 * include/bits/regex_error.h (regex_error::code()): Likewise.
592 * include/bits/regex_scanner.h (_Scanner): Likewise.
593
594 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
595
596 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT):
597 Define before first attempt to check it.
598
599 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
600
601 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc:
602 Do not check non-default constructible sequences when
603 _GLIBCXX_CONCEPT_CHECKS is defined.
604 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc:
605 Likewise.
606 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc:
607 Likewise.
608 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc:
609 Likewise.
610 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc:
611 Likewise.
612 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc:
613 Likewise.
614
615 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
616
617 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc:
618 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS
619 is defined.
620 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc:
621 Likewise.
622 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc:
623 Likewise.
624 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc:
625 Likewise.
626 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc:
627 Likewise.
628 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc:
629 Likewise.
630 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc:
631 Likewise.
632 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc:
633 Likewise.
634 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc:
635 Likewise.
636 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc:
637 Likewise.
638 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc:
639 Likewise.
640 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc:
641 Likewise.
642 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc:
643 Likewise.
644 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc:
645 Likewise.
646 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc:
647 Likewise.
648 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc:
649 Likewise.
650 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc:
651 Likewise.
652 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc:
653 Likewise.
654
655 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
656
657 * include/bits/boost_concept_check.h (_ForwardIteratorConcept)
658 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept):
659 Check result types of iterator operations.
660 (_Mutable_ForwardIteratorConcept): Check that iterator's
661 reference type is a reference to its value type.
662 (_Mutable_BidirectionalIteratorConcept): Do not require the
663 value type to be assignable.
664 (_Mutable_RandomAccessIteratorConcept): Likewise.
665 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error
666 line number.
667
668 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
669
670 * testsuite/25_algorithms/copy/34595.cc: Add missing operation
671 for type used as an iterator.
672 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise.
673
674 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
675
676 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom
677 comparison function for priority_queue of type with no
678 relational operators.
679 * testsuite/20_util/is_swappable/value.h: Likewise.
680 * testsuite/24_iterators/output/concept.cc: Add operator< to
681 type used in set.
682
683 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
684
685 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
686 Use a function to preserve value category of the type.
687 * include/bits/stl_algobase.h (copy, move, fill_n): Use a
688 reference as the second argument for _OutputIteratorConcept.
689 (copy_backward, move_backward): Use _OutputIteratorConcept
690 instead of _ConvertibleConcept.
691
692 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
693
694 * include/bits/stl_iterator.h (pointer_traits): Define partial
695 specialization for __normal_iterator.
696 * testsuite/24_iterators/normal_iterator/to_address.cc: New test.
697
698 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
699
700 * include/bits/move.h (forward(remove_reference_t<T>&&)):
701 Improve text of static_assert.
702 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
703 * testsuite/20_util/forward/f_neg.cc: Likewise.
704
705 2021-09-28 Jonathan Wakely <jwakely@redhat.com>
706
707 PR libstdc++/102499
708 * include/bits/fs_path.h (path::begin, path::end): Add noexcept
709 to declarations, to match definitions.
710
711 2021-09-24 Jonathan Wakely <jwakely@redhat.com>
712
713 * include/bits/range_access.h (cbegin, cend): Remove redundant
714 'inline' specifier.
715
716 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
717
718 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
719 Remove dg-error lines for C++20-only errors.
720
721 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
722
723 * testsuite/19_diagnostics/headers/system_error/93151.cc:
724 Disable PCH.
725
726 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
727
728 * src/c++11/system_error.cc (system_error_category) [_WIN32]:
729 Map Windows error codes to generic POSIX error numbers. Use
730 FormatMessage instead of strerror.
731 * testsuite/19_diagnostics/error_category/system_category.cc:
732 Adjust for new behaviour on Windows.
733
734 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
735
736 * src/c++11/system_error.cc (generic_error_category): Define
737 class and virtual functions as 'final'.
738 (generic_error_category::equivalent(int, const error_condition&)):
739 Override.
740 (system_error_category): Define class and virtual functions as
741 'final'.
742 (system_error_category::equivalent(int, const error_condition&)):
743 Override.
744 (generic_category_instance, system_category_instance): Use
745 constinit union to make the objects immortal.
746
747 2021-09-23 Jonathan Wakely <jwakely@redhat.com>
748
749 PR libstdc++/102425
750 * src/c++11/system_error.cc
751 (system_error_category::default_error_condition): Add 0 to
752 switch.
753 * testsuite/19_diagnostics/error_category/102425.cc: New test.
754
755 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
756
757 * include/bits/fs_path.h (path::iterator): Add noexcept to all
758 member functions and friend functions.
759 (distance): Add noexcept.
760 (advance): Add noexcept and inline.
761 * include/experimental/bits/fs_path.h (path::iterator):
762 Add noexcept to all member functions.
763
764 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
765
766 PR libstdc++/102270
767 * include/std/tuple (_Tuple_impl): Add constexpr to constructor
768 missed in previous patch.
769 * testsuite/20_util/tuple/cons/102270.C: Moved to...
770 * testsuite/20_util/tuple/cons/102270.cc: ...here.
771 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add
772 constexpr to constructor so it can be used for C++20 tests.
773
774 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
775
776 * testsuite/26_numerics/valarray/dr630-3.C: Moved to...
777 * testsuite/26_numerics/valarray/dr630-3.cc: ...here.
778 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to...
779 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here.
780
781 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
782
783 * src/Makefile.am (stamp-debug): Add all Makefiles as
784 prerequisites.
785 * src/Makefile.in: Regenerate.
786
787 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
788
789 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
790 timeout factor to 3.
791 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
792
793 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
794
795 * doc/xml/manual/using.xml: Generalize to apply to more than
796 just -std=c++11.
797 * doc/html/manual/using_macros.html: Regenerate.
798
799 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
800
801 * include/std/optional (nullptr_t): Make constructor noexcept.
802
803 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
804
805 * include/bits/fs_path.h (advance): Remove non-deducible
806 template parameter.
807
808 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
809
810 PR libstdc++/102270
811 * include/std/tuple (_Head_base, _Tuple_impl): Add
812 _GLIBCXX20_CONSTEXPR to allocator-extended constructors.
813 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR.
814 * testsuite/20_util/tuple/cons/102270.C: New test.
815
816 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
817
818 PR libstdc++/102280
819 * include/std/span (span(Range&&)): Add constraint to deduction
820 guide.
821
822 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
823
824 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
825 * src/c++98/Makefile.in: Regenerate.
826
827 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
828
829 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
830 (to_string): Add noexcept if the type width is 32 bits or less.
831
832 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
833
834 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
835 (__uniq_ptr_impl::_M_deleter): Add noexcept.
836
837 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
838
839 PR libstdc++/101761
840 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
841 va and vb as arguments to wait/notify, remove unused bb local.
842
843 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
844
845 * crossconfig.m4: Check for TLS support on mingw.
846 * configure: Regenerate.
847
848 2021-09-13 Jason Merrill <jason@redhat.com>
849
850 * include/std/version: Define __cpp_lib_hardware_interference_size.
851 * libsupc++/new: Define hardware interference size variables.
852
853 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
854
855 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
856 Fix invalid hostname to only match the .invalid TLD.
857
858 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
859
860 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
861 Add new functions.
862 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
863 it.
864
865 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
866
867 * include/std/atomic: Tweak whitespace.
868
869 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
870
871 PR c++/102177
872 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order):
873 New function to check if a memory order is valid for the failure
874 case of compare exchange operations.
875 (__atomic_base<I>::compare_exchange_weak): Simplify assertions
876 by using __is_valid_cmpexch_failure_order.
877 (__atomic_base<I>::compare_exchange_strong): Likewise.
878 (__atomic_base<P*>::compare_exchange_weak): Likewise.
879 (__atomic_base<P*>::compare_exchange_strong): Likewise.
880 (__atomic_impl::compare_exchange_weak): Add assertion.
881 (__atomic_impl::compare_exchange_strong): Likewise.
882 * include/std/atomic (atomic::compare_exchange_weak): Likewise.
883 (atomic::compare_exchange_strong): Likewise.
884
885 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
886
887 * include/std/functional (invoke_r): Define.
888 * include/std/version (__cpp_lib_invoke_r): Define.
889 * testsuite/20_util/function_objects/invoke/version.cc: Check
890 for __cpp_lib_invoke_r as well as __cpp_lib_invoke.
891 * testsuite/20_util/function_objects/invoke/4.cc: New test.
892
893 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
894
895 PR libstdc++/98421
896 * include/std/span (span(Iter, size_type), span(Iter, Iter)):
897 Add valid range checks.
898 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test.
899 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test.
900
901 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
902
903 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
904 * configure: Regenerate.
905
906 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
907
908 * src/c++11/system_error.cc (error_category::~error_category()):
909 Remove noexcept-specifier.
910 (system_error::~system_error()): Likewise.
911 * testsuite/19_diagnostics/error_category/noexcept.cc: New test.
912 * testsuite/19_diagnostics/system_error/noexcept.cc: New test.
913
914 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
915
916 PR libstdc++/102074
917 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
918 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
919
920 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
921
922 * include/experimental/internet (__make_resolver_error_code):
923 Handle EAI_SYSTEM errors.
924 (basic_resolver_results): Use __make_resolver_error_code. Use
925 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes.
926
927 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
928
929 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
930 Try other service if "http" fails.
931
932 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
933
934 * testsuite/17_intro/names.cc: Undefine some more names used
935 by Solaris system headers.
936
937 2021-08-30 Jason Merrill <jason@redhat.com>
938
939 PR c++/96286
940 * testsuite/30_threads/promise/requirements/lwg3466.cc:
941 Remove dg-prune-outputs.
942
943 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
944
945 * include/bits/alloc_traits.h (allocator_traits): Add explicit
946 specialization for allocator<void>. Improve doxygen comments.
947 * include/bits/allocator.h (allocator<void>): Restore for the
948 versioned namespace.
949 (allocator<void>::construct, allocator<void>::destroy): Remove.
950 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
951 Add default constructor and converting constructor.
952
953 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
954
955 * include/bits/stl_uninitialized.h: Fix typo in comment.
956
957 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
958
959 PR libstdc++/99876
960 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
961 to avoid unnecessary current_path() call.
962
963 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
964
965 * include/bits/std_function.h (function::function(F&&)): Give
966 name to defaulted template parameter, to improve diagnostics.
967 Use markdown for more doxygen comments.
968
969 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
970
971 * include/bits/std_function.h (function): Adjust doxygen
972 comments.
973 * include/bits/unique_ptr.h (make_unique_for_overwrite):
974 Change parameter name to match doxygen comment.
975
976 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
977
978 * include/bits/std_function.h (_function_base::_Base_manager):
979 Replace _M_init_functor with a function template using a
980 forwarding reference, and a pair of _M_create function
981 templates. Reuse _M_create for the clone operation.
982 (function::_Decay_t): New alias template.
983 (function::_Callable): Simplify by using _Decay.
984 (function::function(F)): Change parameter to forwarding
985 reference, as per LWG 2447. Add noexcept-specifier. Simplify
986 constraints.
987 (function::operator=(F&&)): Add noexcept-specifier.
988 * testsuite/20_util/function/cons/lwg2774.cc: New test.
989 * testsuite/20_util/function/cons/noexcept.cc: New test.
990
991 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
992
993 * include/bits/std_function.h (function::function(F)): Add
994 static assertions to check constructibility requirements.
995
996 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
997
998 PR libstdc++/100285
999 * configure.ac: Check for O_NONBLOCK.
1000 * configure: Regenerate.
1001 * include/experimental/internet: Include <ws2tcpip.h> for
1002 Windows. Use preprocessor conditions around more constants.
1003 * include/experimental/socket: Use preprocessor conditions
1004 around more constants.
1005 * testsuite/experimental/net/internet/resolver/base.cc: Only use
1006 constants when the corresponding C macro is defined.
1007 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
1008 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
1009 Make preprocessor checks more fine-grained.
1010
1011 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1012
1013 * testsuite/17_intro/names.cc: Check 'sz'.
1014
1015 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1016
1017 * testsuite/17_intro/names.cc: Adjust for Windows.
1018
1019 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1020
1021 * include/std/valarray: Uglify 'func' parameters.
1022 * testsuite/17_intro/names.cc: Add 'func' to checks.
1023
1024 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1025
1026 PR libstdc++/102064
1027 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
1028 Define macro to check conditions for optimizing trivial cases.
1029 (__check_constructible): New function to do static assert.
1030 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
1031 Use new macro.
1032 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
1033 Adjust dg-error pattern.
1034 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
1035 C++17-specific checks from 89164_c++17.cc.
1036 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
1037 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
1038 New test.
1039 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
1040 New test.
1041 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
1042 New test.
1043 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
1044 New test.
1045
1046 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
1047
1048 PR libstdc++/102048
1049 * include/ext/rope (rope::erase(size_type)): Remove broken
1050 function.
1051
1052 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1053
1054 * doc/xml/manual/status_cxx2020.xml: Update table.
1055 * doc/html/manual/status.html: Regenerate.
1056
1057 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1058
1059 * include/std/type_traits (is_layout_compatible): Define.
1060 (is_corresponding_member): Define.
1061 * include/std/version (__cpp_lib_is_layout_compatible): Define.
1062 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
1063 New test.
1064 * testsuite/20_util/is_layout_compatible/value.cc: New test.
1065 * testsuite/20_util/is_layout_compatible/version.cc: New test.
1066 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
1067 New test.
1068 * testsuite/23_containers/span/layout_compat.cc: Do not use real
1069 std::is_layout_compatible trait if available.
1070
1071 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
1072
1073 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
1074 explicit instantiation definitions.
1075
1076 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1077
1078 * include/std/ranges (basic_istream_view): Add default template
1079 argument.
1080 * testsuite/std/ranges/istream_view.cc: Check it.
1081
1082 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1083
1084 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
1085 precondition check.
1086
1087 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
1088
1089 PR libstdc++/90787
1090 * testsuite/util/testsuite_fs.h (permissions_are_testable):
1091 Define as inline.
1092
1093 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
1094
1095 PR libstdc++/90787
1096 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
1097 Use new __gnu_test::permissions_are_testable() function.
1098 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1099 Likewise.
1100 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1101 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1102 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
1103 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
1104 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
1105 * testsuite/27_io/filesystem/operations/symlink_status.cc:
1106 Likewise.
1107 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1108 Likewise.
1109 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
1110 Likewise.
1111 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
1112 Likewise.
1113 * testsuite/experimental/filesystem/operations/exists.cc:
1114 Likewise.
1115 * testsuite/experimental/filesystem/operations/is_empty.cc:
1116 Likewise.
1117 * testsuite/experimental/filesystem/operations/remove.cc:
1118 Likewise.
1119 * testsuite/experimental/filesystem/operations/remove_all.cc:
1120 Likewise.
1121 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1122 Likewise.
1123 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
1124 New function to guess whether testing permissions will work.
1125
1126 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1127
1128 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
1129 * doc/html/manual/status.html: Regenerate.
1130
1131 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1132
1133 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
1134
1135 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1136
1137 PR libstdc++/101965
1138 * include/std/charconv (__to_chars_i): Remove redundant check.
1139
1140 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1141
1142 PR libstdc++/101960
1143 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
1144 class' move constructor. Define as defaulted for versioned
1145 namespace.
1146 * testsuite/20_util/tuple/cons/101960.cc: New test.
1147
1148 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1149
1150 PR libstdc++/100139
1151 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
1152 * doc/html/manual/status.html: Regenerate.
1153
1154 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1155
1156 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
1157 * include/bits/unique_ptr.h: Add @headerfile tags.
1158
1159 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1160
1161 * src/filesystem/ops-common.h (filesystem::file_time): Improve
1162 overflow check by using system_clock::duration::max().
1163
1164 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
1165
1166 * include/bits/stl_tree.h: Tweak whitespace.
1167
1168 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1169
1170 * include/bits/unique_ptr.h (default_delete): Add @since tag.
1171 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
1172 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
1173 @param, and @returns.
1174 (_MakeUniq): Move to __detail namespace. Add alias template
1175 helpers.
1176
1177 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1178
1179 * include/bits/stl_function.h: Improve doxygen comments.
1180
1181 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1182
1183 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
1184 processing for C++20 components and components that depend on
1185 compiler features.
1186 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
1187 * include/std/type_traits: Improve doxygen comments for C++20
1188 traits.
1189
1190 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1191
1192 * include/ext/type_traits.h (__promote_2, __promote_3)
1193 (__promote_4): Redfine as alias templates using __promoted_t.
1194 * include/std/complex (__promote_2): Remove partial
1195 specializations for std::complex.
1196
1197 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1198
1199 * include/bits/stl_algo.h (min(initializer_list<T>))
1200 (min(initializer_list<T>, Compare)): Call __min_element directly to
1201 avoid redundant debug checks for valid ranges.
1202 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
1203 Likewise, for __max_element.
1204 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
1205 Likewise, for __minmax_element.
1206
1207 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1208
1209 * include/debug/deque (deque(size_type, const T&, const A&)):
1210 Prevent class template argument deduction and replace with a
1211 deduction guide.
1212 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
1213 Likewise.
1214 * include/debug/list (list(size_type, const T&, const A&)):
1215 Likewise.
1216 * include/debug/vector (vector(size_type, const T&, const A&)):
1217 Likewise.
1218
1219 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
1220
1221 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
1222 'std::vector<bool>::reference' as type name, not _Bit_reference.
1223 (build_libstdcxx_dictionary): Register printers for vector<bool>
1224 types in debug mode too.
1225 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
1226 output for invalid _Bit_reference. Use vector<bool>::reference
1227 instead of _Bit_reference.
1228 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1229
1230 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
1231
1232 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
1233 continued.
1234
1235 2021-08-17 Luc Michel <lmichel@kalray.eu>
1236 Marc Poulhies <mpoulhies@kalrayinc.com>
1237
1238 * testsuite/lib/gdb-test.exp (gdb_version_check)
1239 (gdb_version_check_xmethods): Only check the GDB version for
1240 local native targets.
1241
1242 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
1243 Jonathan Wakely <jwakely@redhat.com>
1244
1245 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
1246 if distance is O(1).
1247 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1248 line number.
1249
1250 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1251
1252 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
1253 construction from input iterators.
1254
1255 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1256
1257 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
1258
1259 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1260
1261 PR libstdc++/101923
1262 * include/bits/std_function.h (function(function&&)): Check for
1263 non-empty parameter before doing any work.
1264
1265 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1266
1267 * include/bits/cow_string.h (basic_string::contains): Do not
1268 define for -std=gnu++20.
1269
1270 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1271
1272 * include/bits/ranges_util.h (__not_same_as): Rename to
1273 __different_from.
1274 * include/std/ranges (__not_same_as): Likewise.
1275
1276 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1277
1278 * include/std/utility (exchange): Add noexcept-specifier.
1279 * testsuite/20_util/exchange/noexcept.cc: New test.
1280
1281 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
1282
1283 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
1284 (build_libstdcxx_dictionary): Register printer for
1285 std::error_code and std::error_condition.
1286 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
1287
1288 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
1289
1290 PR libstdc++/101937
1291 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
1292 static data member.
1293 (print_word): Use qualified-id to access it.
1294
1295 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
1296
1297 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
1298 Install another copy of the GDB hook.
1299 * python/Makefile.in: Regenerate.
1300
1301 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1302
1303 PR libstdc++/101870
1304 * include/c_global/cmath (hypot): Use __promoted_t.
1305 (lerp): Add new overload accepting any arithmetic types.
1306 * include/ext/type_traits.h (__promoted_t): New alias template.
1307 * testsuite/26_numerics/lerp.cc: Moved to...
1308 * testsuite/26_numerics/lerp/1.cc: ...here.
1309 * testsuite/26_numerics/lerp/constexpr.cc: New test.
1310 * testsuite/26_numerics/lerp/version.cc: New test.
1311
1312 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1313
1314 * testsuite/26_numerics/lerp.cc: Add header name to #error.
1315 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
1316 * testsuite/26_numerics/midpoint/version.cc: New test.
1317
1318 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1319
1320 * include/experimental/random (experimental::randint): Add
1321 nodiscard attribute.
1322
1323 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
1324
1325 * src/c++98/locale_init.cc: Require C++11.
1326 * src/c++98/localename.cc: Likewise.
1327 * src/c++98/misc-inst.cc: Require C++98.
1328
1329 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
1330
1331 PR libstdc++/101866
1332 * testsuite/experimental/random/randint.cc: Loop and retry if
1333 reseed() produces the same sequence.
1334
1335 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
1336
1337 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
1338 (is_pointer_interconvertible_base_of_v)
1339 (is_pointer_interconvertible_base_of): Define for C++20.
1340 * include/std/version (__cpp_lib_is_pointer_interconvertible):
1341 Define.
1342 * testsuite/23_containers/span/layout_compat.cc: Use correct
1343 feature test macro for std::is_layout_compatible_v.
1344 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
1345 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
1346
1347 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
1348
1349 * include/bits/regex.h (basic_regex::transform_primary): Use
1350 _GLIBCXX_STD_C::vector for local variable.
1351 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
1352 _GLIBCXX_STD_C::vector base class of match_results.
1353 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
1354 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
1355 variables.
1356 * include/bits/regex_compiler.h (_BracketMatcher): Use
1357 _GLIBCXX_STD_C::vector for data members.
1358 * include/bits/regex_executor.h (_Executor): Likewise.
1359 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
1360
1361 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
1362
1363 * include/debug/safe_container.h
1364 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
1365 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
1366 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
1367
1368 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
1369
1370 * testsuite/23_containers/unordered_map/cons/default.cc: Add
1371 equality comparison operators to allocator.
1372 * testsuite/23_containers/unordered_set/cons/default.cc:
1373 Likewise.
1374
1375 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
1376
1377 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
1378 dg-prune-output reason with 'builtin_unreachable'.
1379 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
1380 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
1381 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
1382 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
1383 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
1384 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
1385 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
1386 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
1387
1388 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
1389
1390 * testsuite/std/ranges/iota/max_size_type.cc: Set
1391 dg-timeout-factor to 4.
1392
1393 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
1394
1395 * libsupc++/compare (compare_three_way, strong_order)
1396 (weak_order, partial_order, compare_strong_order_fallback)
1397 (compare_weak_order_fallback, compare_partial_order_fallback):
1398 Move nodiscard attributes to correct location.
1399
1400 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
1401
1402 PR libstdc++/101782
1403 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1404 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
1405 (ranges::empty, ranges::data): Move attribute after the
1406 declarator-id instead of at the end of the declarator.
1407 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
1408 Move attributes back to the start of the function declarator,
1409 but move the requires-clause to the end.
1410 (common_iterator): Move attribute after the declarator-id.
1411 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
1412 from friend declaration that are not definitions.
1413 * include/std/ranges (views::all, views::filter)
1414 (views::transform, views::take, views::take_while,
1415 views::drop) (views::drop_while, views::join,
1416 views::lazy_split) (views::split, views::counted,
1417 views::common, views::reverse) (views::elements): Move
1418 attributes after the declarator-id.
1419
1420 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
1421
1422 * libsupc++/compare (partial_ordering, weak_ordering)
1423 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
1424 (compare_three_way, strong_order, weak_order, partial_order)
1425 (compare_strong_order_fallback, compare_weak_order_fallback)
1426 (compare_partial_order_fallback, __detail::__synth3way): Add
1427 nodiscard attribute.
1428 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
1429 -Wno-unused-result to options.
1430
1431 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
1432
1433 PR libstdc++/101782
1434 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1435 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
1436 (ranges::empty, ranges::data): Move attribute to the end of
1437 the declarator.
1438 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
1439 (common_iterator): Likewise for non-member operator functions.
1440 * include/std/ranges (views::all, views::filter)
1441 (views::transform, views::take, views::take_while, views::drop)
1442 (views::drop_while, views::join, views::lazy_split)
1443 (views::split, views::counted, views::common, views::reverse)
1444 (views::elements): Likewise.
1445 * testsuite/std/ranges/access/101782.cc: New test.
1446
1447 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
1448
1449 * include/bits/forward_list.h: Add [[nodiscard]] to functions
1450 with no side-effects.
1451 * include/bits/stl_bvector.h: Likewise.
1452 * include/bits/stl_deque.h: Likewise.
1453 * include/bits/stl_list.h: Likewise.
1454 * include/bits/stl_queue.h: Likewise.
1455 * include/bits/stl_stack.h: Likewise.
1456 * include/bits/stl_vector.h: Likewise.
1457 * include/debug/deque: Likewise.
1458 * include/debug/forward_list: Likewise.
1459 * include/debug/list: Likewise.
1460 * include/debug/safe_iterator.h: Likewise.
1461 * include/debug/vector: Likewise.
1462 * include/std/array: Likewise.
1463 * testsuite/23_containers/array/creation/3_neg.cc: Use
1464 -Wno-unused-result.
1465 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
1466 to void.
1467 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
1468 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
1469 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
1470 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
1471 Likewise.
1472 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
1473 Likewise.
1474 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1475 Adjust dg-error line numbers.
1476 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
1477 result to void.
1478 * testsuite/23_containers/deque/debug/invalidation/4.cc:
1479 Likewise.
1480 * testsuite/23_containers/deque/types/1.cc: Use
1481 -Wno-unused-result.
1482 * testsuite/23_containers/list/types/1.cc: Cast result to void.
1483 * testsuite/23_containers/priority_queue/members/7161.cc:
1484 Likewise.
1485 * testsuite/23_containers/queue/members/7157.cc: Likewise.
1486 * testsuite/23_containers/vector/59829.cc: Likewise.
1487 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
1488 Likewise.
1489 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
1490 Likewise.
1491 * testsuite/23_containers/vector/types/1.cc: Use
1492 -Wno-unused-result.
1493
1494 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
1495
1496 * include/bits/iterator_concepts.h (iter_move): Add
1497 [[nodiscard]].
1498 * include/bits/range_access.h (begin, end, cbegin, cend)
1499 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
1500 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1501 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
1502 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1503 (ranges::empty, ranges::data, ranges::cdata): Likewise.
1504 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
1505 (back_insert_iterator, front_insert_iterator, insert_iterator)
1506 (move_iterator, move_sentinel, common_iterator)
1507 (counted_iterator): Likewise.
1508 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
1509 Likewise.
1510 * include/bits/stream_iterator.h (istream_iterator)
1511 (ostream_iterartor): Likewise.
1512 * include/bits/streambuf_iterator.h (istreambuf_iterator)
1513 (ostreambuf_iterator): Likewise.
1514 * include/std/ranges (views::single, views::iota, views::all)
1515 (views::filter, views::transform, views::take, views::take_while)
1516 (views::drop, views::drop_while, views::join, views::lazy_split)
1517 (views::split, views::counted, views::common, views::reverse)
1518 (views::elements): Likewise.
1519 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
1520 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
1521 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
1522 Likewise.
1523 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
1524 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
1525 Likewise.
1526 * testsuite/21_strings/basic_string/range_access/char/1.cc:
1527 Cast result to void.
1528 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
1529 Likewise.
1530 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
1531 Likewise.
1532 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
1533 Likewise.
1534 * testsuite/23_containers/array/range_access.cc: Likewise.
1535 * testsuite/23_containers/deque/range_access.cc: Likewise.
1536 * testsuite/23_containers/forward_list/range_access.cc:
1537 Likewise.
1538 * testsuite/23_containers/list/range_access.cc: Likewise.
1539 * testsuite/23_containers/map/range_access.cc: Likewise.
1540 * testsuite/23_containers/multimap/range_access.cc: Likewise.
1541 * testsuite/23_containers/multiset/range_access.cc: Likewise.
1542 * testsuite/23_containers/set/range_access.cc: Likewise.
1543 * testsuite/23_containers/unordered_map/range_access.cc:
1544 Likewise.
1545 * testsuite/23_containers/unordered_multimap/range_access.cc:
1546 Likewise.
1547 * testsuite/23_containers/unordered_multiset/range_access.cc:
1548 Likewise.
1549 * testsuite/23_containers/unordered_set/range_access.cc:
1550 Likewise.
1551 * testsuite/23_containers/vector/range_access.cc: Likewise.
1552 * testsuite/24_iterators/customization_points/iter_move.cc:
1553 Likewise.
1554 * testsuite/24_iterators/istream_iterator/sentinel.cc:
1555 Likewise.
1556 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
1557 Likewise.
1558 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
1559 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
1560 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
1561 * testsuite/24_iterators/range_access/range_access.cc:
1562 Likewise.
1563 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1564 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
1565 * testsuite/28_regex/range_access.cc: Likewise.
1566 * testsuite/experimental/string_view/range_access/char/1.cc:
1567 Likewise.
1568 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
1569 Likewise.
1570 * testsuite/ext/vstring/range_access.cc: Likewise.
1571 * testsuite/std/ranges/adaptors/take.cc: Likewise.
1572 * testsuite/std/ranges/p2259.cc: Likewise.
1573
1574 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1575
1576 * include/bits/random.tcc (linear_congruential_engine): Do not
1577 define static constexpr members when they are implicitly inline.
1578 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
1579 (__ratio_add, __ratio_subtract): Likewise.
1580 * include/std/type_traits (integral_constant): Likewise.
1581 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1582 line number.
1583
1584 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1585
1586 * testsuite/util/testsuite_common_types.h: Replace uses of
1587 tr1::unordered_map and tr1::unordered_set with their C++11
1588 equivalents.
1589 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
1590 dg-error line number.
1591 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
1592 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
1593 Likewise.
1594 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
1595 Likewise.
1596 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
1597 Likewise.
1598 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
1599 Likewise.
1600 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
1601 Likewise.
1602
1603 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1604
1605 * include/std/memory_resource (polymorphic_allocator::delete_object):
1606 Call destructor directly instead of using destroy.
1607 (allocator_traits<polymorphic_allocator<T>>): Define partial
1608 specialization.
1609
1610 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1611
1612 * testsuite/20_util/function_objects/binders/3113.cc: Remove
1613 trailing whitespace.
1614 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1615 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1616 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1617 Likewise.
1618 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1619 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
1620 Likewise.
1621 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1622 Likewise.
1623 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1624 Likewise.
1625
1626 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1627
1628 * doc/xml/manual/evolution.xml: Document deprecation.
1629 * doc/html/*: Regenerate.
1630 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
1631 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
1632 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
1633 and later.
1634 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
1635 for C++11 and C++14 changes to std::random_shuffle and
1636 std::shuffle.
1637 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
1638 use deprecated algorithms.
1639 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
1640 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
1641 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1642 Likewise.
1643 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1644 Likewise.
1645
1646 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1647
1648 * testsuite/23_containers/forward_list/operations/3.cc:
1649 Use lambda instead of std::bind2nd.
1650 * testsuite/20_util/function_objects/binders/3113.cc: Add
1651 options for testing deprecated features.
1652 * testsuite/20_util/pair/cons/99957.cc: Likewise.
1653 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
1654 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
1655 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
1656 Likewise.
1657 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
1658 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
1659 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
1660 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
1661 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
1662 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
1663 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
1664 Likewise.
1665 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
1666 Likewise.
1667 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
1668 New proc.
1669
1670 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1671
1672 * include/bits/regex_executor.h (_State_info): Replace
1673 unique_ptr<bool[]> with array of bool.
1674 * include/bits/regex_executor.tcc: Likewise.
1675 * include/bits/regex_scanner.tcc: Replace std::strchr with
1676 __builtin_strchr.
1677 * include/std/regex: Replace standard headers with smaller
1678 internal ones.
1679 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
1680 <string.h> for strlen.
1681 * testsuite/28_regex/traits/char/lookup_collatename.cc:
1682 Likewise.
1683
1684 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
1685
1686 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
1687 RAII class template.
1688 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
1689 instead of unique_ptr.
1690
1691 2021-08-02 Patrick Palka <ppalka@redhat.com>
1692
1693 PR libstdc++/101599
1694 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
1695 Add missing std::move in return statement.
1696 (__partition_copy_fn::operator()): Rename templtae parameter
1697 _O2 to _Out2. Uglify function parameters out_true and out_false.
1698 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
1699 std::move to recursive call that unwraps a __normal_iterator
1700 output iterator.
1701 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
1702 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
1703
1704 2021-08-02 Patrick Palka <ppalka@redhat.com>
1705
1706 PR libstdc++/101589
1707 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
1708 the const& overload unconstrained and return a const reference
1709 as per LWG 3533. Make unconditionally noexcept.
1710 (elements_view::base): Revert accidental r12-569 change.
1711 (elements_view::_Iterator::base): Make the const& overload
1712 unconstrained and return a const reference as per LWG 3533.
1713 Make unconditionally noexcept.
1714
1715 2021-08-02 Patrick Palka <ppalka@redhat.com>
1716
1717 PR libstdc++/101483
1718 * include/std/ranges (join_view::_Iterator::_Iterator): Add
1719 missing std::move.
1720
1721 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
1722
1723 PR libstdc++/101709
1724 * src/filesystem/ops-common.h (get_temp_directory_from_env):
1725 Add error_code parameter.
1726 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
1727 argument to get_temp_directory_from_env and check it.
1728 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1729
1730 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
1731
1732 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1733 Add dg-error for c++11_only target.
1734
1735 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
1736
1737 PR libstdc++/65018
1738 * configure.ac: Check for secure_getenv.
1739 * config.h.in: Regenerate.
1740 * configure: Regenerate.
1741 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
1742 helper function to obtain path from the environment.
1743 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
1744 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
1745 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1746 Print messages if test cannot be run.
1747 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1748 Likewise. Fix incorrect condition. Use "TMP" to work with
1749 Windows as well as POSIX.
1750
1751 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
1752
1753 * src/c++17/memory_resource.cc: Use __exchange instead
1754 of std::exchange.
1755
1756 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1757
1758 * include/experimental/optional (__throw_bad_optional_access):
1759 Replace GNU attribute with C++11 attribute.
1760 (optional::value, optional::value_or): Use if statements
1761 instead of conditional expressions.
1762 * include/std/optional (__throw_bad_optional_access)
1763 (optional::value, optional::value_or): Likewise.
1764
1765 2021-07-27 Marek Polacek <polacek@redhat.com>
1766
1767 DR 1512
1768 PR c++/99701
1769 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1770 Move a line...
1771 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1772 ...here. New test.
1773
1774 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1775
1776 * include/bits/cow_string.h: Consistently use tab for
1777 indentation.
1778
1779 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1780
1781 * include/Makefile.am: Add new header.
1782 * include/Makefile.in: Regenerate.
1783 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
1784 (basic_string): Move definition of Copy-on-Write string to
1785 new file.
1786 * include/bits/basic_string.tcc: Likewise.
1787 * include/bits/cow_string.h: New file.
1788
1789 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1790
1791 * include/std/algorithm: Do not include <utility>.
1792 * include/std/functional: Likewise.
1793 * include/std/regex: Include <bits/stl_pair.h> instead of
1794 <utility>.
1795 * include/debug/map.h: Likewise.
1796 * include/debug/multimap.h: Likewise.
1797 * include/debug/multiset.h: Likewise.
1798 * include/debug/set.h: Likewise.
1799 * include/debug/vector: Likewise.
1800 * include/bits/fs_path.h: Likewise.
1801 * include/bits/unique_ptr.h: Do not include <utility>.
1802 * include/experimental/any: Likewise.
1803 * include/experimental/executor: Likewise.
1804 * include/experimental/memory: Likewise.
1805 * include/experimental/optional: Likewise.
1806 * include/experimental/socket: Use __exchange instead
1807 of std::exchange.
1808 * src/filesystem/ops-common.h: Likewise.
1809 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
1810 errors to not use a hardcoded line number.
1811 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
1812 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
1813 Include <utility> for std::as_const.
1814 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
1815 Likewise.
1816 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1817 Likewise.
1818 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
1819 Likewise.
1820 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
1821 Adjust dg-error line number.
1822
1823 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1824
1825 * include/Makefile.am: Add bits/utility.h header.
1826 * include/Makefile.in: Regenerate.
1827 * include/bits/utility.h: New file.
1828 * include/std/utility (tuple_size, tuple_element): Move
1829 to new header.
1830 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
1831 Move to <tuple>.
1832 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
1833 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
1834 * include/bits/ranges_util.h: Include new header instead of
1835 <utility>.
1836 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
1837 partial specializations for std::pair here.
1838 (get): Move overloads for std::pair here.
1839 * include/std/any: Include new header instead of <utility>.
1840 * include/std/array: Likewise.
1841 * include/std/memory_resource: Likewise.
1842 * include/std/optional: Likewise.
1843 * include/std/variant: Likewise.
1844 * include/std/tuple: Likewise.
1845 (__is_tuple_like_impl<tuple<T...>>): Move here.
1846 (get) Declare overloads for std::array.
1847 * include/std/version (__cpp_lib_tuples_by_type): Change type
1848 to long.
1849 * testsuite/20_util/optional/84601.cc: Include <utility>.
1850 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
1851 Likewise.
1852 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1853 Adjust dg-error line numbers.
1854 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
1855 * testsuite/std/ranges/access/cend.cc: Likewise.
1856 * testsuite/std/ranges/access/end.cc: Likewise.
1857 * testsuite/std/ranges/single_view.cc: Likewise.
1858
1859 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
1860
1861 * include/std/future: Include <bits/atomic_base.h> instead of
1862 <atomic>.
1863
1864 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
1865
1866 * include/bits/stl_relops.h: Update documentation comments.
1867
1868 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1869
1870 PR libstdc++/101583
1871 * include/bits/hashtable.h (_Hashtable): Replace mixin with
1872 _Enable_default_ctor. Construct it explicitly in all
1873 non-forwarding, non-defaulted constructors.
1874 * testsuite/23_containers/unordered_map/cons/default.cc: Check
1875 non-default constructors can be used.
1876 * testsuite/23_containers/unordered_set/cons/default.cc:
1877 Likewise.
1878
1879 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
1880
1881 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
1882
1883 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1884
1885 PR libstdc++/94295
1886 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
1887 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
1888 (allocator::allocate, allocator::deallocate): Use new macros.
1889
1890 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1891
1892 PR libstdc++/101571
1893 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
1894 constructor parameter to reference and use addressof.
1895 * testsuite/util/testsuite_iterators.h: Define deleted operator&
1896 overloads for test iterators.
1897
1898 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1899
1900 * include/bits/std_function.h (_Function_base): Add
1901 default member initializers and define constructor as defaulted.
1902 (function::_M_invoker): Add default member initializer.
1903
1904 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
1905
1906 PR libstdc++/100682
1907 * doc/xml/manual/debug_mode.xml: Update documentation about
1908 debug capability of std::array.
1909 * doc/html/*: Regenerate.
1910 * include/debug/array: New file.
1911
1912 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
1913
1914 PR libstdc++/101542
1915 * include/ext/rope (sequence_buffer): Add move constructor and
1916 move assignment operator.
1917 * testsuite/ext/rope/101542.cc: New test.
1918
1919 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1920
1921 PR libstdc++/101510
1922 * src/c++17/fs_ops.cc (fs::create_directories): Use status
1923 instead of symlink_status.
1924 * src/filesystem/ops.cc (fs::create_directories): Likewise.
1925 * testsuite/27_io/filesystem/operations/create_directories.cc:
1926 Check symlink to existing directory.
1927 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
1928 not test with symlinks on Windows.
1929 * testsuite/experimental/filesystem/operations/create_directories.cc:
1930 Check symlink to existing directory.
1931 * testsuite/experimental/filesystem/operations/create_directory.cc:
1932 Do not test with symlinks on Windows.
1933
1934 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1935
1936 PR libstdc++/100863
1937 * include/bits/hashtable.h (_Hashtable): Conditionally delete
1938 default constructor by deriving from _Enable_special_members.
1939 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
1940 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
1941
1942 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
1943
1944 PR libstdc++/101510
1945 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
1946 * testsuite/27_io/filesystem/operations/create_directory.cc:
1947 Test creating directory with name of existing symlink to
1948 directory.
1949 * testsuite/experimental/filesystem/operations/create_directory.cc:
1950 Likewise.
1951
1952 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1953
1954 * include/std/tuple (get<I>): Add deleted overload for bad
1955 index.
1956 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1957 expected errors.
1958
1959 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1960
1961 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
1962 Use __int_traits unconditionally.
1963
1964 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1965
1966 * include/bits/random.h (_Shift::__value): Use constexpr.
1967 (_Select_uint_least_t::type): Use using-declaration.
1968 (_Mod): Likewise.
1969 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1970 line number.
1971
1972 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1973
1974 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
1975 instead of diagnostic pragmas.
1976 * include/bits/functional_hash.h: Likewise.
1977 * include/bits/iterator_concepts.h (__is_signed_int128)
1978 (__is_unsigned_int128): Likewise.
1979 * include/bits/max_size_type.h (__max_size_type): Likewise.
1980 (numeric_limits<__max_size_type>): Likewise.
1981 * include/bits/std_abs.h (abs): Likewise.
1982 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
1983 * include/bits/uniform_int_dist.h (uniform_int_distribution):
1984 Likewise.
1985 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
1986 Likewise.
1987 * include/std/type_traits (__is_integral_helper<INT_N>)
1988 (__is_signed_integer, __is_unsigned_integer)
1989 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
1990 * include/std/limits (__INT_N): Add __extension__ keyword.
1991 * include/bits/random.h (_Select_uint_least_t)
1992 (random_device): Likewise.
1993
1994 2021-07-16 Patrick Palka <ppalka@redhat.com>
1995
1996 PR libstdc++/101231
1997 * include/std/ranges (_CachedPosition::_M_get): For non-forward
1998 ranges, just call __builtin_unreachable.
1999 * testsuite/std/ranges/istream_view.cc (test05): New test.
2000
2001 2021-07-16 Patrick Palka <ppalka@redhat.com>
2002
2003 PR libstdc++/101214
2004 * include/std/ranges (split_view::split_view): Use std::move.
2005 (split_view::_Iterator::_Iterator): Remove redundant
2006 default_initializable constraint.
2007 (split_view::_Sentinel::_Sentinel): Declare.
2008 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
2009
2010 2021-07-16 Marek Polacek <polacek@redhat.com>
2011
2012 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
2013 dg-error.
2014
2015 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2016
2017 * include/bits/unique_ptr.h: Adjust doxygen markup.
2018
2019 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2020
2021 PR libstdc++/101307
2022 * include/std/type_traits: Adjust doxygen markup.
2023
2024 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
2025
2026 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
2027 uses of non-standard integer types.
2028 * include/bits/functional_hash.h: Likewise.
2029 * include/bits/iterator_concepts.h: Likewise.
2030 * include/bits/max_size_type.h: Likewise.
2031 * include/bits/std_abs.h: Likewise.
2032 * include/bits/stl_algobase.h: Likewise.
2033 * include/bits/uniform_int_dist.h: Likewise.
2034 * include/ext/numeric_traits.h: Likewise.
2035 * include/std/type_traits: Likewise.
2036
2037 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2038
2039 PR libstdc++/101427
2040 * include/std/tuple (tuple_element): Improve static_assert text.
2041 (__get_helper): Add deleted overload.
2042 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
2043 __get_helper directly.
2044 (__get_helper2): Remove.
2045 (__find_uniq_type_in_pack): New constexpr helper function.
2046 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
2047 of __get_helper2.
2048 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
2049 expected errors.
2050 * testsuite/20_util/tuple/element_access/101427.cc: New test.
2051
2052 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
2053
2054 PR libstdc++/101429
2055 * include/bits/c++config (__replacement_assert): Add noexcept.
2056 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
2057 instead of __replacement_assert.
2058
2059 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
2060
2061 * include/std/string_view (basic_string_view(It, End)): Add
2062 noexcept-specifier.
2063 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
2064 Check noexcept-specifier. Also check construction without CTAD.
2065
2066 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2067
2068 PR c++/101361
2069 * include/std/string_view (ends_with): Use traits_type::compare
2070 directly.
2071
2072 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
2073
2074 * include/std/string_view: Only include <bits/ranges_base.h>
2075 once, and only for C++20 and later.
2076
2077 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
2078
2079 PR libstdc++/101411
2080 * include/std/span (as_writable_bytes): Add requires-clause.
2081 * testsuite/23_containers/span/101411.cc: New test.
2082
2083 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
2084
2085 * include/std/mutex (__lock_impl): Check
2086 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
2087
2088 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
2089
2090 PR libstdc++/101271
2091 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
2092 Remove noexcept-specifier.
2093 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
2094 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
2095 operator[].
2096
2097 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
2098
2099 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
2100 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
2101 Add some more predefined macros.
2102 * include/bits/fs_fwd.h: Move @addtogroup commands inside
2103 namespaces. Add better documentation.
2104 * include/bits/fs_path.h: Likewise.
2105 * include/experimental/bits/fs_fwd.h: Likewise.
2106 * include/experimental/bits/fs_path.h: Likewise.
2107 * include/ext/throw_allocator.h: Fix typo and improve docs.
2108 * include/std/chrono: Move @addtogroup commands.
2109 * include/std/system_error: Move @addtogroup commands.
2110 * libsupc++/exception: Improve documentation.
2111 * libsupc++/exception.h: Add @since documentation.
2112
2113 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2114
2115 PR libstdc++/101258
2116 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
2117 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
2118 (PREDEFINED): Add/fix some more macros that need to be expanded.
2119 * include/bits/random.h: Stop Doxygen from documenting internal
2120 implementation details.
2121 * include/bits/random.tcc: Likewise.
2122 * include/bits/this_thread_sleep.h: Fix @file name.
2123 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
2124 document internal implementation details.
2125 * include/experimental/bits/simd_detail.h: Do not document
2126 internal implementation details.
2127 * include/experimental/simd: Define Doxygen groups.
2128 * include/experimental/type_traits: Improve documentation for
2129 the header file. Define groups. Use @since commands.
2130 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
2131 declaration before undocumented region.
2132 * include/std/type_traits (true_type, false_type): Use using
2133 declaration instead of typedef.
2134 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
2135 (is_nothrow_invocable_r_v): Move definitions next to other C++17
2136 variable templates.
2137 Do not document internal implementation details. Move misplaced
2138 group-end command. Define group for variable templates.
2139 * include/std/variant: Do not document internal implementation
2140 details.
2141 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2142 line number.
2143
2144 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2145
2146 * include/experimental/simd: Do not define anything pre-C++17.
2147
2148 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
2149
2150 * include/bits/random.tcc [__cpp_inline_variables]: Remove
2151 redundant definitions of static constexpr member variables.
2152 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
2153 line number.
2154
2155 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2156
2157 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
2158 explicit instantiation declarations.
2159 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
2160 explicit instantiation definitions.
2161
2162 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2163
2164 PR libstdc++/97088
2165 * testsuite/17_intro/names.cc: Fix #if condition for names used
2166 by newlib headers.
2167
2168 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2169
2170 PR libstdc++/101236
2171 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
2172 Fail gracefully if element_type is incomplete.
2173 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
2174 the standard doesn't require this test to work for array types.
2175 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
2176 types can be used with array specialization.
2177 * testsuite/20_util/unique_ptr/101236.cc: New test.
2178
2179 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
2180
2181 * doc/xml/manual/intro.xml: Document LWG 415 change.
2182 * doc/html/manual/bugs.html: Regenerate.
2183 * include/bits/istream.tcc (ws): Create sentry and catch
2184 exceptions.
2185 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
2186 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
2187
2188 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2189
2190 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
2191 directly instead of using _M_write. Do setstate(__err) all
2192 outside the try-catch block.
2193 * include/std/ostream (basic_ostream::_M_write): Declare
2194 private. Use __ostream_insert. Do not define for the versioned
2195 namespace.
2196
2197 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2198
2199 * doc/xml/manual/intro.xml: Document LWG 581 change.
2200 * doc/html/manual/bugs.html: Regenerate.
2201 * include/bits/basic_ios.tcc: Whitespace.
2202 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
2203 sentry.
2204 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
2205 additional cases.
2206 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
2207 Likewise.
2208 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
2209 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
2210 Likewise.
2211
2212 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2213
2214 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
2215 is set, not if eofbit is set.
2216 (tellp, seekp, seekp): Create sentry object. Do not set badbit
2217 on exceptions.
2218 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
2219 Adjust expected behaviour.
2220 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
2221 Likewise.
2222 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
2223 Likewise.
2224 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
2225 Likewise.
2226 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
2227 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
2228 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
2229 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
2230
2231 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2232
2233 * include/std/syncstream (basic_syncbuf::swap()): Remove
2234 noexcept, as per LWG 3498.
2235
2236 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
2237
2238 PR libstdc++/97088
2239 * testsuite/17_intro/names.cc: Undef more names for newlib and
2240 also for arm-none-linux-gnueabi.
2241 * testsuite/experimental/names.cc: Disable PCH.
2242
2243 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
2244
2245 * include/experimental/bits/simd.h (__bit_cast): Implement via
2246 __builtin_bit_cast #if available.
2247 (__proposed::simd_bit_cast): Add overloads for simd and
2248 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
2249 available), which return an object of the requested type with
2250 the same bits as the argument.
2251 * include/experimental/bits/simd_math.h: Use simd_bit_cast
2252 instead of __bit_cast to allow casts to fixed_size_simd.
2253 (copysign): Remove branch that was only required if __bit_cast
2254 cannot be constexpr.
2255 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
2256 from __bit_cast to __proposed::simd_bit_cast since the former
2257 will not cast fixed_size objects anymore.
2258
2259 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2260
2261 * include/experimental/bits/simd_math.h
2262 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
2263 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
2264 __arg3.
2265
2266 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2267
2268 * include/experimental/bits/simd.h (__execute_on_index_sequence)
2269 (__execute_on_index_sequence_with_return)
2270 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
2271 attribute.
2272
2273 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2274
2275 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
2276 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
2277 roundp[sd] calls.
2278
2279 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2280
2281 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
2282 implementation doesn't require a _VecBltnBtmsk ABI tag, it
2283 requires either a 64-Byte input (in which case AVX512F must be
2284 available) or AVX512VL.
2285
2286 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2287
2288 * include/experimental/bits/simd_math.h: Undefine internal
2289 macros after use.
2290 (frexp): Move #if to a more sensible position and reformat
2291 preceding code.
2292 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
2293 duplicating the code here.
2294 (modf): Simplify condition.
2295
2296 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2297
2298 * include/experimental/bits/simd_math.h (fabs): Remove
2299 fabs(simd<integral>) overload.
2300
2301 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2302
2303 * include/experimental/bits/simd_converter.h
2304 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
2305 * include/experimental/bits/simd_fixed_size.h
2306 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
2307 arguments by const-ref.
2308 (_S_masked_unary): Pass _SimdTuple by const-ref.
2309
2310 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2311
2312 * include/experimental/bits/simd_fixed_size.h
2313 (_AbisInSimdTuple): Removed.
2314
2315 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
2316
2317 * include/experimental/bits/simd.h: Add missing operator~
2318 overload for simd<floating-point> to __float_bitwise_operators.
2319 * include/experimental/bits/simd_builtin.h
2320 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
2321 implement complement for floating-point vectors.
2322 * include/experimental/bits/simd_fixed_size.h
2323 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
2324 copysign implementation of _SimdTuple members.
2325 * include/experimental/bits/simd_math.h (copysign): Call
2326 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
2327 generic copysign implementation using the new ~ operator.
2328
2329 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
2330
2331 * testsuite/experimental/simd/README.md: Fix typos.
2332
2333 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
2334
2335 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
2336 Add noexcept.
2337 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
2338 conditional noexcept as per LWG 2762.
2339 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
2340 dereferencing cannot throw.
2341 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
2342 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
2343 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
2344
2345 2021-06-23 Patrick Palka <ppalka@redhat.com>
2346
2347 PR c++/101174
2348 * testsuite/23_containers/multiset/cons/deduction.cc:
2349 Uncomment CTAD example that was rejected by this bug.
2350 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2351
2352 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
2353
2354 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
2355 logic in comment.
2356
2357 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2358
2359 * testsuite/experimental/simd/README.md: New file.
2360
2361 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2362
2363 * testsuite/experimental/simd/driver.sh: Rewrite output
2364 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
2365 to be used twice. Add -x and -o short options. Parse long
2366 options with = instead of separating space generically. Parce
2367 contracted short options. Make unrecognized options an error.
2368 If same-line output is active, trap on EXIT to increment the
2369 progress (only with --percentage), erase the line and print the
2370 current status.
2371 * testsuite/experimental/simd/generate_makefile.sh: Initialize
2372 helper files for progress account keeping. Update help target
2373 for changes to DRIVEROPTS.
2374
2375 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
2376
2377 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
2378 and associated warning.
2379 * testsuite/Makefile.in: Regenerate.
2380
2381 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
2382 Jonathan Wakely <jwakely@redhat.com>
2383 Ulrich Drepper <drepper@redhat.com>
2384
2385 * include/std/chrono (chrono::year::is_leap()): Optimize.
2386
2387 2021-06-23 Patrick Palka <ppalka@redhat.com>
2388
2389 PR c++/86439
2390 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
2391 CTAD examples.
2392 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
2393 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
2394 Mention one of the replaced examples is broken due to PR101174.
2395 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2396 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
2397 ambiguous CTAD examples.
2398 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
2399 Likewise.
2400 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
2401 Likewise.
2402 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
2403
2404 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
2405
2406 * include/std/mutex (__detail::__try_lock_impl): Rename
2407 parameter to avoid clashing with newlib's __lockable macro.
2408 (try_lock): Add 'inline' specifier.
2409 * testsuite/17_intro/names.cc: Add check for __lockable.
2410 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
2411
2412 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
2413 Matthias Kretz <m.kretz@gsi.de>
2414
2415 * include/std/mutex (lock): Replace recursion with iteration
2416 when lockables all have the same type.
2417 (__detail::__try_lock_impl): Likewise. Pass lockables as
2418 parameters, instead of a tuple. Always lock the first one, and
2419 recurse for the rest.
2420 (__detail::__lock_impl): Adjust call to __try_lock_impl.
2421 (__detail::__try_to_lock): Remove.
2422 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
2423 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
2424 arguments.
2425 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
2426 std::try_lock.
2427 * testsuite/30_threads/try_lock/5.cc: New test.
2428
2429 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
2430
2431 * include/std/memory (declare_reachable, undeclare_reachable)
2432 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
2433 (pointer_safety): Only define for C++11 to C++20 inclusive.
2434 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
2435
2436 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
2437
2438 * include/bits/random.h (seed_seq): Constrain initializer-list
2439 constructor.
2440 * include/bits/random.tcc (seed_seq): Add template parameter.
2441 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
2442 for noexcept.
2443 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
2444 constraints.
2445
2446 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
2447
2448 PR libstdc++/100806
2449 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
2450 Force _M_release() to wake all waiting threads.
2451 * testsuite/30_threads/semaphore/100806.cc: New test.
2452
2453 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
2454
2455 * include/std/mutex (__try_to_lock): Move to __detail namespace.
2456 (struct __try_lock_impl): Replace with ...
2457 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
2458 function templates to implement std::try_lock.
2459 (try_lock): Use new __try_lock_impl.
2460 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
2461 template to implement std::lock.
2462 (lock): Use __lock_impl.
2463
2464 2021-06-21 Patrick Palka <ppalka@redhat.com>
2465
2466 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
2467
2468 2021-06-20 Patrick Palka <ppalka@redhat.com>
2469
2470 * include/std/ranges (__non_propagating_cache::operator bool):
2471 Define for split_view::begin().
2472 (split_view): Define as per P2210.
2473 (views::__detail::__can_split_view): Define.
2474 (views::_Split, views::split): Define.
2475 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
2476 Test views::split.
2477 * testsuite/std/ranges/adaptors/split.cc: New test.
2478 * testsuite/std/ranges/p2325.cc (test08a): New test.
2479 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
2480
2481 2021-06-20 Patrick Palka <ppalka@redhat.com>
2482
2483 * include/std/ranges: Rename views::split to views::lazy_split,
2484 split_view to lazy_split_view, etc. throughout.
2485 * testsuite/std/ranges/*: Likewise.
2486 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
2487 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
2488
2489 2021-06-20 Patrick Palka <ppalka@redhat.com>
2490
2491 * include/std/ranges (split_view::_OuterIter::__at_end):
2492 Check _M_trailing_empty.
2493 (split_view::_OuterIter::_M_trailing_empty): Define this
2494 data member.
2495 (split_view::_OuterIter::operator++): Set _M_trailing_empty
2496 appropriately.
2497 (split_view::_OuterIter::operator==): Compare
2498 _M_trailing_empty.
2499 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
2500 split parts instead of one.
2501 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
2502
2503 2021-06-20 Patrick Palka <ppalka@redhat.com>
2504
2505 * include/std/ranges (split_view::_InnerIter::base): Define as
2506 per P2210.
2507
2508 2021-06-19 Patrick Palka <ppalka@redhat.com>
2509
2510 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
2511 Consider _Base instead of _Vp as per LWG 3555.
2512 (elements_view::_Iterator::_S_iter_concept): Likewise.
2513
2514 2021-06-19 Patrick Palka <ppalka@redhat.com>
2515
2516 * include/std/ranges (split_view::_OuterIter::value_type::begin):
2517 Remove the non-const overload, and remove the copyable constraint
2518 on the const overload as per LWG 3553.
2519
2520 2021-06-19 Patrick Palka <ppalka@redhat.com>
2521
2522 * include/bits/stl_iterator.h
2523 (__detail::__common_iter_use_postfix_proxy): Add
2524 move_constructible constraint as per LWG 3546.
2525 (common_iterator::__postfix_proxy): Adjust initializer of
2526 _M_keep as per LWG 3546.
2527
2528 2021-06-18 Patrick Palka <ppalka@redhat.com>
2529
2530 PR libstdc++/100387
2531 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
2532 to limit comparison complexity to 3*N/2.
2533 (__minmax_element_fn::operator()): Likewise.
2534 (shift_right): Avoid premature std::move of __result.
2535 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
2536 New tests.
2537 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
2538 Likewise.
2539
2540 2021-06-18 Patrick Palka <ppalka@redhat.com>
2541
2542 * include/std/concepts (convertible_to): Just use declval as per
2543 LWG 3557.
2544
2545 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
2546
2547 PR libstdc++/95833
2548 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
2549 incorrect static_assert with ones matching the 'Mandates'
2550 conditions in the standard.
2551 * testsuite/26_numerics/reduce/95833.cc: New test.
2552
2553 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
2554
2555 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
2556 diagnostic pragma to suppress -Wstringop-overread error.
2557
2558 2021-06-18 Patrick Palka <ppalka@redhat.com>
2559
2560 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
2561 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
2562 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
2563 * include/bits/ranges_util.h: ... here.
2564 * include/std/ranges (__detail::find, __detail::find_if)
2565 (__detail::find_if_not, __detail::mismatch): Remove.
2566 (filter_view): Use ranges::find_if instead.
2567 (drop_while_view): Use ranges::find_if_not instead.
2568 (split_view): Use ranges::find and ranges::mismatch instead.
2569
2570 2021-06-18 Patrick Palka <ppalka@redhat.com>
2571
2572 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
2573 default_initializable requirement.
2574 * include/bits/ranges_base.h (ranges::view): Likewise.
2575 * include/bits/ranges_util.h (subrange): Constrain the default
2576 ctor.
2577 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
2578 default ctor.
2579 (front_insert_iterator): Likewise.
2580 (insert_iterator): Likewise. Remove NSDMIs.
2581 (common_iterator): Constrain the default ctor.
2582 (counted_iterator): Likewise.
2583 * include/bits/stream_iterator.h (ostream_iterator): Remove the
2584 default ctor.
2585 * include/std/ranges (__detail::__box::operator=): Handle
2586 self-assignment in the primary template.
2587 (__detail::__box): In the partial specialization: adjust
2588 constraints as per P2325. Add specialized operator= for the
2589 case when the wrapped type is not copyable. Constrain the
2590 default ctor. Avoid list-initialization.
2591 (single_view): Constraint the default ctor.
2592 (iota_view): Relax semiregular constraint to copyable.
2593 Constrain the default ctor.
2594 (iota_view::_Iterator): Constraint the default ctor.
2595 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
2596 Remove redundant checks for empty _M_stream.
2597 (basic_istream_view::_Iterator): Likewise.
2598 (ref_view): Remove the default ctor. Remove NSDMIs.
2599 (ref_view::_Iterator): Constrain the default ctor.
2600 (__detail::__non_propagating_cache::operator=): Define overload
2601 for assigning from a value of the underlying type.
2602 (filter_view): Likewise.
2603 (filter_view::_Iterator): Likewise.
2604 (transform_view): Likewise.
2605 (transform_view::_Iterator): Likewise.
2606 (take_view): Likewise.
2607 (take_view::_Iterator): Likewise.
2608 (take_while_view): Likewise.
2609 (take_while_view::_Iterator): Likewise.
2610 (drop_while_view): Likewise.
2611 (drop_while_view::_Iterator): Likewise.
2612 (join_view): Likewise.
2613 (split_view::_OuterIter::__current): Adjust after changing the
2614 type of _M_current.
2615 (split_view::_M_current): Wrap it in a __non_propagating_cache.
2616 (split_view::split_view): Constrain the default ctor.
2617 (common_view): Constrain the default ctor.
2618 (reverse_view): Likewise.
2619 (elements_view): Likewise.
2620 * include/std/span (enable_view<span<_ElementType, _Extent>>):
2621 Define this partial specialization to true unconditionally.
2622 * include/std/version (__cpp_lib_ranges): Adjust value.
2623 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
2624 Don't attempt to default construct a back_insert_iterator.
2625 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
2626 Don't attempt to default construct a front_insert_iterator.
2627 * testsuite/24_iterators/insert_iterator/constexpr.cc:
2628 Don't attempt to default construct an insert_iterator.
2629 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
2630 Remove this test for default constructibility of ostream_iterator.
2631 * testsuite/std/ranges/97600.cc: Don't attempt to default
2632 construct a basic_istream_view.
2633 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
2634 Rename to ...
2635 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
2636 (test02): Adjust now that __box is copyable-box not
2637 semiregular-box.
2638 (test03): New test.
2639 * testsuite/std/ranges/p2325.cc: New test.
2640 * testsuite/std/ranges/single_view.cc (test06): New test.
2641 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
2642 require default_initializable.
2643
2644 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
2645
2646 PR libstdc++/91488
2647 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
2648 define when is_constant_evaluated is available.
2649 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
2650 Likewise.
2651 (__constant_string_p, __constant_array_p): Remove.
2652 (char_traits): Use is_constant_evaluated directly.
2653 * include/std/version (__cpp_lib_constexpr_char_traits)
2654 (__cpp_lib_constexpr_string): Only define when
2655 is_constant_evaluated is available.
2656
2657 2021-06-17 Patrick Palka <ppalka@redhat.com>
2658
2659 PR libstdc++/100940
2660 * include/std/ranges (__adaptor::_Partial): For the "simple"
2661 forwarding partial specializations, also require that
2662 the extra arguments are trivially copyable.
2663 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
2664
2665 2021-06-17 Patrick Palka <ppalka@redhat.com>
2666
2667 PR libstdc++/100940
2668 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
2669 template form of _S_has_simple_extra_args.
2670 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
2671 parameter pack. Try to treat _S_has_simple_extra_args as a
2672 variable template parameterized by _Args.
2673 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
2674 __adaptor_has_simple_extra_args.
2675 (views::_Take::_S_has_simple_extra_args): Templatize according
2676 to the type of the extra argument.
2677 (views::_Drop::_S_has_simple_extra_args): Likewise.
2678 (views::_Split::_S_has_simple_extra_args): Define.
2679 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
2680 Adjust after changes to _S_has_simple_extra_args mechanism.
2681 (test03): Define.
2682
2683 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
2684
2685 * include/bits/iterator_concepts.h (__decay_copy): Name type.
2686
2687 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
2688
2689 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2690 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2691 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2692 (ranges::empty, ranges::data, ranges::cdata): Remove final
2693 keywords and deleted operator& overloads.
2694 * testsuite/24_iterators/customization_points/iter_move.cc: Use
2695 new is_customization_point_object function.
2696 * testsuite/24_iterators/customization_points/iter_swap.cc:
2697 Likewise.
2698 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
2699 Likewise.
2700 * testsuite/std/ranges/access/begin.cc: Likewise.
2701 * testsuite/std/ranges/access/cbegin.cc: Likewise.
2702 * testsuite/std/ranges/access/cdata.cc: Likewise.
2703 * testsuite/std/ranges/access/cend.cc: Likewise.
2704 * testsuite/std/ranges/access/crbegin.cc: Likewise.
2705 * testsuite/std/ranges/access/crend.cc: Likewise.
2706 * testsuite/std/ranges/access/data.cc: Likewise.
2707 * testsuite/std/ranges/access/empty.cc: Likewise.
2708 * testsuite/std/ranges/access/end.cc: Likewise.
2709 * testsuite/std/ranges/access/rbegin.cc: Likewise.
2710 * testsuite/std/ranges/access/rend.cc: Likewise.
2711 * testsuite/std/ranges/access/size.cc: Likewise.
2712 * testsuite/std/ranges/access/ssize.cc: Likewise.
2713 * testsuite/util/testsuite_iterators.h
2714 (is_customization_point_object): New function.
2715
2716 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2717
2718 * include/bits/ranges_base.h (ranges::begin, ranges::end)
2719 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
2720 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
2721 (ranges::empty, ranges::data, ranges::cdata): Make types final.
2722 Add deleted operator& overloads.
2723 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
2724 Likewise.
2725 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
2726 ill-formed & expressions with using-declarations. Add checks for
2727 other function objects.
2728
2729 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2730
2731 * include/bits/ranges_util.h (view_interface): Add noexcept to
2732 empty, operator bool, data and size members.
2733 (subrange): Add noexcept to constructors.
2734 * include/std/ranges (single_view, ref_view): Add noexcept to
2735 constructors.
2736 (views::single, views::all): Add noexcept.
2737 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
2738 * testsuite/std/ranges/single_view.cc: Likewise.
2739
2740 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2741
2742 * include/bits/ranges_util.h (subrange): Add __size_type typedef
2743 and use it to simplify declarations.
2744 (subrange(i, s, n)): Remove assertion.
2745 * testsuite/std/ranges/subrange/constexpr.cc: New test.
2746
2747 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
2748
2749 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
2750 Replace with function object.
2751 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
2752 __decay_copy unqualified.
2753 * include/bits/ranges_base.h (__member_end, __adl_end):
2754 Likewise. Use __range_iter_t for type of ranges::begin.
2755 (__member_rend): Use correct value category for rbegin argument.
2756 (__member_data): Use __decay_copy unqualified.
2757 (__begin_data): Use __range_iter_t for type of ranges::begin.
2758
2759 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2760
2761 * include/bits/ranges_base.h (ranges::empty): Check whether
2762 conversion to bool can throw.
2763 * testsuite/std/ranges/access/empty.cc: Check for correct
2764 noexcept-specifier.
2765
2766 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2767
2768 PR libstdc++/100894
2769 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
2770 use the type if it's a reference.
2771 * testsuite/20_util/common_reference/100894.cc: New test.
2772
2773 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2774
2775 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2776 Add dg-require-filesystem-ts directive.
2777
2778 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2779
2780 PR libstdc++/101034
2781 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
2782 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
2783 to use lvalue.
2784 * testsuite/20_util/any/cons/101034.cc: New test.
2785
2786 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2787
2788 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
2789 -std=gnu++17 option.
2790
2791 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2792
2793 PR libstdc++/101056
2794 * libsupc++/compare (compare_partial_order_fallback): Add
2795 constraint using reversed parameter order, as per LWG 3465.
2796 * testsuite/18_support/comparisons/algorithms/fallback.cc:
2797 Adjust expected result.
2798
2799 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2800
2801 * libsupc++/compare (__decayed_same_as): New helper concept.
2802 (strong_order, weak_order, partial_order): Constrain with new
2803 concept instead of using static_assert.
2804 (compare_strong_order_fallback, compare_weak_order_fallback)
2805 (compare_partial_order_fallback): Likewise. Do not deduce return
2806 types. Remove redundant if-constexpr checks.
2807 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
2808
2809 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2810
2811 PR libstdc++/101055
2812 * include/std/tuple: Use reserved form of attribute name.
2813 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
2814 check for no_unique_address.
2815 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
2816 Likewise.
2817 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
2818 Likewise.
2819
2820 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
2821
2822 * include/bits/fs_path.h (operator==, operator<=>): Use new
2823 _S_compare function.
2824 (path::_S_compare): New function to call path::compare in a
2825 context where path::iterator is complete.
2826 * include/experimental/bits/fs_path.h (operator<, operator==):
2827 Define after path::iterator is complete.
2828 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
2829 test.
2830 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2831 New test.
2832
2833 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
2834
2835 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
2836 test logic with constexpr check for is_always_lock_free.
2837
2838 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
2839
2840 PR libstdc++/100982
2841 * include/std/optional (optional::operator=(const optional<U>&)):
2842 Fix value category used in is_assignable check.
2843 * testsuite/20_util/optional/assignment/100982.cc: New test.
2844
2845 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
2846
2847 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
2848 * include/bits/iterator_concepts.h (indirectly_readable_traits):
2849 Add LWG issue number to comment.
2850 * include/std/memory_resource (polymorphic_allocator::release):
2851 Deprecate.
2852 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
2853 dg-warning for deprecation. Also check std::allocator<void>.
2854
2855 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
2856
2857 PR libstdc++/100889
2858 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
2859 Change parameter type from _Tp to _Tp*.
2860 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
2861 coverage of types tested.
2862
2863 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
2864
2865 * include/std/barrier (__tree_barrier::_M_arrive): Remove
2866 unnecessary hasher instantiation.
2867
2868 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
2869
2870 * include/experimental/propagate_const (swap): Constrain.
2871 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
2872
2873 2021-06-07 Avi Kivity <avi@scylladb.com>
2874
2875 PR libstdc++/100900
2876 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
2877 Add missing typename.
2878
2879 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
2880
2881 PR libstdc++/98842
2882 * include/std/optional (operator<=>(const optional<T>& const U&)):
2883 Add missing constraint and add workaround for template
2884 recursion.
2885 * testsuite/20_util/optional/relops/three_way.cc: Check that
2886 type without equality comparison cannot be compared when wrapped
2887 in std::optional.
2888
2889 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
2890
2891 PR libstdc++/100824
2892 * include/bits/ranges_base.h (_SSize): Return signed type.
2893 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
2894
2895 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2896
2897 * include/bits/ranges_base.h (_SSize): Return the result of
2898 ranges::size converted to the wider of make-signed-like-t<S> and
2899 ptrdiff_t, rather than the ranges different type.
2900 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
2901 for an iota_view that uses an integer class type for its
2902 difference_type.
2903
2904 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2905
2906 PR libstdc++/100824
2907 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
2908 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
2909
2910 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2911
2912 PR libstdc++/100824
2913 * include/bits/iterator_concepts.h (__detail::__decay_copy)
2914 (__detail::__member_begin, __detail::__adl_begin): Move to
2915 namespace ranges::__cust_access.
2916 (__detail::__ranges_begin): Likewise, and rename to __begin.
2917 Remove redundant static assertion.
2918 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
2919 Use lvalue in noexcept specifier.
2920 (__as_const): Add non-deduced parameter for value category.
2921 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
2922 __as_const.
2923 (__member_size, __adl_size, __member_empty, __size0_empty):
2924 (__eq_iter_empty, __adl_data): Use lvalue objects in
2925 requirements.
2926 (__sentinel_size): Likewise. Add check for conversion to
2927 unsigned-like.
2928 (__member_data): Allow non-lvalue types to satisfy the concept,
2929 but use lvalue object in requirements.
2930 (_Size, _SSize): Remove forwarding to always use an lvalue.
2931 (_Data): Likewise. Add static assertion for arrays.
2932 * testsuite/std/ranges/access/cdata.cc: Adjust expected
2933 behaviour for rvalues. Add negative tests for ill-formed
2934 expressions.
2935 * testsuite/std/ranges/access/data.cc: Likewise.
2936 * testsuite/std/ranges/access/empty.cc: Adjust expected
2937 behaviour for rvalues.
2938 * testsuite/std/ranges/access/size.cc: Likewise.
2939
2940 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
2941
2942 * include/std/any (any::_Manager::_S_access): New static
2943 function to access the contained value.
2944 (any::emplace, __any_caster): Use _S_access member of the
2945 manager type.
2946
2947 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2948
2949 * doc/xml/manual/status_cxx2020.xml:
2950 * doc/html/*: Regenerate.
2951 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
2952 Define.
2953 * include/std/version (__cpp_lib_generic_unordered_lookup):
2954 Define.
2955 * testsuite/23_containers/unordered_map/operations/1.cc: Check
2956 feature test macro.
2957 * testsuite/23_containers/unordered_set/operations/1.cc:
2958 Likewise.
2959
2960 2021-06-03 Patrick Palka <ppalka@redhat.com>
2961
2962 * include/bits/ranges_algo.h (__detail::__can_reread_output):
2963 Factor out this concept from ...
2964 (__unique_copy_fn::operator()): ... here. Use the concept
2965 throughout.
2966 * testsuite/std/ranges/range.cc: Remove now ill-formed use
2967 of range_value_t on an output_range.
2968 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2969 Define value_type, pointer and reference member types to void.
2970
2971 2021-06-03 Patrick Palka <ppalka@redhat.com>
2972
2973 PR libstdc++/100577
2974 * include/std/ranges (_RangeAdaptorClosure): Document
2975 _S_has_simple_call_op mechanism.
2976 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
2977 (__closure_has_simple_call_op): New concept.
2978 (__adaptor_has_simple_extra_args): Likewise.
2979 (_Partial<_Adaptor, _Args...>): New partial specialization.
2980 (_Partial<_Adaptor, _Arg>): Likewise.
2981 (_Pipe<_Lhs, _Rhs>): Likewise.
2982 (views::_All::_S_has_simple_call_op): Define to true.
2983 (views::_Filter::_S_has_simple_extra_args): Likewise.
2984 (views::_Transform::_S_has_simple_extra_args): Likewise.
2985 (views::_Take::_S_has_simple_extra_args): Likewise.
2986 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
2987 (views::_Drop::_S_has_simple_extra_args): Likewise.
2988 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
2989 (views::_Join::_S_has_simple_call_op): Likewise.
2990 (views::_Split): Document why we don't define
2991 _S_has_simple_extra_args to true for this adaptor.
2992 (views::_Common::_S_has_simple_call_op): Define to true.
2993 (views::_Reverse::_S_has_simple_call_op): Likewise.
2994 (views::_Elements::_S_has_simple_call_op): Likewise.
2995 * testsuite/std/ranges/adaptors/100577.cc: New test.
2996
2997 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2998
2999 PR libstdc++/100863
3000 PR libstdc++/65816
3001 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
3002 Value-initialize subobject.
3003 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
3004 Remove XFAIL.
3005 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
3006 Remove XFAIL.
3007
3008 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3009
3010 PR libstdc++/96088
3011 * testsuite/23_containers/unordered_map/96088.cc: Adjust
3012 expected number of allocations.
3013 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3014
3015 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
3016
3017 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
3018 * doc/xml/manual/status_cxxtr1.xml: Likewise.
3019 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
3020 * doc/html/*: Regenerate.
3021
3022 2021-06-01 Patrick Palka <ppalka@redhat.com>
3023
3024 PR c++/65816
3025 * testsuite/23_containers/deque/allocator/default_init.cc,
3026 testsuite/23_containers/forward_list/allocator/default_init.cc,
3027 testsuite/23_containers/list/allocator/default_init.cc,
3028 testsuite/23_containers/map/allocator/default_init.cc,
3029 testsuite/23_containers/set/allocator/default_init.cc,
3030 testsuite/23_containers/vector/allocator/default_init.cc,
3031 testsuite/23_containers/vector/bool/allocator/default_init.cc:
3032 Remove xfail.
3033
3034 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3035
3036 * testsuite/23_containers/unordered_map/96088.cc: Change
3037 effective target to c++17.
3038 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
3039
3040 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3041
3042 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
3043 isblank for C++11 and later.
3044
3045 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3046
3047 PR libstdc++/100833
3048 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
3049 Fix return value for no-op case.
3050 * testsuite/24_iterators/range_operations/advance.cc: Test
3051 return values of three-argument overload.
3052
3053 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
3054
3055 PR libstdc++/99453
3056 * python/Makefile.am: Use archive name for printer hook if no
3057 dynamic library name is available.
3058 * python/Makefile.in: Regenerate.
3059
3060 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
3061
3062 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
3063 Compilers for Linux: Compatibility with GNU Compilers" article.
3064 * doc/html/manual/abi.html: Regenerate.
3065
3066 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
3067
3068 * include/debug/formatter.h
3069 (_Error_formatter::_Parameter::_Named): New.
3070 (_Error_formatter::_Parameter::_Type): Inherit latter.
3071 (_Error_formatter::_Parameter::_M_integer): Likewise.
3072 (_Error_formatter::_Parameter::_M_string): Likewise.
3073 * src/c++11/debug.cc: Include <cstring>.
3074 (_Print_func_t): New.
3075 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
3076 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
3077 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
3078 (print_type): Rename in...
3079 (print_type_info): ...this. Use pretty_print.
3080 (print_address, print_integer): New.
3081 (print_named_name, print_iterator_constness, print_iterator_state): New.
3082 (print_iterator_seq_type): New.
3083 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
3084 (print_field): Use latters.
3085 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
3086 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
3087 Change signature to...
3088 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
3089 ...this and adapt. Remove intermediate buffer to render input string.
3090 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
3091
3092 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
3093
3094 PR libstdc++/100768
3095 * include/bits/ranges_base.h (advance, distance, next, prev):
3096 Replace function templates with function objects.
3097 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
3098 Adjust for changes to function objects.
3099 * testsuite/std/ranges/adaptors/elements.cc: Add using
3100 declarations for names from namespace ranges.
3101 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3102 * testsuite/24_iterators/range_operations/100768.cc: New test.
3103
3104 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
3105
3106 PR libstdc++/96088
3107 * include/bits/hashtable_policy.h (_Select2nd): New.
3108 (_NodeBuilder<>): New.
3109 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
3110 (_AllocNode<>::operator()): Likewise.
3111 * include/bits/hashtable.h
3112 (_Hashtable<>::__node_builder_t): New.
3113 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
3114 New.
3115 (_Hashtable<>::_S_forward_key): New.
3116 (_Hashtable<>::_M_insert): Use latter.
3117 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
3118 Instantiate node first, compute hash code second.
3119 * testsuite/23_containers/unordered_map/96088.cc: New test.
3120 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
3121 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
3122 * testsuite/23_containers/unordered_set/96088.cc: New test.
3123 * testsuite/util/replacement_memory_operators.h
3124 (counter::_M_increment): New.
3125 (counter::_M_decrement): New.
3126 (counter::reset()): New.
3127
3128 2021-05-24 Patrick Palka <ppalka@redhat.com>
3129
3130 PR libstdc++/100479
3131 * include/std/ranges (__detail::__non_propagating_cache): Move
3132 definition up to before that of _CachedPosition. Make base
3133 class _Optional_base protected instead of private. Add const
3134 overload for operator*.
3135 (__detail::_CachedPosition): Rewrite the partial specialization
3136 for forward ranges as a derived class of __non_propagating_cache.
3137 Remove the size constraint on the partial specialization for
3138 random access ranges. Add copy/move/copy-assignment/move-assignment
3139 members to the offset partial specialization for random
3140 access ranges that propagate the cached value but additionally
3141 invalidate it in the source object on move.
3142 * testsuite/std/ranges/adaptors/100479.cc: New test.
3143
3144 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
3145
3146 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
3147 call to ranges::next.
3148 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
3149 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
3150 Likewise.
3151 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
3152 swap_ranges.
3153
3154 2021-05-21 Patrick Palka <ppalka@redhat.com>
3155
3156 PR libstdc++/100606
3157 * include/std/ranges (drop_while_view::begin): Assert the
3158 precondition added by LWG 3490.
3159
3160 2021-05-21 Patrick Palka <ppalka@redhat.com>
3161
3162 PR libstdc++/100690
3163 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
3164 Split out this member function from ...
3165 (iota_view::_Sentinel::operator-): ... here, for sake of access
3166 control.
3167 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
3168
3169 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3170
3171 * include/bits/random.tcc (__representable_as_double)
3172 (__p1_representable_as_double): Add "" to static asserts.
3173
3174 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
3175
3176 PR libstdc++/100676
3177 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
3178 (__glibcxx_constexpr_assert): ... this.
3179 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
3180 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
3181 or __glibcxx_assert_impl.
3182 (__glibcxx_assert_2): Remove
3183 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
3184 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
3185 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3186 Adjust expected error.
3187 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3188 Likewise.
3189 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3190 Likewise.
3191 Likewise.
3192 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3193 Likewise.
3194 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3195 Likewise.
3196 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3197 Likewise.
3198 * testsuite/23_containers/span/back_neg.cc: Likewise.
3199 * testsuite/23_containers/span/front_neg.cc: Likewise.
3200 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
3201
3202 2021-05-20 Patrick Palka <ppalka@redhat.com>
3203
3204 PR libstdc++/100639
3205 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
3206 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
3207 (reverse_iterator::reference): Likewise, but with iter_reference_t.
3208 (reverse_iterator::value_type): Likewise, but with iter_value_t.
3209 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
3210 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
3211
3212 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
3213
3214 PR libstdc++/100361
3215 * include/std/charconv (to_chars): Hide the overloads for
3216 floating-point types for 16 bit targets.
3217 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
3218 * testsuite/20_util/to_chars/double.cc: Run this test only on
3219 size32plus targets.
3220 * testsuite/20_util/to_chars/float.cc: Likewise.
3221 * testsuite/20_util/to_chars/long_double.cc: Likewise.
3222
3223 2021-05-18 Patrick Palka <ppalka@redhat.com>
3224
3225 PR libstdc++/100631
3226 * include/std/ranges (elements_view::_Sentinel::operator-): Use
3227 _M_distance_from in the other operator- overload too.
3228 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
3229
3230 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
3231
3232 * testsuite/lib/prune.exp: Add note about 'dg-note'.
3233
3234 2021-05-18 Patrick Palka <ppalka@redhat.com>
3235
3236 PR libstdc++/100475
3237 * include/std/ranges (__box::__box): Use non-list-initialization
3238 in member initializer list of in-place constructor of the
3239 partial specialization for semiregular types.
3240 (__box::operator->): Use std::__addressof.
3241 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
3242 (test02): New test.
3243 * testsuite/std/ranges/single_view.cc (test04): New test.
3244
3245 2021-05-18 Patrick Palka <ppalka@redhat.com>
3246
3247 PR libstdc++/100621
3248 * include/std/ranges (reverse_view::_S_needs_cached_begin):
3249 Set to true if the underlying non-common random-access range
3250 doesn't have a sized sentinel.
3251
3252 2021-05-18 Patrick Palka <ppalka@redhat.com>
3253
3254 PR libstdc++/100631
3255 * include/std/ranges (elements_view::_Iterator): Also befriend
3256 _Sentinel<!_Const>.
3257 (elements_view::_Sentinel::_M_equal): Templatize.
3258 (elements_view::_Sentinel::_M_distance_from): Split out from ...
3259 (elements_view::_Sentinel::operator-): ... here. Depend on
3260 _Base2 instead of _Base in the return type.
3261 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
3262 New tests.
3263
3264 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
3265
3266 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
3267 until value change observed.
3268 (__waiter_base::_M_laundered): New member.
3269 (__waiter_base::_M_notify): Check _M_laundered to determine
3270 whether to wake one or all.
3271 (__detail::__atomic_compare): Return true if call to
3272 __builtin_memcmp() == 0.
3273 (__waiter_base::_S_do_spin_v): Adjust predicate.
3274 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
3275 test.
3276
3277 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3278
3279 PR libstdc++/100630
3280 * include/experimental/bits/fs_path.h (__is_constructible_from):
3281 Test construction from a const lvalue, not an rvalue.
3282 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
3283 * testsuite/experimental/filesystem/path/construct/100630.cc:
3284 New test.
3285
3286 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
3287
3288 PR libstdc++/89728
3289 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
3290 Declare (but do not define) partial specialization.
3291 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
3292
3293 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3294
3295 * include/std/thread (jthread::_S_create): Fix static assert
3296 message.
3297 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
3298 * testsuite/30_threads/jthread/jthread.cc: Do not require
3299 pthread effective target.
3300 * testsuite/30_threads/jthread/2.cc: Moved to...
3301 * testsuite/30_threads/jthread/version.cc: ...here.
3302
3303 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
3304
3305 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
3306 * doc/Makefile.in: Regenerate.
3307 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
3308 value.
3309 * scripts/run_doxygen (print_usage): Always print to stdout and
3310 do not exit.
3311 (fail): New function for exiting on error.
3312 (parse_options): Handle --latex_cmd. Do not treat --help the
3313 same as errors. Simplify handling of required arguments.
3314
3315 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
3316
3317 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3318 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
3319 warnings. Replace bitwise AND with logical AND in loop
3320 condition.
3321 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3322 Replace bitwise AND with logical AND in loop condition.
3323 * testsuite/util/pstl/test_utils.h: Remove unused parameter
3324 names.
3325
3326 2021-05-11 Patrick Palka <ppalka@redhat.com>
3327
3328 * src/c++17/ryu/LOCAL_PATCHES: Update.
3329 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
3330 Remove declarations for never-defined functions.
3331 * testsuite/20_util/to_chars/4.cc: New test.
3332
3333 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
3334
3335 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
3336 alternative for macro.
3337 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
3338 target keyword.
3339 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
3340 syntax.
3341
3342 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
3343
3344 * include/bits/allocator.h (allocator<void>) [C++20]: Add
3345 missing noexcept to constructor. Restore missing POCMA and
3346 is_always_equal_traits.
3347 [C++17]: Make construct and destroy members private and
3348 declare allocator_traits as a friend.
3349 * include/bits/memoryfwd.h (allocator_traits): Declare.
3350 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
3351 Add nodiscard attribute. Add static assertion for LWG 3307.
3352 * include/ext/new_allocator.h (new_allocator::allocate): Add
3353 static assertion for LWG 3307.
3354 * testsuite/20_util/allocator/void.cc: Check that converting
3355 constructor is noexcept. Check for propagation traits and
3356 size_type and difference_type. Check that pointer and
3357 const_pointer are gone in C++20.
3358
3359 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3360
3361 * include/std/stop_token: Remove TODO comment.
3362
3363 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3364
3365 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
3366 Initialize a non-reference deleter from an rvalue, as per LWG
3367 3548.
3368 (__shared_ptr::_UniqCompatible): Add missing constraint.
3369 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
3370 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
3371 constraints.
3372
3373 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3374
3375 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
3376 -std=gnu++17 from dg-options directive.
3377 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
3378 Likewise.
3379 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
3380 Likewise.
3381 * testsuite/17_intro/headers/c++2017/operator_names.cc:
3382 Likewise.
3383 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
3384 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
3385 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
3386 Likewise.
3387 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
3388 * testsuite/18_support/byte/81076.cc: Likewise.
3389 * testsuite/18_support/byte/global_neg.cc: Likewise.
3390 * testsuite/18_support/byte/ops.cc: Likewise.
3391 * testsuite/18_support/byte/requirements.cc: Likewise.
3392 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
3393 * testsuite/18_support/launder/1.cc: Likewise.
3394 * testsuite/18_support/launder/nodiscard.cc: Likewise.
3395 * testsuite/18_support/launder/requirements.cc: Likewise.
3396 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
3397 * testsuite/18_support/new_aligned.cc: Likewise.
3398 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
3399 Likewise.
3400 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
3401 Likewise.
3402 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
3403 * testsuite/20_util/addressof/requirements/constexpr.cc:
3404 Likewise.
3405 * testsuite/20_util/as_const/1.cc: Likewise.
3406 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
3407 * testsuite/20_util/bind/83427.cc: Likewise.
3408 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
3409 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
3410 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
3411 Likewise.
3412 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
3413 Likewise.
3414 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
3415 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
3416 Likewise.
3417 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
3418 * testsuite/20_util/from_chars/requirements.cc: Likewise.
3419 * testsuite/20_util/function/91456.cc: Likewise.
3420 * testsuite/20_util/function/cons/deduction.cc: Likewise.
3421 * testsuite/20_util/function_objects/83607.cc: Likewise.
3422 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
3423 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
3424 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
3425 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
3426 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
3427 Likewise.
3428 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
3429 Likewise.
3430 * testsuite/20_util/has_unique_object_representations/value.cc:
3431 Likewise.
3432 * testsuite/20_util/hash/nullptr.cc: Likewise.
3433 * testsuite/20_util/in_place/requirements.cc: Likewise.
3434 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
3435 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
3436 Likewise.
3437 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
3438 Likewise.
3439 * testsuite/20_util/is_aggregate/value.cc: Likewise.
3440 * testsuite/20_util/is_invocable/83395.cc: Likewise.
3441 * testsuite/20_util/is_invocable/91456.cc: Likewise.
3442 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
3443 Likewise.
3444 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
3445 Likewise.
3446 * testsuite/20_util/is_invocable/value.cc: Likewise.
3447 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
3448 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
3449 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
3450 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
3451 Likewise.
3452 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
3453 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
3454 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
3455 Likewise.
3456 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
3457 Likewise.
3458 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
3459 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
3460 Likewise.
3461 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
3462 Likewise.
3463 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
3464 Likewise.
3465 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
3466 Likewise.
3467 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
3468 Likewise.
3469 * testsuite/20_util/is_swappable/value.cc: Likewise.
3470 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
3471 Likewise.
3472 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
3473 Likewise.
3474 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
3475 * testsuite/20_util/logical_traits/83134.cc: Likewise.
3476 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
3477 Likewise.
3478 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
3479 Likewise.
3480 * testsuite/20_util/logical_traits/value.cc: Likewise.
3481 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
3482 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
3483 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
3484 Likewise.
3485 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
3486 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
3487 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
3488 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
3489 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
3490 Likewise.
3491 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
3492 Likewise.
3493 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
3494 * testsuite/20_util/to_chars/3.cc: Likewise.
3495 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
3496 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
3497 * testsuite/20_util/to_chars/requirements.cc: Likewise.
3498 * testsuite/20_util/tuple/78939.cc: Likewise.
3499 * testsuite/20_util/tuple/apply/1.cc: Likewise.
3500 * testsuite/20_util/tuple/apply/2.cc: Likewise.
3501 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
3502 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
3503 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
3504 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
3505 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
3506 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
3507 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
3508 Likewise.
3509 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
3510 * testsuite/20_util/void_t/1.cc: Likewise.
3511 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
3512 * testsuite/24_iterators/container_access.cc: Likewise.
3513 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
3514 Likewise.
3515 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
3516 Likewise.
3517 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
3518 Likewise.
3519 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
3520 Likewise.
3521 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
3522 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
3523 Likewise.
3524 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
3525 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
3526 Likewise.
3527 * testsuite/26_numerics/lcm/1.cc: Likewise.
3528 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
3529 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
3530 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
3531 Likewise.
3532 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
3533 Likewise.
3534 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
3535 Likewise.
3536 * testsuite/27_io/types/4.cc: Likewise.
3537 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
3538 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
3539 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3540
3541 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3542
3543 * testsuite/20_util/function_objects/searchers.cc: Remove
3544 -std=gnu++17 from dg-options directive.
3545 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
3546 Likewise.
3547 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3548 Likewise.
3549 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
3550 Likewise.
3551 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
3552 Likewise.
3553 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
3554 Likewise.
3555 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
3556 Likewise.
3557 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
3558 Likewise.
3559 * testsuite/25_algorithms/clamp/1.cc: Likewise.
3560 * testsuite/25_algorithms/clamp/2.cc: Likewise.
3561 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
3562 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
3563 Likewise.
3564 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
3565 Likewise.
3566 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
3567 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
3568 Likewise.
3569 * testsuite/25_algorithms/sample/1.cc: Likewise.
3570 * testsuite/25_algorithms/sample/2.cc: Likewise.
3571 * testsuite/25_algorithms/sample/3.cc: Likewise.
3572 * testsuite/25_algorithms/sample/81221.cc: Likewise.
3573 * testsuite/25_algorithms/search/searcher.cc: Likewise.
3574 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
3575 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
3576 * testsuite/26_numerics/reduce/1.cc: Likewise.
3577 * testsuite/26_numerics/reduce/2.cc: Likewise.
3578 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
3579 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
3580 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
3581
3582 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3583
3584 * testsuite/23_containers/array/cons/deduction.cc: Remove
3585 -std=gnu++17 from dg-options directive.
3586 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
3587 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
3588 Likewise.
3589 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
3590 Likewise.
3591 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
3592 Likewise.
3593 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
3594 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
3595 Likewise.
3596 * testsuite/23_containers/forward_list/cons/deduction.cc:
3597 Likewise.
3598 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
3599 Likewise.
3600 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
3601 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
3602 Likewise.
3603 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
3604 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
3605 * testsuite/23_containers/map/modifiers/insert/83226.cc:
3606 Likewise.
3607 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
3608 Likewise.
3609 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
3610 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
3611 Likewise.
3612 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
3613 * testsuite/23_containers/multimap/modifiers/extract.cc:
3614 Likewise.
3615 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
3616 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
3617 * testsuite/23_containers/multiset/modifiers/extract.cc:
3618 Likewise.
3619 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
3620 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
3621 * testsuite/23_containers/queue/deduction.cc: Likewise.
3622 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
3623 Likewise.
3624 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
3625 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
3626 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
3627 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
3628 * testsuite/23_containers/stack/deduction.cc: Likewise.
3629 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
3630 Likewise.
3631 * testsuite/23_containers/unordered_map/cons/deduction.cc:
3632 Likewise.
3633 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
3634 Likewise.
3635 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
3636 Likewise.
3637 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
3638 Likewise.
3639 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
3640 Likewise.
3641 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
3642 Likewise.
3643 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
3644 Likewise.
3645 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
3646 Likewise.
3647 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
3648 Likewise.
3649 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
3650 Likewise.
3651 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
3652 Likewise.
3653 * testsuite/23_containers/unordered_set/cons/deduction.cc:
3654 Likewise.
3655 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
3656 Likewise.
3657 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
3658 Likewise.
3659 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
3660 Likewise.
3661 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
3662 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
3663 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
3664 Likewise.
3665
3666 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3667
3668 * testsuite/21_strings/basic_string/79162.cc: Remove
3669 -std=gnu++17 from dg-options directive.
3670 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
3671 * testsuite/21_strings/basic_string/cons/char/79162.cc:
3672 Likewise.
3673 * testsuite/21_strings/basic_string/cons/char/86138.cc:
3674 Likewise.
3675 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
3676 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
3677 Likewise.
3678 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
3679 Likewise.
3680 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
3681 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
3682 Likewise.
3683 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
3684 Likewise.
3685 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
3686 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
3687 Likewise.
3688 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
3689 Likewise.
3690 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
3691 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
3692 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
3693 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
3694 Likewise.
3695 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
3696 Likewise.
3697 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
3698 Likewise.
3699 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
3700 Likewise.
3701 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
3702 Likewise.
3703 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
3704 Likewise.
3705 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
3706 Likewise.
3707 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
3708 Likewise.
3709 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
3710 Likewise.
3711 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
3712 Likewise.
3713 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
3714 Likewise.
3715 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
3716 Likewise.
3717 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
3718 Likewise.
3719 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
3720 Likewise.
3721 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
3722 Likewise.
3723 * testsuite/21_strings/basic_string/operators/char/5.cc:
3724 Likewise.
3725 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
3726 Likewise.
3727 * testsuite/21_strings/basic_string_view/capacity/1.cc:
3728 Likewise.
3729 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
3730 Likewise.
3731 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
3732 Likewise.
3733 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
3734 Likewise.
3735 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
3736 Likewise.
3737 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
3738 Likewise.
3739 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
3740 Likewise.
3741 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
3742 Likewise.
3743 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
3744 Likewise.
3745 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
3746 Likewise.
3747 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
3748 Likewise.
3749 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
3750 Likewise.
3751 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
3752 Likewise.
3753 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
3754 Likewise.
3755 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3756 Likewise.
3757 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
3758 Likewise.
3759 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
3760 Likewise.
3761 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
3762 Likewise.
3763 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3764 Likewise.
3765 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3766 Likewise.
3767 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3768 Likewise.
3769 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3770 Likewise.
3771 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
3772 Likewise.
3773 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3774 Likewise.
3775 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
3776 Likewise.
3777 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
3778 Likewise.
3779 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3780 Likewise.
3781 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
3782 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
3783 Likewise.
3784 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
3785 Likewise.
3786 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
3787 Likewise.
3788 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
3789 Likewise.
3790 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
3791 Likewise.
3792 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
3793 Likewise.
3794 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
3795 Likewise.
3796 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
3797 Likewise.
3798 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
3799 Likewise.
3800 * testsuite/21_strings/basic_string_view/literals/types.cc:
3801 Likewise.
3802 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
3803 Likewise.
3804 * testsuite/21_strings/basic_string_view/literals/values.cc:
3805 Likewise.
3806 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3807 Likewise.
3808 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3809 Likewise.
3810 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3811 Likewise.
3812 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3813 Likewise.
3814 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
3815 Likewise.
3816 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
3817 Likewise.
3818 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
3819 Likewise.
3820 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
3821 Likewise.
3822 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
3823 Likewise.
3824 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
3825 Likewise.
3826 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
3827 Likewise.
3828 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
3829 Likewise.
3830 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
3831 Likewise.
3832 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
3833 Likewise.
3834 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
3835 Likewise.
3836 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
3837 Likewise.
3838 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
3839 Likewise.
3840 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
3841 Likewise.
3842 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3843 Likewise.
3844 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3845 Likewise.
3846 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
3847 Likewise.
3848 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
3849 Likewise.
3850 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
3851 Likewise.
3852 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
3853 Likewise.
3854 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
3855 Likewise.
3856 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
3857 Likewise.
3858 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
3859 Likewise.
3860 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
3861 Likewise.
3862 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
3863 Likewise.
3864 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
3865 Likewise.
3866 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
3867 Likewise.
3868 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
3869 Likewise.
3870 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
3871 Likewise.
3872 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
3873 Likewise.
3874 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
3875 Likewise.
3876 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
3877 Likewise.
3878 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
3879 Likewise.
3880 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3881 Likewise.
3882 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
3883 Likewise.
3884 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3885 Likewise.
3886 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
3887 Likewise.
3888 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
3889 Likewise.
3890 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
3891 Likewise.
3892 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
3893 Likewise.
3894 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
3895 Likewise.
3896 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3897 Likewise.
3898 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3899 Likewise.
3900 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3901 Likewise.
3902 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3903 Likewise.
3904 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3905 Likewise.
3906 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3907 Likewise.
3908 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
3909 Likewise.
3910 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3911 Likewise.
3912 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
3913 Likewise.
3914 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
3915 Likewise.
3916 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
3917 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
3918 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
3919 Likewise.
3920 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
3921
3922 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3923
3924 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
3925 from dg-options directive.
3926 * testsuite/20_util/memory_resource/2.cc: Likewise.
3927 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
3928 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
3929 Likewise.
3930 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
3931 Likewise.
3932 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
3933 Likewise.
3934 * testsuite/20_util/monotonic_buffer_resource/release.cc:
3935 Likewise.
3936 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
3937 Likewise.
3938 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
3939 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
3940 Likewise.
3941 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3942 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
3943 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
3944 Likewise.
3945 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
3946 Likewise.
3947 * testsuite/20_util/synchronized_pool_resource/cons.cc:
3948 Likewise.
3949 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
3950 Likewise.
3951 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
3952 Likewise.
3953 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
3954 Likewise.
3955 * testsuite/20_util/synchronized_pool_resource/options.cc:
3956 Likewise.
3957 * testsuite/20_util/synchronized_pool_resource/release.cc:
3958 Likewise.
3959 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
3960 Likewise.
3961 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
3962 Likewise.
3963 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
3964 Likewise.
3965 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
3966 Likewise.
3967 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
3968 Likewise.
3969 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
3970 Likewise.
3971 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
3972 Likewise.
3973 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3974 Likewise.
3975 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3976 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
3977 Likewise.
3978 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3979 Likewise.
3980 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
3981 Likewise.
3982 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3983 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
3984 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3985 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
3986 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3987 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
3988 Likewise.
3989 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3990 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
3991 Likewise.
3992 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3993 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
3994 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3995 Likewise.
3996 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
3997 Likewise.
3998 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3999 Likewise.
4000 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
4001 Likewise.
4002 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
4003 Likewise.
4004 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
4005 Likewise.
4006 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
4007 Likewise.
4008 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
4009 Likewise.
4010 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
4011 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
4012 Likewise.
4013 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
4014
4015 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4016
4017 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
4018 dg-options.
4019 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
4020 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
4021 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
4022 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
4023 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
4024 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
4025 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
4026 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
4027 Likewise.
4028 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
4029 Likewise.
4030 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
4031 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
4032 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
4033 Likewise.
4034 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
4035 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
4036 Likewise.
4037 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
4038 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
4039 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
4040 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
4041
4042 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4043
4044 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
4045 dg-options directive.
4046 * testsuite/20_util/any/assign/2.cc: Likewise.
4047 * testsuite/20_util/any/assign/emplace.cc: Likewise.
4048 * testsuite/20_util/any/assign/exception.cc: Likewise.
4049 * testsuite/20_util/any/assign/self.cc: Likewise.
4050 * testsuite/20_util/any/cons/1.cc: Likewise.
4051 * testsuite/20_util/any/cons/2.cc: Likewise.
4052 * testsuite/20_util/any/cons/90415.cc: Likewise.
4053 * testsuite/20_util/any/cons/92156.cc: Likewise.
4054 * testsuite/20_util/any/cons/aligned.cc: Likewise.
4055 * testsuite/20_util/any/cons/explicit.cc: Likewise.
4056 * testsuite/20_util/any/cons/in_place.cc: Likewise.
4057 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
4058 * testsuite/20_util/any/make_any.cc: Likewise.
4059 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
4060 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
4061 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
4062 * testsuite/20_util/any/misc/swap.cc: Likewise.
4063 * testsuite/20_util/any/modifiers/1.cc: Likewise.
4064 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
4065 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
4066 * testsuite/20_util/any/observers/type.cc: Likewise.
4067 * testsuite/20_util/any/requirements.cc: Likewise.
4068 * testsuite/20_util/any/typedefs.cc: Likewise.
4069 * testsuite/20_util/optional/77288.cc: Likewise.
4070 * testsuite/20_util/optional/84601.cc: Likewise.
4071 * testsuite/20_util/optional/assignment/1.cc: Likewise.
4072 * testsuite/20_util/optional/assignment/2.cc: Likewise.
4073 * testsuite/20_util/optional/assignment/3.cc: Likewise.
4074 * testsuite/20_util/optional/assignment/4.cc: Likewise.
4075 * testsuite/20_util/optional/assignment/5.cc: Likewise.
4076 * testsuite/20_util/optional/assignment/6.cc: Likewise.
4077 * testsuite/20_util/optional/assignment/7.cc: Likewise.
4078 * testsuite/20_util/optional/assignment/8.cc: Likewise.
4079 * testsuite/20_util/optional/assignment/9.cc: Likewise.
4080 * testsuite/20_util/optional/bad_access.cc: Likewise.
4081 * testsuite/20_util/optional/cons/77727.cc: Likewise.
4082 * testsuite/20_util/optional/cons/85642.cc: Likewise.
4083 * testsuite/20_util/optional/cons/copy.cc: Likewise.
4084 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
4085 * testsuite/20_util/optional/cons/default.cc: Likewise.
4086 * testsuite/20_util/optional/cons/move.cc: Likewise.
4087 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
4088 * testsuite/20_util/optional/cons/value.cc: Likewise.
4089 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
4090 * testsuite/20_util/optional/constexpr/cons/default.cc:
4091 Likewise.
4092 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
4093 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
4094 * testsuite/20_util/optional/constexpr/make_optional.cc:
4095 Likewise.
4096 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
4097 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
4098 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
4099 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
4100 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
4101 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
4102 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
4103 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
4104 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
4105 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
4106 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
4107 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
4108 * testsuite/20_util/optional/hash.cc: Likewise.
4109 * testsuite/20_util/optional/in_place.cc: Likewise.
4110 * testsuite/20_util/optional/make_optional.cc: Likewise.
4111 * testsuite/20_util/optional/nullopt.cc: Likewise.
4112 * testsuite/20_util/optional/observers/1.cc: Likewise.
4113 * testsuite/20_util/optional/observers/2.cc: Likewise.
4114 * testsuite/20_util/optional/observers/3.cc: Likewise.
4115 * testsuite/20_util/optional/observers/4.cc: Likewise.
4116 * testsuite/20_util/optional/observers/5.cc: Likewise.
4117 * testsuite/20_util/optional/observers/6.cc: Likewise.
4118 * testsuite/20_util/optional/relops/1.cc: Likewise.
4119 * testsuite/20_util/optional/relops/2.cc: Likewise.
4120 * testsuite/20_util/optional/relops/3.cc: Likewise.
4121 * testsuite/20_util/optional/relops/4.cc: Likewise.
4122 * testsuite/20_util/optional/relops/5.cc: Likewise.
4123 * testsuite/20_util/optional/relops/6.cc: Likewise.
4124 * testsuite/20_util/optional/relops/7.cc: Likewise.
4125 * testsuite/20_util/optional/requirements.cc: Likewise.
4126 * testsuite/20_util/optional/swap/1.cc: Likewise.
4127 * testsuite/20_util/optional/swap/2.cc: Likewise.
4128 * testsuite/20_util/optional/typedefs.cc: Likewise.
4129 * testsuite/20_util/variant/80165.cc: Likewise.
4130 * testsuite/20_util/variant/85183.cc: Likewise.
4131 * testsuite/20_util/variant/86874.cc: Likewise.
4132 * testsuite/20_util/variant/87431.cc: Likewise.
4133 * testsuite/20_util/variant/87619.cc: Likewise.
4134 * testsuite/20_util/variant/91807.cc: Likewise.
4135 * testsuite/20_util/variant/any.cc: Likewise.
4136 * testsuite/20_util/variant/compile.cc: Likewise.
4137 * testsuite/20_util/variant/deduction.cc: Likewise.
4138 * testsuite/20_util/variant/exception_safety.cc: Likewise.
4139 * testsuite/20_util/variant/hash.cc: Likewise.
4140 * testsuite/20_util/variant/index_type.cc: Likewise.
4141 * testsuite/20_util/variant/relops/89851.cc: Likewise.
4142 * testsuite/20_util/variant/relops/90008.cc: Likewise.
4143 * testsuite/20_util/variant/run.cc: Likewise.
4144 * testsuite/20_util/variant/visit.cc: Likewise.
4145
4146 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4147
4148 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
4149 -std=gnu++17 from dg-options directive.
4150 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
4151 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
4152 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
4153 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
4154 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
4155 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
4156 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
4157 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
4158 Likewise.
4159 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
4160 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
4161 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
4162 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
4163 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
4164 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
4165 Likewise.
4166 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
4167 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
4168 Likewise.
4169 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4170 Likewise.
4171 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
4172 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
4173 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
4174 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
4175 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
4176 * testsuite/27_io/filesystem/operations/create_directories.cc:
4177 Likewise.
4178 * testsuite/27_io/filesystem/operations/create_directory.cc:
4179 Likewise.
4180 * testsuite/27_io/filesystem/operations/create_symlink.cc:
4181 Likewise.
4182 * testsuite/27_io/filesystem/operations/current_path.cc:
4183 Likewise.
4184 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
4185 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
4186 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
4187 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
4188 * testsuite/27_io/filesystem/operations/last_write_time.cc:
4189 Likewise.
4190 * testsuite/27_io/filesystem/operations/permissions.cc:
4191 Likewise.
4192 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
4193 * testsuite/27_io/filesystem/operations/read_symlink.cc:
4194 Likewise.
4195 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
4196 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
4197 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
4198 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
4199 * testsuite/27_io/filesystem/operations/resize_file.cc:
4200 Likewise.
4201 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
4202 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
4203 * testsuite/27_io/filesystem/operations/symlink_status.cc:
4204 Likewise.
4205 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
4206 Likewise.
4207 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
4208 Likewise.
4209 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
4210 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
4211 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
4212 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
4213 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
4214 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
4215 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
4216 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
4217 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
4218 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
4219 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
4220 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
4221 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
4222 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
4223 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
4224 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
4225 * testsuite/27_io/filesystem/path/construct/default.cc:
4226 Likewise.
4227 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
4228 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
4229 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
4230 * testsuite/27_io/filesystem/path/construct/string_view.cc:
4231 Likewise.
4232 * testsuite/27_io/filesystem/path/decompose/extension.cc:
4233 Likewise.
4234 * testsuite/27_io/filesystem/path/decompose/filename.cc:
4235 Likewise.
4236 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4237 Likewise.
4238 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
4239 Likewise.
4240 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
4241 Likewise.
4242 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
4243 Likewise.
4244 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
4245 Likewise.
4246 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
4247 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
4248 Likewise.
4249 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
4250 * testsuite/27_io/filesystem/path/generation/normal.cc:
4251 Likewise.
4252 * testsuite/27_io/filesystem/path/generation/normal2.cc:
4253 Likewise.
4254 * testsuite/27_io/filesystem/path/generation/proximate.cc:
4255 Likewise.
4256 * testsuite/27_io/filesystem/path/generation/relative.cc:
4257 Likewise.
4258 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
4259 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
4260 Likewise.
4261 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
4262 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
4263 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
4264 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
4265 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
4266 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
4267 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
4268 Likewise.
4269 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
4270 Likewise.
4271 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
4272 Likewise.
4273 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
4274 Likewise.
4275 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
4276 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
4277 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
4278 Likewise.
4279 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
4280 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
4281 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
4282 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
4283 Likewise.
4284 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
4285 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
4286 * testsuite/27_io/filesystem/path/query/has_extension.cc:
4287 Likewise.
4288 * testsuite/27_io/filesystem/path/query/has_filename.cc:
4289 Likewise.
4290 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
4291 Likewise.
4292 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
4293 Likewise.
4294 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
4295 Likewise.
4296 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
4297 Likewise.
4298 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
4299 Likewise.
4300 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
4301 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
4302 Likewise.
4303 * testsuite/27_io/filesystem/path/query/is_relative.cc:
4304 Likewise.
4305 * testsuite/experimental/filesystem/path/construct/string_view.cc:
4306 Likewise.
4307
4308 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4309
4310 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
4311 Remove -std=gnu++17 from dg-options.
4312 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
4313 Likewise.
4314 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
4315 Likewise.
4316 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
4317 Likewise.
4318 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
4319 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
4320 Likewise.
4321 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
4322 Likewise.
4323 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
4324 Likewise.
4325 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
4326 Likewise.
4327 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
4328 Likewise.
4329 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
4330 Likewise.
4331 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
4332 Likewise.
4333 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
4334 Likewise.
4335 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
4336 Likewise.
4337 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
4338 Likewise.
4339 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
4340 Likewise.
4341 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
4342 Likewise.
4343 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
4344 Likewise.
4345 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
4346 Likewise.
4347 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
4348 Likewise.
4349 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
4350 Likewise.
4351 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
4352 Likewise.
4353 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
4354 Likewise.
4355 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
4356 Likewise.
4357 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
4358 Likewise.
4359 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
4360 Likewise.
4361 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
4362 Likewise.
4363 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
4364 Likewise.
4365 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
4366 Likewise.
4367 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4368 Likewise.
4369 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
4370 Likewise.
4371 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
4372 Likewise.
4373 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
4374 Likewise.
4375 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
4376 Likewise.
4377 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
4378 Likewise.
4379 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
4380 Likewise.
4381 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
4382 Likewise.
4383 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
4384 Likewise.
4385 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4386 Likewise.
4387 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
4388 Likewise.
4389 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
4390 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
4391 Likewise.
4392 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
4393 Likewise.
4394 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
4395 Likewise.
4396 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
4397 Likewise.
4398 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
4399 Likewise.
4400 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
4401 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
4402 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
4403 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
4404 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
4405 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
4406 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
4407 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
4408 Likewise.
4409 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
4410 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
4411 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
4412 Likewise.
4413 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
4414 Likewise.
4415
4416 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4417
4418 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
4419 for additional errors in C++20.
4420 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
4421 Likewise.
4422 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
4423 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
4424
4425 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
4426
4427 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
4428 clash with std::any.
4429
4430 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
4431
4432 * include/std/istream (__rvalue_stream_extraction_t): Replace
4433 use of __rval_streamable.
4434 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
4435 (__rval_streamable): Remove.
4436 (_Require_derived_from_ios_base, __derived_from_ios_base): New
4437 helper for checking constraints.
4438 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
4439 reference to the wrong subclause of the standard.
4440 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
4441 Likewise.
4442 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
4443 Likewise.
4444 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
4445 Likewise.
4446 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
4447 New test.
4448 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
4449 errors.
4450
4451 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
4452
4453 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
4454 Improve static_assert messages.
4455 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
4456 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
4457
4458 2021-05-06 Patrick Palka <ppalka@redhat.com>
4459
4460 * include/std/ranges (filter_view::_Iterator::base): Make the
4461 const& overload unconstrained and return a const reference as
4462 per LWG 3533. Make unconditionally noexcept.
4463 (transform_view::_Iterator::base): Likewise.
4464 (elements_view::_Iterator::base): Likewise.
4465
4466 2021-05-06 Patrick Palka <ppalka@redhat.com>
4467
4468 * include/bits/stl_iterator.h (move_iterator::base): Make the
4469 const& overload unconstrained and return a const reference as
4470 per LWG 3391. Make unconditionally noexcept.
4471 (counted_iterator::base): Likewise.
4472 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
4473 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
4474 has_member_base concept to decay-copy the result of base().
4475
4476 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
4477
4478 * include/std/type_traits (remove_cvref_t): Define in terms of
4479 remove_cvref.
4480 * testsuite/20_util/remove_cvref/value.cc: Check alias.
4481
4482 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
4483
4484 Revert:
4485 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
4486
4487 * include/std/charconv (__from_chars_alnum): Pass unsigned
4488 char to std::isdigit.
4489
4490 2021-05-05 Patrick Palka <ppalka@redhat.com>
4491
4492 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
4493 Remove constraints on this partial specialization.
4494 * include/std/ranges (enable_borrowed_range<iota_view>):
4495 Likewise.
4496
4497 2021-05-05 Patrick Palka <ppalka@redhat.com>
4498
4499 * include/std/ranges (transform_view::_Iterator::iter_swap):
4500 Remove as per LWG 3520.
4501 (join_view::_Iterator::iter_swap): Add indirectly_swappable
4502 constraint as per LWG 3517.
4503
4504 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
4505
4506 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
4507 test macro.
4508 * testsuite/20_util/function_objects/invoke/version.cc: New test.
4509
4510 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
4511
4512 * include/std/charconv (__from_chars_alnum): Pass unsigned
4513 char to std::isdigit.
4514
4515 2021-05-05 Corentin Gay <gay@adacore.com>
4516
4517 * acinclude.m4: Add VxWorks-specific case for the
4518 configuration of ctypes.
4519 * configure: Regenerate.
4520 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
4521 version.
4522 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
4523 * config/os/vxworks/ctype_configure_char.cc: Likewise.
4524 * config/os/vxworks/ctype_inline.h: Likewise.
4525 * testsuite/28_regex/traits/char/isctype.cc: Defines
4526 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
4527 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
4528
4529 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4530
4531 * include/std/future (promise::set_value): Check for existence
4532 of shared state before dereferncing it.
4533 (promise::set_exception, promise::set_value_at_thread_exit)
4534 (promise::set_exception_at_thread_exit): Likewise.
4535 (promise<R&>::set_value, promise<R&>::set_exception)
4536 (promise<R&>::set_value_at_thread_exit)
4537 (promise<R&>::set_exception_at_thread_exit): Likewise.
4538 (promise<void>::set_value, promise<void>::set_exception)
4539 (promise<void>::set_value_at_thread_exit)
4540 (promise<void>::set_exception_at_thread_exit): Likewise.
4541 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
4542 Remove unused variable.
4543
4544 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4545
4546 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
4547 Do not do arithmetic on null pointer.
4548
4549 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4550
4551 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
4552 (find_key_pointer(key_const_reference, false_type))
4553 (find_key_pointer(key_const_reference, true_type)): Do not
4554 dereference null pointer.
4555
4556 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4557
4558 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
4559 overflow.
4560 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
4561 non-zero value to null pointer.
4562 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
4563 Use past-the-end iterator for result.
4564 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
4565 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
4566
4567 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4568
4569 PR libstdc++/100384
4570 * include/std/variant (__get_t): New alias template yielding the
4571 return type of std::get<N> on a variant.
4572 (__visit_result_t): New alias template yielding the result of
4573 std::visit.
4574 (__same_types): Move into namespace __detail::__variant.
4575 (__check_visitor_results): Likewise. Use __invoke_result_t and
4576 __get_t.
4577 (__check_visitor_result): Remove.
4578 (visit): Use __visit_result_t for return type.
4579 * testsuite/20_util/variant/100384.cc: New test.
4580
4581 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
4582
4583 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
4584 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
4585 * config.h.in: Regenerate.
4586 * configure: Regenerate.
4587 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
4588 * include/bits/random.h (_Select_uint_least_t<s, 1>):
4589 Use __SIZEOF_INT128__ to decide whether to use __int128.
4590 * include/std/charconv (__to_chars_unsigned_type): Likewise.
4591
4592 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
4593
4594 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
4595 * doc/html/manual/facets.html: Regenerate.
4596
4597 2021-04-30 Patrick Palka <ppalka@redhat.com>
4598
4599 * include/std/ranges (__detail::__non_propating_cache): Define
4600 as per P2328.
4601 (join_view): Remove constraints on the value and reference types
4602 of the wrapped iterator type as per P2328.
4603 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
4604 (join_view::_Iterator::operator++): Likewise.
4605 (join_view::_M_inner): Use __non_propating_cache as per P2328.
4606 Remove now-redundant use of __maybe_present_t.
4607 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
4608 (test10): New test.
4609
4610 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4611
4612 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
4613 Only define for C++17 and later.
4614 * include/std/version (__cpp_lib_semaphore): Fix condition
4615 to match the one in <semaphore>.
4616
4617 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4618
4619 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
4620 * config.h.in: Regenerate.
4621 * configure: Regenerate.
4622 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
4623 * include/bits/postypes.h: Remove include of <stdint.h> and
4624 definition/undefinition of the __STDC_LIMIT_MACROS and
4625 __STDC_CONSTANT_MACROS macros.
4626 (streamoff): Use __INT64_TYPE__ if defined.
4627
4628 2021-04-30 Patrick Palka <ppalka@redhat.com>
4629
4630 * include/std/ranges (split_view::_InnerIter::operator++):
4631 Depend on _Base instead of _Vp directly, as per LWG 3532.
4632
4633 2021-04-30 Patrick Palka <ppalka@redhat.com>
4634
4635 * include/bits/ranges_util.h (subrange::subrange): Avoid
4636 list-initialization in delegating constructor.
4637 * include/std/ranges (single_view): Replace implicit guide
4638 with explicit deduction guide that decays its argument.
4639 (_Single::operator()): Avoid CTAD when constructing the
4640 single_view object.
4641 (_Iota::operator()): Avoid list-initialization.
4642 (__detail::__can_filter_view, _Filter::operator()): Likewise.
4643 (__detail::__can_transform_view, _Transform::operator()): Likewise.
4644 (take_view::begin): Likewise.
4645 (__detail::__can_take_view, _Take::operator()): Likewise.
4646 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
4647 (__detail::__can_drop_view, _Drop::operator()): Likewise.
4648 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
4649 (split_view::split_view): Use views::single when initializing
4650 _M_pattern.
4651 (__detail::__can_split_view, _Split::operator()): Avoid
4652 list-initialization.
4653 (_Counted::operator()): Likewise.
4654 * testsuite/std/ranges/p2367.cc: New test.
4655
4656 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4657
4658 PR libstdc++/60497
4659 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
4660 std::addressof.
4661 * include/bits/basic_string.tcc (basic_string::swap)
4662 (basic_string::assign): Likewise.
4663 * include/bits/deque.tcc (deque::operator=(const deque&)):
4664 Likewise.
4665 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
4666 Likewise.
4667 * include/bits/vector.tcc (vector::operator=(const vector&)):
4668 Likewise.
4669
4670 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4671
4672 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
4673 per LWG 1203.
4674 * include/std/ostream (operator<<(Ostream&&, const x&)):
4675 Likewise.
4676 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
4677 Adjust dg-error pattern.
4678 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
4679 Likewise.
4680 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
4681 is_extractable trait to replace std::__is_extractable. Make it
4682 work with rvalue streams as well as lvalues, to replace f() and
4683 g() helper functions.
4684 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
4685 Likewise.
4686 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
4687 Define is_insertable trait to replace std::__is_insertable. Make
4688 it work with rvalue streams as well as lvalues, to replace f()
4689 and g() helper functions.
4690 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
4691 Likewise.
4692 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
4693 errors from new constraints.
4694 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
4695 which are no longer expected to compile.
4696 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
4697 Verify LWG 1203 changes.
4698
4699 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4700
4701 PR libstdc++/100285
4702 * include/experimental/socket (__basic_socket_impl::set_option)
4703 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
4704 Just set error code.
4705 * testsuite/experimental/net/socket/socket_base.cc: CHeck
4706 for <sys/socket.h> not <socket.h>.
4707
4708 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
4709
4710 PR libstdc++/100180
4711 PR libstdc++/100286
4712 PR libstdc++/100351
4713 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
4714 Use new effective-target keyword.
4715 * testsuite/experimental/net/internet/address/v4/cons.cc:
4716 Likewise.
4717 * testsuite/experimental/net/internet/address/v4/creation.cc:
4718 Likewise.
4719 * testsuite/experimental/net/internet/address/v4/members.cc:
4720 Likewise.
4721 * testsuite/experimental/net/internet/address/v6/members.cc:
4722 Likewise.
4723 * testsuite/experimental/net/internet/resolver/base.cc:
4724 Likewise.
4725 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
4726 Likewise.
4727 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
4728 Likewise.
4729 * testsuite/experimental/net/internet/socket/opt.cc:
4730 Likewise.
4731 * testsuite/experimental/net/internet/tcp.cc:
4732 Likewise.
4733 * testsuite/experimental/net/internet/udp.cc:
4734 Likewise.
4735 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
4736 New proc to check net_ts_ip et.
4737
4738 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4739
4740 PR libstdc++/97930
4741 * testsuite/20_util/pair/requirements/structural.cc: New test.
4742
4743 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4744
4745 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
4746 new definitions for constructors and assignment operators using
4747 concepts for constraints.
4748 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
4749 later.
4750 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
4751 expected error messages to also match C++20 errors.
4752
4753 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4754
4755 PR libstdc++/99957
4756 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
4757 Combine and replace with ...
4758 (_PCC::_DeprConsPair): New SFINAE helper function.
4759 (pair): Merge preprocessor blocks so that all C++03 members
4760 are defined together at the end.
4761 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
4762 Replace _T1 and _T2 parameters with __null_ptr_constant and
4763 adjust constraints.
4764 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
4765 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
4766 * testsuite/20_util/pair/cons/99957.cc: New test.
4767
4768 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4769
4770 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
4771 * include/std/version (__cpp_lib_constexpr_string): Define.
4772 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
4773 Check for __cpp_lib_constexpr_string.
4774 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
4775 Likewise.
4776 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
4777
4778 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4779
4780 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
4781 dealing with errors. Use '@' to prevent shell command being
4782 echoed.
4783 * doc/Makefile.in: Regenerate.
4784
4785 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4786
4787 PR libstdc++/100298
4788 * include/bits/std_thread.h (thread::hardware_concurrency): Add
4789 missing noexcept to inline definition for non-gthreads targets.
4790
4791 2021-04-28 Patrick Palka <ppalka@redhat.com>
4792
4793 PR libstdc++/100187
4794 PR libstdc++/100237
4795 PR libstdc++/100249
4796 PR libstdc++/100287
4797 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
4798 the __value_comp lambda an explicit bool return type.
4799 (__is_permutation_fn::operator()): Give the __proj_scan local
4800 variable auto&& return type. Give the __comp_scan lambda an
4801 explicit bool return type.
4802 (__remove_fn::operator()): Give the __pred lambda an explicit
4803 bool return type.
4804 (__partition_fn::operator()): Don't std::move __first twice
4805 when returning an empty subrange.
4806 (__min_fn::operator()): Don't std::move __comp.
4807 (__max_fn::operator()): Likewise.
4808 (__minmax_fn::operator()): Likewise.
4809
4810 2021-04-27 Patrick Palka <ppalka@redhat.com>
4811
4812 PR libstdc++/100290
4813 * include/std/ranges (join_view::_Iterator::operator++): Correct
4814 the return type of the lambda to avoid returning a copy of
4815 _M_parent->_M_inner.
4816 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
4817
4818 2021-04-27 Jakub Jelinek <jakub@redhat.com>
4819
4820 Revert:
4821 2021-04-22 Jakub Jelinek <jakub@redhat.com>
4822
4823 PR target/100182
4824 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4825 ia32.
4826 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4827 ia32.
4828
4829 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4830
4831 * include/experimental/internet (address_v6::bytes_type): Adjust
4832 formatting.
4833 (basic_endpoint): Define _M_is_v6() to put all checks for
4834 AF_INET6 in one place.
4835 (basic_endpoint::resize): Simplify.
4836 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
4837 (operator!=(const tcp&, const tcp&)): Likewise.
4838 (operator==(const udp&, const udp&)): Likewise.
4839 (operator!=(const udp&, const udp&)): Likewise.
4840 * testsuite/experimental/net/internet/tcp.cc: New test.
4841 * testsuite/experimental/net/internet/udp.cc: New test.
4842
4843 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4844
4845 PR libstdc++/100286
4846 * include/experimental/internet (resolver_errc, resolver_category())
4847 (make_error_code, make_error_condition): Define unconditionally,
4848 only make enumerators and use of gai_strerror depend on the
4849 availability of <netdb.h>.
4850 (address_v4::to_string): Use correct constant for string length.
4851 (address_v4::to_string, address_v6::to_string): Define
4852 unconditionally, throw if unsupported.
4853 (make_address_v4, make_address_v6): Define unconditionally.
4854 Return an error if unsupported.
4855 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
4856 conditionally,
4857 * testsuite/experimental/net/internet/socket/opt.cc: Check for
4858 <netinet/in.h> and <netinet/tcp.h> before using types from
4859 namespace net::ip.
4860
4861 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4862
4863 PR libstdc++/100285
4864 * include/experimental/internet (resolver_base::flags):
4865 Define overloaded operators as hidden friends.
4866 * include/experimental/socket (socket_base::message_flags):
4867 Likewise.
4868
4869 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4870
4871 * include/experimental/internet (tcp::no_delay, v6_only)
4872 (unicast::hops, multicast::hops, multicast::enable_loopback):
4873 Change access of base class and static data members. Add
4874 using-declaration for __socket_crtp::operator=(_Tp).
4875 (multicast::__mcastopt): New type.
4876 (multicast::join_group, multicast::leave_group): Derive from
4877 __mcastopt for common implementation.
4878 * include/experimental/socket: Add comment.
4879 * testsuite/experimental/net/internet/socket/opt.cc: New test.
4880 * testsuite/experimental/net/socket/socket_base.cc: Check for
4881 protected constructor/destructor of socket_base. Check for
4882 explicit constructors of socket option classes.
4883
4884 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4885
4886 * include/experimental/bits/net.h (__socket_base): Add
4887 bool template parameter to allow BooleanSocketOption and
4888 IntegerSocketOption to have different __socket_base<int>
4889 base classes.
4890 (__socket_base<bool>): Adjust base class.
4891 (__socket_base<int>): Add partial specialization.
4892 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
4893 * include/experimental/socket (socket_base::broadcast)
4894 (socket_base::debug, socket_base::do_not_route)
4895 (socket_base::keep_alive, socket_base::linger)
4896 (socket_base::out_of_band_inline)
4897 (socket_base::receive_buffer_size)
4898 (socket_base::receive_low_watermark)
4899 (socket_base::reuse_address, socket_base::send_buffer_size)
4900 (socket_base::send_low_watermark): Add using-declaration for
4901 __socket_crtp::operator=(_Tp).
4902 * testsuite/experimental/net/socket/socket_base.cc: Check
4903 properties of socket option types.
4904
4905 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4906
4907 * include/experimental/internet (resolver_base::flags): Remove
4908 enumerators. Initialize constants directly with desired values.
4909 Make all operators constexpr and noexcept.
4910 * testsuite/experimental/net/internet/resolver/base.cc: Use
4911 __gnu_test::test_bitmask_values for bitmask type. Check
4912 construction and destruction is protected.
4913
4914 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4915
4916 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
4917
4918 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4919
4920 PR libstdc++/100259
4921 * include/experimental/internet (net::ip::make_error_code)
4922 (net::ip::make_error_condition, net::ip::make_network_v4)
4923 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
4924
4925 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
4926
4927 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
4928 (add_options_for_libatomic): Use atomic_link_flags.
4929
4930 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4931
4932 PR libstdc++/100180
4933 * include/experimental/io_context (io_context): Define
4934 dummy_pollfd type so that most member functions still compile
4935 without <poll.h> and struct pollfd.
4936
4937 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4938
4939 * include/experimental/io_context (io_context::async_wait): Add
4940 comment.
4941 * include/experimental/socket (basic_socket::async_connect):
4942 Cast wait_type constant to int.
4943 (basic_datagram_socket::async_receive): Likewise.
4944 (basic_datagram_socket::async_receive_from): Likewise.
4945 (basic_datagram_socket::async_send): Likewise.
4946 (basic_datagram_socket::async_send_to): Likewise.
4947 (basic_stream_socket::async_receive): Likewise.
4948 (basic_stream_socket::async_send): Likewise. Use io_context
4949 parameter directly, instead of via an executor.
4950 (basic_socket_acceptor::async_accept): Likewise.
4951
4952 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4953
4954 * include/experimental/socket (socket_base::shutdown_type):
4955 (socket_base::wait_type, socket_base::message_flags):
4956 Remove enumerators. Initialize constants directly with desired
4957 values.
4958 (socket_base::message_flags): Make all operators constexpr and
4959 noexcept.
4960 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
4961 New test utility.
4962 * testsuite/experimental/net/socket/socket_base.cc: New test.
4963
4964 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
4965
4966 * config/os/aix/atomicity.h: Delete.
4967
4968 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4969
4970 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
4971 Handle system_clock as well as steady_clock.
4972 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
4973 * testsuite/30_threads/semaphore/try_acquire_until.cc:
4974 Re-enable.
4975
4976 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4977
4978 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
4979 options for libatomic.
4980
4981 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4982
4983 * config/os/gnu-linux/os_defines.h: Fix type in comment.
4984
4985 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4986
4987 PR libstdc++/99006
4988 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
4989 is not an array type.
4990 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
4991 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
4992
4993 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
4994
4995 * include/bits/atomic_wait.h: Always notify waiters in the
4996 case of 'bare' address notification.
4997
4998 2021-04-22 Jakub Jelinek <jakub@redhat.com>
4999
5000 PR target/100182
5001 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
5002 ia32.
5003 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
5004 ia32.
5005
5006 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
5007
5008 PR libstdc++/100179
5009 * include/bits/semaphore_base.h: Remove #error.
5010 * include/std/semaphore: Do not define anything unless one of
5011 the implementations is available.
5012
5013 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5014
5015 * include/bits/semaphore_base.h: Always reload __old in
5016 __atomic_semaphore::_S_do_try_acquire().
5017 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5018 re-enable testcase.
5019
5020 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
5021 Jonathan Wakely <jwakely@redhat.com>
5022
5023 PR libstdc++/99453
5024 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
5025 * python/Makefile.in: Regenerate.
5026
5027 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
5028
5029 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
5030 member to __platform_wait.
5031
5032 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
5033
5034 * include/std/latch: Replace tab characters in license text.
5035 * include/std/semaphore: Likewise.
5036
5037 2021-04-21 Jakub Jelinek <jakub@redhat.com>
5038
5039 PR libstdc++/100164
5040 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
5041 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
5042 * configure: Regenerated.
5043 * config.h.in: Regenerated.
5044
5045 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5046
5047 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
5048 test for targets not using futexes for semaphores.
5049 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5050 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
5051 Disable for all targets.
5052
5053 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
5054
5055 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
5056 * include/Makefile.in: Regenerate.
5057 * include/bits/this_thread_sleep.h: New file.
5058 * include/bits/atomic_base.h: Adjust all calls
5059 to __atomic_wait/__atomic_notify for new call signatures.
5060 * include/bits/atomic_timed_wait.h: Extensive rewrite.
5061 * include/bits/atomic_wait.h: Likewise.
5062 * include/bits/semaphore_base.h: Adjust all calls
5063 to __atomic_wait/__atomic_notify for new call signatures.
5064 * include/std/atomic: Likewise.
5065 * include/std/barrier: Likewise.
5066 * include/std/latch: Likewise.
5067 * include/std/semaphore: Likewise.
5068 * include/std/thread (this_thread::sleep_for)
5069 (this_thread::sleep_until): Move to new header.
5070 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
5071 test.
5072 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5073 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5074 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5075 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
5076 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
5077 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
5078
5079 2021-04-20 Patrick Palka <ppalka@redhat.com>
5080
5081 PR libstdc++/95983
5082 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
5083 Define.
5084 (move_iterator): Derive from the above in C++20 in order to
5085 conditionally define iterator_category as per P2259.
5086 (move_iterator::__base_cat): No longer used, so remove.
5087 (move_iterator::iterator_category): Remove in C++20.
5088 (__detail::__common_iter_use_postfix_proxy): Define.
5089 (common_iterator::_Proxy): Rename to ...
5090 (common_iterator:__arrow_proxy): ... this.
5091 (common_iterator::__postfix_proxy): Define as per P2259.
5092 (common_iterator::operator->): Adjust.
5093 (common_iterator::operator++): Adjust as per P2259.
5094 (iterator_traits<common_iterator>::_S_iter_cat): Define.
5095 (iterator_traits<common_iterator>::iterator_category): Change as
5096 per P2259.
5097 (__detail::__counted_iter_value_type): Define.
5098 (__detail::__counted_iter_concept): Define.
5099 (__detail::__counted_iter_cat): Define.
5100 (counted_iterator): Derive from the above three classes in order
5101 to conditionally define value_type, iterator_concept and
5102 iterator category respectively as per P2259.
5103 (counted_iterator::operator->): Define as per P2259.
5104 (incrementable_traits<counted_iterator>): Remove as per P2259.
5105 (iterator_traits<counted_iterator>): Adjust as per P2259.
5106 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
5107 (iota_view::_Iterator): Derive from the above in order to
5108 conditionally define iterator_category as per P2259.
5109 (iota_view::_S_iter_cat): Rename to ...
5110 (iota_view::_S_iter_concept): ... this.
5111 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
5112 (iota_view::iterator_category): Remove.
5113 (__detail::__filter_view_iter_cat): Define.
5114 (filter_view::_Iterator): Derive from the above in order to
5115 conditionally define iterator_category as per P2259.
5116 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
5117 (filter_view::_Iterator::iterator_category): Remove.
5118 (transform_view::_Base): Define.
5119 (transform_view::__iter_cat): Define.
5120 (transform_view::_Iterator): Derive from the above in order to
5121 conditionally define iterator_category as per P2259.
5122 (transform_view::_Iterator::_Base): Just alias
5123 transform_view::_Base.
5124 (transform_view::_Iterator::_S_iter_cat): Move to struct
5125 transform_view::__iter_cat.
5126 (transform_view::_Iterator::iterator_category): Remove.
5127 (transform_view::_Sentinel::_Base): Just alias
5128 transform_view::_Base.
5129 (join_view::_Base): Define.
5130 (join_view::_Outer_iter): Define.
5131 (join_view::_Inner_iter): Define.
5132 (join_view::_S_ref_is_glvalue): Define.
5133 (join_view::__iter_cat): Define.
5134 (join_view::_Iterator): Derive from it in order to conditionally
5135 define iterator_category as per P2259.
5136 (join_view::_Iterator::_Base): Just alias join_view::_Base.
5137 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
5138 join_view::_S_ref_is_glvalue.
5139 (join_view::_Iterator::_S_iter_cat): Move to struct
5140 transform_view::__iter_cat.
5141 (join_view::_Iterator::_Outer_iter): Just alias
5142 join_view::_Outer_iter.
5143 (join_view::_Iterator::_Inner_iter): Just alias
5144 join_view::_Inner_iter.
5145 (join_view::_Iterator::iterator_category): Remove.
5146 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
5147 (__detail::__split_view_outer_iter_cat): Define.
5148 (__detail::__split_view_inner_iter_cat): Define.
5149 (split_view::_Base): Define.
5150 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
5151 in order to conditionally define iterator_category as per P2259.
5152 (split_view::_Outer_iter::iterator_category): Remove.
5153 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
5154 in order to conditionally define iterator_category as per P2259.
5155 (split_view::_Inner_iter::_S_iter_cat): Move to
5156 __split_view_inner_iter_cat.
5157 (split_view::_Inner_iter::iterator_category): Remove.
5158 (elements_view::_Base): Define.
5159 (elements_view::__iter_cat): Define.
5160 (elements_view::_Iterator): Derive from the above in order to
5161 conditionall define iterator_category as per P2259.
5162 (elements_view::_Iterator::_Base): Just alias
5163 elements_view::_Base.
5164 (elements_view::_Iterator::_S_iter_concept)
5165 (elements_view::_Iterator::iterator_concept): Define as per
5166 P2259.
5167 (elements_view::_Iterator::iterator_category): Remove.
5168 (elements_view::_Sentinel::_Base): Just alias
5169 elements_view::_Base.
5170 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
5171 Adjust constraints on iterator_traits<counted_iterator>.
5172 * testsuite/std/ranges/p2259.cc: New test.
5173
5174 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
5175
5176 PR libstdc++/100146
5177 * include/std/charconv (__cpp_lib_to_chars): Define
5178 conditionally.
5179 * include/std/version (__cpp_lib_to_chars): Likewise..
5180 * testsuite/20_util/from_chars/4.cc: Only check feature test
5181 macro, not _GLIBCXX_HAVE_USELOCALE.
5182 * testsuite/20_util/from_chars/5.cc: Likewise.
5183 * testsuite/20_util/from_chars/6.cc: Likewise.
5184 * testsuite/20_util/to_chars/long_double.cc: Likewise.
5185
5186 2021-04-20 Jakub Jelinek <jakub@redhat.com>
5187
5188 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
5189 versions with _IEEE128_ substring are found, set ieee_version_found
5190 to true. Ignore missing symbols with _IEEE128_ in version name if
5191 !ieee_version_found. Use i->first as version_name instead of
5192 i->second.version_name if the latter is empty.
5193 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5194
5195 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
5196
5197 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
5198 Updated.
5199
5200 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5201
5202 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
5203 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
5204
5205 2021-04-17 Jakub Jelinek <jakub@redhat.com>
5206
5207 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5208 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5209 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
5210 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5211 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5212 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5213
5214 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5215
5216 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
5217 add libatomic options for 32-bit sparc*-*-linux-gnu.
5218
5219 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
5220
5221 PR libstdc++/96657
5222 * libsupc++/Makefile.am: Add atomicity.cc here.
5223 * src/c++98/Makefile.am: Remove it from here.
5224 * libsupc++/Makefile.in: Regenerate.
5225 * src/c++98/Makefile.in: Regenerate.
5226 * testsuite/18_support/exception_ptr/96657.cc: New test.
5227
5228 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5229
5230 PR libstdc++/100060
5231 * include/std/bit: Only include <ext/numeric_traits.h> for
5232 hosted build, use <limits> otherwise.
5233
5234 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
5235
5236 * doc/xml/manual/backwards_compatibility.xml: Remove porting
5237 notes for libg++ and libstdc++-v2, and bibliography.
5238 * doc/html/*: Regenerated.
5239
5240 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5241
5242 PR libstdc++/100044
5243 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
5244 Remove helper concept.
5245 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
5246 deduction guides, as per LWG 3404.
5247 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
5248 template argument deduction fails.
5249
5250 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5251
5252 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
5253 Adjust expected error for C++20 mode.
5254 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
5255 Likewise.
5256
5257 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
5258
5259 PR libstdc++/99995
5260 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
5261 standard headers and XFAIL for effective-target c++20.
5262
5263 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
5264
5265 PR libstdc++/99402
5266 * include/debug/helper_functions.h (__can_advance(_InputIterator,
5267 const std::pair<_Diff, _Distance_precision>&, int)): New.
5268 (__can_advance(const _Safe_iterator<>&,
5269 const std::pair<_Diff, _Distance_precision>&, int)): New.
5270 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
5271 use latter.
5272 (__glibcxx_check_can_increment_range): Adapt to use latter.
5273 (__glibcxx_check_can_decrement_range): Likewise.
5274 * include/debug/safe_iterator.h
5275 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5276 int)): New.
5277 (__can_advance(const _Safe_iterator<>&,
5278 const std::pair<_Diff, _Distance_precision>&, int)): New.
5279 * include/debug/safe_iterator.tcc
5280 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
5281 int)): New.
5282 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
5283 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
5284 __dp_sign_max_size.
5285 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
5286 (__copy_move_backward_a): Likewise.
5287 (__equal_aux): Likewise.
5288 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
5289 const std::pair<_Diff, _Distance_precision>&, int)): New.
5290 (__can_advance(const std::move_iterator<>&,
5291 const std::pair<_Diff, _Distance_precision>&, int)): New.
5292 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
5293
5294 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
5295
5296 PR libstdc++/99985
5297 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
5298 to be a valid constexpr function in C++11.
5299 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
5300
5301 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
5302
5303 * include/bits/fs_fwd.h: Fix doxygen group command.
5304 * include/bits/streambuf_iterator.h: Likewise.
5305 * include/bits/uses_allocator_args.h: Likewise.
5306 * include/std/memory: Likewise.
5307 * include/tr1/complex: Likewise.
5308
5309 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5310
5311 * include/bits/basic_string.h: Tweak doxygen comment.
5312
5313 2021-04-08 Patrick Palka <ppalka@redhat.com>
5314
5315 * include/std/ranges (__detail::find): Define.
5316 (split_view::_OuterIter::operator++): Apply proposed resolution
5317 of LWG 3505.
5318 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
5319
5320 2021-04-08 Patrick Palka <ppalka@redhat.com>
5321
5322 * include/std/ranges (__detail::find_if): Simplify.
5323 (__detail::find_if_not): Likewise.
5324 (__detail::min): Remove.
5325 (__detail::mismatch): Simplify.
5326 (take_view::size): Use std::min instead of __detail::min.
5327
5328 2021-04-08 Patrick Palka <ppalka@redhat.com>
5329
5330 * include/std/ranges (__detail::__returnable_element): New
5331 concept.
5332 (elements_view): Use this concept in its constraints. Add
5333 missing private access specifier.
5334 (elements_view::_S_get_element): Define as per LWG 3502.
5335 (elements_view::operator*, elements_view::operator[]): Use
5336 _S_get_element.
5337 (elements_view::operator++): Remove unnecessary constraint
5338 as per LWG 3492.
5339 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
5340
5341 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5342
5343 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
5344 out-of-memory error in log file.
5345 * doc/Makefile.in: Regenerate.
5346
5347 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5348
5349 * configure: Regenerate.
5350
5351 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5352
5353 * include/bits/random.h: Fix doxygen group commands.
5354 * include/bits/regex_constants.h: Likewise.
5355 * include/tr1/random.h: Likewise.
5356
5357 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5358
5359 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
5360 New function to determine noexcept-specifier for move
5361 constructors.
5362 (_Hashtable): Use _S_nothrow_move() on move constructors.
5363 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
5364 Correct static assertion message.
5365 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
5366 Likewise.
5367 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
5368 Likewise.
5369 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
5370 Likewise.
5371
5372 2021-04-08 Patrick Palka <ppalka@redhat.com>
5373
5374 PR libstdc++/98384
5375 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
5376 on targets without a large long double. XFAIL the execution on
5377 targets with a non-conforming printf.
5378
5379 2021-04-08 Patrick Palka <ppalka@redhat.com>
5380
5381 PR libstdc++/99433
5382 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
5383 (__adaptor::__adaptor_invocable): New concept.
5384 (__adaptor::__adaptor_partial_app_viable): New concept.
5385 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
5386 non-template base class.
5387 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
5388 class template.
5389 (__adaptor::_Partial): New class template that represents
5390 partial application of a range adaptor non-closure.
5391 (__adaptor::__pipe_invocable): New concept.
5392 (__adaptor::_Pipe): New class template.
5393 (__detail::__can_ref_view): New concept.
5394 (__detail::__can_subrange): New concept.
5395 (all): Replace the lambda here with ...
5396 (_All): ... this functor. Add appropriate constraints.
5397 (__detail::__can_filter_view): New concept.
5398 (filter, _Filter): As in all/_All.
5399 (__detail::__can_transform): New concept.
5400 (transform, _Transform): As in all/_All.
5401 (__detail::__can_take_view): New concept.
5402 (take, _Take): As in all/_All.
5403 (__detail::__can_take_while_view): New concept.
5404 (take_while, _TakeWhile): As in all/_All.
5405 (__detail::__can_drop_view): New concept.
5406 (drop, _Drop): As in all/_All.
5407 (__detail::__can_drop_while_view): New concept.
5408 (drop_while, _DropWhile): As in all/_All.
5409 (__detail::__can_join_view): New concept.
5410 (join, _Join): As in all/_All.
5411 (__detail::__can_split_view): New concept.
5412 (split, _Split): As in all/_All. Rename template parameter
5413 _Fp to _Pattern.
5414 (__detail::__already_common): New concept.
5415 (__detail::__can_common_view): New concept.
5416 (common, _Common): As in all/_All.
5417 (__detail::__can_reverse_view): New concept.
5418 (reverse, _Reverse): As in all/_All.
5419 (__detail::__can_elements_view): New concept.
5420 (elements, _Elements): As in all/_All.
5421 (keys, values): Adjust.
5422 * testsuite/std/ranges/adaptors/99433.cc: New test.
5423 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
5424 adding empty range adaptor closure objects to a pipeline doesn't
5425 increase the size of the pipeline.
5426 (test05): New test.
5427 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
5428 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
5429 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
5430 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
5431 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
5432 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
5433 * testsuite/std/ranges/adaptors/p2281.cc: New test.
5434 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
5435 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
5436 Adjust.
5437 (test09): New test.
5438 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
5439 expected error message.
5440 (test02): Likewise. Extend test.
5441 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
5442 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
5443 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
5444 New test.
5445
5446 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5447
5448 * include/std/string_view: Adjust Doxygen @file comment.
5449
5450 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
5451
5452 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
5453 specialization to not match incomplete enum types. Use a
5454 requires-expression instead of instantiating is_convertible.
5455 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
5456 * testsuite/20_util/is_scoped_enum/value.cc: Check with
5457 incomplete types and opaque-enum-declarations.
5458
5459 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
5460
5461 PR libstdc++/99805
5462 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
5463 non-const member on _M_pathname, to avoid copy-on-write.
5464 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
5465 Check construction from strings that might be shared.
5466
5467 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5468
5469 * include/bits/move.h (forward, move, move_if_noexcept)
5470 (addressof): Add _GLIBCXX_NODISCARD.
5471 * include/bits/ranges_cmp.h (identity::operator()): Add
5472 nodiscard attribute.
5473 * include/c_global/cstddef (to_integer): Likewise.
5474 * include/std/bit (bit_cast): Likewise.
5475 * include/std/utility (as_const, to_underlying): Likewise.
5476
5477 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5478
5479 * include/bits/move.h (forward): Change static_assert message
5480 to be unambiguous about what must be true.
5481 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
5482 * testsuite/20_util/forward/f_neg.cc: Likewise.
5483
5484 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5485
5486 * include/bits/alloc_traits.h: Use markdown for code font.
5487 * include/bits/basic_string.h: Fix @param names.
5488 * include/bits/max_size_type.h: Remove period after @file.
5489 * include/bits/regex.h: Fix duplicate @retval names, and rename.
5490 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
5491 group open to match existing group close.
5492 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
5493 open.
5494
5495 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
5496
5497 * include/bits/atomic_base.h: Fix doxygen group close.
5498 * include/bits/basic_ios.h: Likewise.
5499 * include/bits/forward_list.h: Likewise.
5500 * include/bits/fs_dir.h: Likewise.
5501 * include/bits/fs_ops.h: Likewise.
5502 * include/bits/fs_path.h: Likewise.
5503 * include/bits/functional_hash.h: Likewise.
5504 * include/bits/gslice.h: Likewise.
5505 * include/bits/gslice_array.h: Likewise.
5506 * include/bits/hashtable_policy.h: Likewise.
5507 * include/bits/indirect_array.h: Likewise.
5508 * include/bits/locale_classes.h: Likewise.
5509 * include/bits/locale_facets.h: Likewise.
5510 * include/bits/locale_facets_nonio.h: Likewise.
5511 * include/bits/mask_array.h: Likewise.
5512 * include/bits/refwrap.h: Likewise.
5513 * include/bits/regex.h: Likewise.
5514 * include/bits/regex_automaton.h: Likewise.
5515 * include/bits/regex_compiler.h: Likewise.
5516 * include/bits/regex_constants.h: Likewise.
5517 * include/bits/regex_error.h: Likewise.
5518 * include/bits/regex_executor.h: Likewise.
5519 * include/bits/regex_scanner.h: Likewise.
5520 * include/bits/shared_ptr.h: Likewise.
5521 * include/bits/shared_ptr_atomic.h: Likewise.
5522 * include/bits/shared_ptr_base.h: Likewise.
5523 * include/bits/slice_array.h: Likewise.
5524 * include/bits/specfun.h: Likewise.
5525 * include/bits/std_function.h: Likewise.
5526 * include/bits/std_mutex.h: Likewise.
5527 * include/bits/stl_deque.h: Likewise.
5528 * include/bits/stl_iterator.h: Likewise.
5529 * include/bits/stl_iterator_base_types.h: Likewise.
5530 * include/bits/stl_map.h: Likewise.
5531 * include/bits/stl_multimap.h: Likewise.
5532 * include/bits/stl_multiset.h: Likewise.
5533 * include/bits/stl_numeric.h: Likewise.
5534 * include/bits/stl_pair.h: Likewise.
5535 * include/bits/stl_set.h: Likewise.
5536 * include/bits/stl_uninitialized.h: Likewise.
5537 * include/bits/stream_iterator.h: Likewise.
5538 * include/bits/streambuf_iterator.h: Likewise.
5539 * include/bits/unique_ptr.h: Likewise.
5540 * include/bits/unordered_map.h: Likewise.
5541 * include/bits/unordered_set.h: Likewise.
5542 * include/decimal/decimal: Likewise.
5543 * include/experimental/any: Likewise.
5544 * include/experimental/array: Likewise.
5545 * include/experimental/bits/fs_dir.h: Likewise.
5546 * include/experimental/bits/fs_fwd.h: Likewise.
5547 * include/experimental/bits/fs_ops.h: Likewise.
5548 * include/experimental/bits/fs_path.h: Likewise.
5549 * include/experimental/buffer: Likewise.
5550 * include/experimental/internet: Likewise.
5551 * include/experimental/optional: Likewise.
5552 * include/experimental/propagate_const: Likewise.
5553 * include/experimental/socket: Likewise.
5554 * include/ext/pb_ds/assoc_container.hpp: Likewise.
5555 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
5556 Likewise.
5557 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
5558 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
5559 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
5560 * include/ext/pb_ds/exception.hpp: Likewise.
5561 * include/ext/pb_ds/priority_queue.hpp: Likewise.
5562 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
5563 * include/ext/random: Likewise.
5564 * include/std/any: Likewise.
5565 * include/std/atomic: Likewise.
5566 * include/std/bitset: Likewise.
5567 * include/std/chrono: Likewise.
5568 * include/std/complex: Likewise.
5569 * include/std/condition_variable: Likewise.
5570 * include/std/fstream: Likewise.
5571 * include/std/future: Likewise.
5572 * include/std/iostream: Likewise.
5573 * include/std/istream: Likewise.
5574 * include/std/mutex: Likewise.
5575 * include/std/numeric: Likewise.
5576 * include/std/ostream: Likewise.
5577 * include/std/ratio: Likewise.
5578 * include/std/shared_mutex: Likewise.
5579 * include/std/stdexcept: Likewise.
5580 * include/std/streambuf: Likewise.
5581 * include/std/system_error: Likewise.
5582 * include/std/thread: Likewise.
5583 * include/std/valarray: Likewise.
5584 * include/std/variant: Likewise.
5585 * include/tr1/cmath: Likewise.
5586 * include/tr1/regex: Likewise.
5587 * include/tr2/dynamic_bitset: Likewise.
5588 * libsupc++/atomic_lockfree_defines.h: Likewise.
5589 * libsupc++/exception: Likewise.
5590 * libsupc++/exception.h: Likewise.
5591 * libsupc++/exception_ptr.h: Likewise.
5592 * libsupc++/nested_exception.h: Likewise.
5593
5594 2021-03-31 Alexandre Oliva <oliva@adacore.com>
5595
5596 * testsuite/30_threads/future/members/poll.cc: Use faster
5597 after-ready call in the calibration loop.
5598
5599 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
5600
5601 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
5602 * doc/html/manual/status.html: Regenerate.
5603
5604 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
5605
5606 * include/debug/forward_list
5607 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
5608 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
5609 call to safe container allocator aware move constructor.
5610 * include/debug/vector (vector(vector&&, const allocator_type&)):
5611 Fix noexcept qualification.
5612 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
5613 Add allocator-extended move constructor noexceot qualification check.
5614 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
5615
5616 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
5617
5618 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
5619 fallback is needed.
5620 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
5621 New helper functions and callback.
5622 (random_device::_M_init): Add 'prng' and 'all' enumerators.
5623 Replace switch with fallthrough with a series of 'if' statements.
5624 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
5625 checks fail.
5626 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
5627 token.
5628 (random_device::_M_getval): Check for callback unconditionally
5629 and always pass _M_file pointer.
5630 * testsuite/26_numerics/random/random_device/85494.cc: Remove
5631 effective-target check. Use new random_device_available helper.
5632 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
5633 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
5634 Remove effective-target check.
5635 * testsuite/26_numerics/random/random_device/cons/default.cc:
5636 Likewise.
5637 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
5638 new random_device_available helper. Test "prng" token.
5639 * testsuite/util/testsuite_random.h (random_device_available):
5640 New helper function.
5641
5642 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
5643
5644 * include/debug/string
5645 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
5646 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
5647 (basic_string<>::erase): Adapt to take __const_iterator.
5648 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
5649 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
5650 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
5651 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
5652 (__gnu_debug::u16string, __gnu_debug::u32string): New.
5653 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
5654 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
5655 * testsuite/util/exception/safety.h
5656 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
5657 (insert_base<__gnu_debug::basic_string<>>): Likewise.
5658 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
5659 New partial specialization.
5660 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
5661 * testsuite/21_strings/basic_string/requirements/citerators.cc:
5662 Add test on __gnu_debug::string.
5663 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
5664 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
5665 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
5666 Likewise.
5667 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
5668 Likewise.
5669 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
5670 Likewise.
5671 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
5672 Likewise.
5673 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
5674 Likewise.
5675 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
5676 Likewise.
5677 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
5678 Likewise.
5679 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
5680
5681 2021-03-25 Jakub Jelinek <jakub@redhat.com>
5682
5683 PR c++/99672
5684 * testsuite/18_support/source_location/consteval.cc (main): Adjust
5685 expected column numbers.
5686 * testsuite/18_support/source_location/1.cc (main): Likewise.
5687
5688 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
5689
5690 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
5691
5692 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
5693
5694 * testsuite/util/exception/safety.h (setup_base::generate):
5695 Support seeding random engine.
5696 (erase_point, erase_range): Adjust range of random numbers to
5697 ensure dereferenceable iterators are used where required.
5698 (generation_prohibited::run): Do not try to erase from empty
5699 containers.
5700 * testsuite/util/testsuite_containergen.h (test_containers):
5701 Support seeding random engine.
5702
5703 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
5704
5705 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
5706 line with a check that uses the const being/end overloads.
5707
5708 2021-03-23 Moritz Sichert <sichert@in.tum.de>
5709
5710 * include/std/ranges (reverse_view::begin, reverse_view::end):
5711 Qualify make_reverse_iterator calls to avoid ADL.
5712 * testsuite/std/ranges/adaptors/reverse.cc: Test that
5713 views::reverse works when make_reverse_iterator is defined
5714 in an associated namespace.
5715
5716 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
5717
5718 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
5719 Do not define when compiling with Clang.
5720
5721 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
5722
5723 * include/std/string_view (basic_string_view(Range&&)): Define new
5724 constructor and deduction guide.
5725 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
5726 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
5727
5728 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
5729
5730 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
5731 Add missing 'noexcept' as per LWG 2280.
5732 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
5733 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
5734 * testsuite/24_iterators/range_access/range_access.cc: Check for
5735 expected noexcept specifiers. Check result types of generic
5736 std::begin and std::end overloads.
5737 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
5738 Check for expected noexcept specifiers.
5739 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
5740 Likewise.
5741
5742 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
5743
5744 * include/std/type_traits (is_scoped_enum): Define.
5745 * include/std/version (__cpp_lib_is_scoped_enum): Define.
5746 * testsuite/20_util/is_scoped_enum/value.cc: New test.
5747 * testsuite/20_util/is_scoped_enum/version.cc: New test.
5748
5749 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
5750
5751 PR libstdc++/99341
5752 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
5753 std::once_flag symbols.
5754 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
5755 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
5756 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5757 Likewise.
5758 * config/abi/pre/gnu.ver: Likewise.
5759 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5760 (struct __once_flag_compat): Remove.
5761 (_ZNSt9once_flag11_M_activateEv): Remove.
5762 (_ZNSt9once_flag9_M_finishEb): Remove.
5763
5764 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
5765
5766 PR libstdc++/99341
5767 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
5768 Revert to pthread_once_t implementation.
5769 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
5770 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
5771 (struct __once_flag_compat): New type matching the reverted
5772 implementation of once_flag using futexes.
5773 (once_flag::_M_activate): Remove, replace with ...
5774 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
5775 (once_flag::_M_finish): Remove, replace with ...
5776 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
5777 * testsuite/30_threads/call_once/66146.cc: Removed.
5778
5779 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
5780
5781 * testsuite/17_intro/names.cc: Exclude j from the list
5782 of test symbols for Darwin.
5783
5784 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
5785
5786 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
5787 to_chars and from_chars for long double.
5788
5789 2021-03-15 Patrick Palka <ppalka@redhat.com>
5790
5791 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
5792 Fix formatting.
5793 (__max_size_type::operator++): Define.
5794 (__max_size_type::operator--): Likewise.
5795 (__max_size_type::operator<=>): Conditionally define (in place
5796 of the other comparison operators).
5797 (__max_diff_type::operator _Tp): Fix formatting.
5798 (__max_diff_type::operator++): Define.
5799 (__max_diff_type::operator--): Likewise.
5800 (__max_diff_type::operator<=>): Conditionally define (in place
5801 of the other comparison operators).
5802 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
5803 these operator overloads.
5804
5805 2021-03-15 Caroline Tice <cmtice@google.com>
5806
5807 PR libstdc++/99172
5808 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
5809 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
5810 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
5811 filtered out.
5812 * src/Makefile.in: Regenerate.
5813
5814 2021-03-11 Patrick Palka <ppalka@redhat.com>
5815
5816 * src/c++17/floating_to_chars.cc: Simplify the file as if
5817 __SIZEOF_INT128__ is always defined.
5818 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
5819 a base-10 to_chars overload for the uint128_t class type.
5820 * src/c++17/uint128_t.h: New file.
5821 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
5822 execution FAIL on targets that have a large long double type
5823 but lack __int128.
5824
5825 2021-03-11 Patrick Palka <ppalka@redhat.com>
5826
5827 * src/c++17/ryu/LOCAL_PATCHES: Update.
5828 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
5829 * src/c++17/ryu/generic_128.h: Likewise.
5830 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
5831 Use uint128_t instead of __uint128_t.
5832 (generic_binary_to_decimal): Likewise.
5833
5834 2021-03-11 Patrick Palka <ppalka@redhat.com>
5835
5836 * src/c++17/ryu/LOCAL_PATCHES: New file.
5837
5838 2021-03-11 Patrick Palka <ppalka@redhat.com>
5839
5840 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
5841 defined alias of unsigned __int128.
5842 (floating_type_traits_binary128::mantissa_t): Use uint128_t
5843 instead of unsigned __int128.
5844 (floating_type_traits<long double>::mantissa_t)
5845 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
5846 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
5847 and uint32_t explicit. Simplify the extraction of mantissa,
5848 exponent and sign bit.
5849
5850 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5851
5852 * include/std/barrier (barrier::arrival_token): New move-only
5853 class that encapsulates the underlying token value.
5854
5855 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5856
5857 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
5858 instead of unqualified() method.
5859
5860 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5861
5862 PR libstdc++/99537
5863 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
5864 Use acq_rel memory ordering.
5865
5866 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5867
5868 PR libstdc++/99533
5869 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
5870 helper function to check for permission denied errors.
5871 * src/filesystem/dir.cc (recursive_directory_iterator):
5872 Likewise.
5873 * src/filesystem/dir-common.h (is_permission_denied_error): New
5874 helper function.
5875
5876 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5877
5878 PR libstdc++/99536
5879 * include/bits/random.h (normal_distribution): Use
5880 default-initializer for _M_saved and _M_saved_available.
5881
5882 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
5883
5884 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
5885 link with libatomic.
5886 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
5887 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
5888 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
5889 * testsuite/30_threads/barrier/arrive.cc: Likewise.
5890 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5891 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5892 * testsuite/30_threads/barrier/completion.cc: Likewise.
5893 * testsuite/30_threads/latch/3.cc: Likewise.
5894 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
5895 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
5896 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
5897
5898 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5899
5900 PR libstdc++/99413
5901 * include/bits/align.h: Include debug/assertions.h.
5902 * include/bits/codecvt.h: Include bits/c++config.h.
5903 * include/bits/enable_special_members.h: Likewise.
5904 * include/bits/erase_if.h: Likewise.
5905 * include/bits/functional_hash.h: Include <type_traits>.
5906 * include/bits/invoke.h: Include bits/move.h.
5907 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
5908 * include/bits/parse_numbers.h: Include <type_traits>.
5909 * include/bits/predefined_ops.h: Include bits/c++config.h.
5910 * include/bits/range_access.h: Include bits/stl_iterator.h.
5911 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
5912 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
5913 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
5914 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
5915 * include/bits/unique_lock.h: Include bits/std_mutex.h.
5916 * include/debug/assertions.h: Include bits/c++config.h.
5917
5918 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5919
5920 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
5921 (ranges::equal_to, ranges::not_equal_to): Do not constrain
5922 with __eq_builtin_ptr_cmp.
5923 (ranges::less, ranges::greater, ranges::less_equal)
5924 (ranges::greater_equal): Do not constrain with
5925 __less_builtin_ptr_cmp.
5926 * libsupc++/compare (compare_three_way): Do not constrain with
5927 __3way_builtin_ptr_cmp.
5928 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
5929 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
5930 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
5931
5932 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5933
5934 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
5935 C++20 calendar types.
5936
5937 2021-03-06 Jakub Jelinek <jakub@redhat.com>
5938
5939 PR libstdc++/99396
5940 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
5941 two _Nd which the compiler can pattern match the rotates.
5942
5943 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
5944
5945 PR libstdc++/99382
5946 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
5947 Make storage larger than required. Verify no write to the last
5948 element.
5949 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
5950 Likewise.
5951
5952 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5953
5954 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5955 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5956 Likewise.
5957 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5958 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5959 Likewise.
5960
5961 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5962
5963 * include/experimental/bits/simd.h: Replace reserved _X, _B by
5964 _Xp, _Bp.
5965 * include/experimental/bits/simd_builtin.h: Likewise.
5966 * include/experimental/bits/simd_x86.h: Likewise.
5967
5968 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
5969
5970 PR libstdc++/99301
5971 * include/std/chrono (year_month_day::_M_days_since_epoch()):
5972 Convert chrono::month and chrono::day to unsigned before
5973 converting to uint32_t.
5974
5975 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5976
5977 * include/std/chrono (year_month_day::_S_from_days): Perform
5978 all calculations with type uint32_t.
5979
5980 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5981
5982 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
5983 * doc/html/manual/abi.html: Regenerate.
5984
5985 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5986
5987 PR libstdc++/99270
5988 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
5989 FILE instead of FILE.
5990
5991 2021-02-25 Andreas Schwab <schwab@suse.de>
5992
5993 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5994 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
5995 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5996 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5997
5998 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5999
6000 PR libstdc++/99265
6001 * include/std/chrono (year_month_day::_S_from_days): Cast long
6002 to int explicitly.
6003
6004 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
6005
6006 * include/std/utility (to_underlying): Define.
6007 * include/std/version (__cpp_lib_to_underlying): Define.
6008 * testsuite/20_util/to_underlying/1.cc: New test.
6009 * testsuite/20_util/to_underlying/version.cc: New test.
6010
6011 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6012
6013 PR libstdc++/99261
6014 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
6015 before value to be printed.
6016
6017 2021-02-24 Patrick Palka <ppalka@redhat.com>
6018
6019 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
6020 Relax the condition that guards the printf code path to accept
6021 F128_type as well as long double.
6022
6023 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6024
6025 * include/std/chrono (year_month_day_last:day): New
6026 implementation.
6027
6028 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6029
6030 * include/std/chrono (year::is_leap): New implementation.
6031 * testsuite/std/time/year/2.cc: New test.
6032
6033 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6034
6035 * include/std/chrono (year_month_day::_M_days_since_epoch):
6036 New implementation.
6037 * testsuite/std/time/year_month_day/4.cc: New test.
6038
6039 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
6040
6041 * include/std/chrono (year_month_day::_S_from_days): New
6042 implementation.
6043 * testsuite/std/time/year_month_day/3.cc: New test.
6044
6045 2021-02-24 Patrick Palka <ppalka@redhat.com>
6046
6047 PR libstdc++/98384
6048 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
6049 (test01): Simplify verifying the nearby values by using a
6050 2-iteration loop and a dedicated output buffer to check that the
6051 nearby values are different. Factor out the printf-based
6052 verification into a local function, and check that the leading
6053 hex digits agree before comparing to the output of printf. Also
6054 verify the output by round-tripping it through from_chars.
6055
6056 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6057
6058 PR libstdc++/98389
6059 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
6060 symbols for long double arguments mangled as 'g'.
6061 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
6062 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
6063 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
6064 Use -mabi=ibmlongdouble for floating_to_chars.cc.
6065 * src/c++17/Makefile.in: Regenerate.
6066 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
6067 New type defining type traits of IEEE binary128 format.
6068 (floating_type_traits<__float128>): Define specialization.
6069 (floating_type_traits<long double>): Define in terms of
6070 floating_type_traits_binary128 when appropriate.
6071 (floating_to_shortest_scientific): Handle __float128.
6072 (sprintf_ld): New function template for printing a long double
6073 or __ieee128 value using sprintf.
6074 (__floating_to_chars_shortest, __floating_to_chars_precision):
6075 Use sprintf_ld.
6076 (to_chars): Define overloads for __float128.
6077
6078 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
6079
6080 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
6081
6082 2021-02-23 Martin Sebor <msebor@redhat.com>
6083
6084 PR c++/99074
6085 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
6086 first argument is null.
6087
6088 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6089
6090 PR libstdc++/99181
6091 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
6092 test.
6093
6094 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6095
6096 PR libstdc++/99181
6097 * include/bits/char_traits.h (char_traits<char>::compare): For
6098 constexpr evaluation don't call
6099 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
6100 directly.
6101
6102 2021-02-23 Jakub Jelinek <jakub@redhat.com>
6103
6104 PR libstdc++/97549
6105 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
6106
6107 2021-02-23 Patrick Palka <ppalka@redhat.com>
6108
6109 PR libstdc++/98384
6110 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
6111 the high- and low-order parts from an IBM long double value
6112 in an endian-agnostic way.
6113
6114 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
6115
6116 * include/bits/atomic_wait.h (__thread_relax()): Call
6117 __thread_yield() not __gthread_yield().
6118
6119 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6120
6121 * include/bits/atomic_wait.h (__thread_yield()): Check
6122 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
6123 (__thread_relax()): Use __thread_yield() instead of repeating
6124 the preprocessor checks for __gthread_yield.
6125
6126 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
6127
6128 * include/std/mutex (once_flag::_M_activate()): Add explicit
6129 return statement for passive case.
6130 (once_flag::_M_finish(bool)): Use reserved name for parameter.
6131
6132 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
6133
6134 PR libstdc++/99096
6135 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
6136
6137 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6138
6139 PR libstdc++/88881
6140 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
6141
6142 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6143
6144 * doc/xml/manual/status_cxx2014.xml: Document implementation
6145 specific properties of std::experimental::filesystem::rename.
6146 * doc/xml/manual/status_cxx2017.xml: Document implementation
6147 specific properties of std::filesystem::rename.
6148 * doc/html/*: Regenerate.
6149 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
6150 for directories on Windows.
6151 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
6152 MoveFileExW on Windows.
6153 * testsuite/27_io/filesystem/operations/rename.cc: New test.
6154 * testsuite/experimental/filesystem/operations/rename.cc: New test.
6155
6156 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6157
6158 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
6159 random number to the path.
6160
6161 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6162
6163 * include/experimental/internet (address_v6::to_string): Include
6164 scope ID in string.
6165 * testsuite/experimental/net/internet/address/v6/members.cc:
6166 Test to_string() results.
6167
6168 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6169
6170 * include/experimental/internet (address_v6::any): Avoid using
6171 memcpy in constexpr function.
6172 (address_v6::loopback): Likewise.
6173 (make_address_v6): Fix missing return statements on error paths.
6174 * include/experimental/io_context: Avoid -Wdangling-else
6175 warning.
6176 * testsuite/experimental/net/internet/address/v4/members.cc:
6177 Remove unused variables.
6178 * testsuite/experimental/net/internet/address/v6/members.cc:
6179 New test.
6180
6181 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6182
6183 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
6184 Add unused attribute to parameter.
6185 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
6186 Likewise.
6187
6188 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6189
6190 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
6191 if -fno-rtti is used.
6192 * testsuite/30_threads/async/forced_unwind.cc: Expect test
6193 to abort if -fno-rtti is used.
6194
6195 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6196
6197 * testsuite/util/testsuite_allocator.h (memory_resource):
6198 Remove requirement for RTTI and exceptions to be enabled.
6199
6200 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6201
6202 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
6203 static_cast when RTTI is disabled.
6204 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
6205 Likewise.
6206 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
6207 Likewise.
6208 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
6209 Likewise.
6210 * testsuite/27_io/basic_stringstream/str/char/2.cc:
6211 Likewise.
6212 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
6213 Likewise.
6214
6215 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6216
6217 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
6218 as unused and only use dynamic_cast when RTTI is enabled.
6219
6220 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
6221
6222 PR libstdc++/99077
6223 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
6224 Change int parameter to error_code, to match std::ios_failure.
6225 (__throw_ios_failure(const char*, int)): Construct error_code
6226 from int parameter.
6227
6228 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6229
6230 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
6231 new macro.
6232 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
6233 macro instead of _GLIBCXX_EH_PTR_COMPAT.
6234 (operator==): Likewise.
6235
6236 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
6237
6238 PR libstdc++/99058
6239 * doc/xml/manual/status_cxx2011.xml: Document when support
6240 became stable.
6241 * doc/xml/manual/status_cxx2014.xml: Likewise.
6242 * doc/xml/manual/status_cxx2017.xml: Likewise.
6243 * doc/html/manual/status.html: Regenerate.
6244
6245 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6246
6247 PR libstdc++/88881
6248 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
6249
6250 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6251
6252 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
6253 (fs::remove): Use std::system_category() for error codes from
6254 GetLastError().
6255 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
6256 Likewise.
6257
6258 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
6259
6260 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
6261 in __MINGW32__ macro name.
6262 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
6263 * testsuite/27_io/filesystem/path/generation/proximate.cc:
6264 Likewise.
6265 * testsuite/27_io/filesystem/path/generation/relative.cc:
6266 Likewise.
6267 * testsuite/util/testsuite_fs.h: Likewise.
6268
6269 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
6270
6271 * include/bits/stl_tree.h
6272 (__has_is_transparent, __has_is_transparent_t): Move...
6273 * include/bits/stl_function.h: ...here.
6274 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
6275 (_Hashtable_base<>::_M_equals_tr): New.
6276 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
6277 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
6278 heterogeneous lookup.
6279 (_Hashtable<>::_M_find_before_node_tr): New.
6280 (_Hashtable<>::_M_find_node_tr): New.
6281 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
6282 unordered_map::contains<>, unordered_map::equal_range<>): New member function
6283 templates to perform heterogeneous lookup.
6284 (unordered_multimap::find<>, unordered_multimap::count<>,
6285 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
6286 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
6287 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
6288 (unordered_multiset::find<>, unordered_multiset::count<>,
6289 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
6290 * include/debug/unordered_map
6291 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
6292 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
6293 * include/debug/unordered_set
6294 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
6295 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
6296 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
6297 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
6298 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
6299 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
6300
6301 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
6302
6303 * include/bits/stl_deque.h
6304 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
6305 a null pointer test.
6306
6307 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
6308
6309 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
6310 test directory after making it writable again.
6311 * testsuite/experimental/filesystem/operations/remove_all.cc:
6312 Likewise.
6313
6314 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
6315
6316 PR libstdc++/99021
6317 * include/std/coroutine (coroutine_handle<P>::from_address): Add
6318 noexcept.
6319
6320 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
6321
6322 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
6323 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
6324
6325 2021-02-09 Jakub Jelinek <jakub@redhat.com>
6326
6327 PR middle-end/98465
6328 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
6329 points to the characters moved by earlier _S_move, compute the source
6330 address using expression based on the __p pointer rather than __s
6331 pointer.
6332
6333 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
6334
6335 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
6336 Add comparison with same category and different values.
6337 * testsuite/19_diagnostics/error_code/operators/less.cc:
6338 Likewise. Fix comparison involving different categories.
6339 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
6340 Likewise.
6341 * testsuite/19_diagnostics/error_condition/operators/less.cc:
6342 Add comment.
6343 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
6344 Likewise.
6345
6346 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
6347
6348 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
6349 calls with a single vaddv for aarch64.
6350
6351 2021-02-03 Matthias Kretz <kretz@kde.org>
6352
6353 * testsuite/Makefile.am: Warn about the workaround. Add
6354 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
6355 Improve initial user feedback from make check-simd.
6356 * testsuite/Makefile.in: Regenerated.
6357
6358 2021-02-03 Matthias Kretz <kretz@kde.org>
6359
6360 * include/experimental/bits/simd.h: Add __detail::_Minimum and
6361 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
6362 Add hmin and hmax overloads for simd and const_where_expression.
6363 * include/experimental/bits/simd_scalar.h
6364 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
6365 parameter const-ref to allow calling _S_reduce with an rvalue.
6366 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
6367 hmin and hmax. Since the compiler statically determined that all
6368 tests pass, repeat the test after a call to make_value_unknown.
6369
6370 2021-02-03 Matthias Kretz <kretz@kde.org>
6371
6372 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
6373 instruction pointer data member. Ensure that the `if (m_failed)`
6374 branch is always inlined into the calling code. The body of the
6375 conditional can still be a function call. Move the get_ip call
6376 into the verify ctor to simplify the ctor calls.
6377 (COMPARE): Don't mention the use of all_of for reduction of a
6378 simd_mask. It only distracts from the real issue.
6379
6380 2021-02-03 Matthias Kretz <kretz@kde.org>
6381
6382 * testsuite/experimental/simd/driver.sh: Abstract reading test
6383 options into read_src_option function. Read skip, only,
6384 expensive, and xfail via read_src_option. Add timeout and
6385 timeout-factor options and adjust timeout variable accordingly.
6386 * testsuite/experimental/simd/tests/loadstore.cc: Set
6387 timeout-factor 2.
6388
6389 2021-02-03 Matthias Kretz <kretz@kde.org>
6390
6391 * testsuite/experimental/simd/driver.sh: When handling the pipe
6392 to log (and on verbose to stdout) count the lines. If it exceeds
6393 1000 log the issue and exit 125, which is then handled as a
6394 failure.
6395
6396 2021-02-03 Matthias Kretz <kretz@kde.org>
6397
6398 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
6399 markup for long double on powerpc64*.
6400
6401 2021-02-03 Matthias Kretz <kretz@kde.org>
6402
6403 * include/experimental/bits/simd.h: Add __have_power10vec
6404 conditional on _ARCH_PWR10.
6405 * include/experimental/bits/simd_builtin.h: Forward declare
6406 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
6407 defined.
6408 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
6409 _SuperImpl for optimizations and correctness.
6410 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
6411 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
6412 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
6413 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
6414
6415 2021-02-03 Matthias Kretz <kretz@kde.org>
6416
6417 * testsuite/experimental/simd/driver.sh: Remove executable on
6418 SIGINT. Process compiler and test executable output: In verbose
6419 mode print messages immediately, limited to 1000 lines and
6420 breaking long lines to below $COLUMNS (or 1024 if not set).
6421 Communicating the exit status of the compiler / test with the
6422 necessary pipe is done via a message through stdout/-in.
6423
6424 2021-02-03 Matthias Kretz <kretz@kde.org>
6425
6426 * testsuite/Makefile.am: Ensure .simd.summary is empty before
6427 collecting a new summary.
6428 * testsuite/Makefile.in: Regenerate.
6429
6430 2021-02-03 Matthias Kretz <kretz@kde.org>
6431
6432 * testsuite/experimental/simd/generate_makefile.sh: Use
6433 different variables internally than documented for user
6434 overrides. This makes internal append/prepend work as intended.
6435
6436 2021-02-03 Matthias Kretz <kretz@kde.org>
6437
6438 * testsuite/experimental/simd/driver.sh (verify_test): Print
6439 test output on run xfail. Do not repeat lines from the log that
6440 were already printed on stdout.
6441 (test_selector): Make the compiler flags pattern usable as a
6442 substring selector.
6443 (toplevel): Trap on SIGINT and remove the log and sum files.
6444 Call timout with --foreground to quickly terminate on SIGINT.
6445 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
6446 targets via target patterns. Default DRIVEROPTS to -v for run
6447 targets. Remove log and sum files after completion of the run
6448 target (so that it's always recompiled).
6449 Place help text into text file for reasonable 'make help'
6450 performance.
6451
6452 2021-02-03 Matthias Kretz <kretz@kde.org>
6453
6454 * include/experimental/bits/simd.h: Remove unnecessary static
6455 assertion. Allow sizeof(8) integer __intrinsic_type to enable
6456 the necessary mask type.
6457
6458 2021-02-03 Matthias Kretz <kretz@kde.org>
6459
6460 * include/experimental/bits/simd.h: Let __intrinsic_type<long
6461 double, N> be valid if sizeof(long double) == sizeof(double) and
6462 use a __vector double as member type.
6463
6464 2021-02-03 Matthias Kretz <kretz@kde.org>
6465
6466 * include/experimental/bits/simd.h (__is_intrinsic_type): New
6467 internal type trait. Alias for __is_vector_type on x86.
6468 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
6469 __vector_type.
6470 (__intrin_bitcast): Allow casting to & from vector & intrinsic
6471 types.
6472 (__intrinsic_type): Explicitly specialize for NEON intrinsic
6473 vector types.
6474
6475 2021-02-03 Matthias Kretz <kretz@kde.org>
6476
6477 * testsuite/experimental/simd/driver.sh: Implement skip, only,
6478 expensive, and xfail markers. They can select on type, ABI tag
6479 subset number, target-triplet, and compiler flags.
6480 * testsuite/experimental/simd/generate_makefile.sh: The summary
6481 now includes lines for unexpected passes and expected failures.
6482 If the skip or only markers are only conditional on the type, do
6483 not generate rules for those types.
6484 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
6485 for ABI tag subsets 1-9.
6486 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
6487 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
6488 * testsuite/experimental/simd/tests/casts.cc: Ditto.
6489 * testsuite/experimental/simd/tests/generator.cc: Ditto.
6490 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
6491 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
6492 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
6493 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
6494 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
6495 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
6496 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
6497 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
6498 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
6499 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
6500 * testsuite/experimental/simd/tests/operators.cc: Ditto.
6501 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
6502 * testsuite/experimental/simd/tests/simd.cc: Ditto.
6503 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
6504 * testsuite/experimental/simd/tests/splits.cc: Ditto.
6505 * testsuite/experimental/simd/tests/where.cc: Ditto.
6506 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
6507 addition replace "test only floattypes" marker by unconditional
6508 "float|double|ldouble" only marker.
6509 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
6510 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
6511 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6512 Ditto.
6513 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
6514 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
6515 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
6516 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
6517 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
6518 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
6519 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
6520 addition, xfail on run because the reference data is missing.
6521
6522 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
6523
6524 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
6525 * doc/xml/manual/status_cxx2014.xml: Likewise.
6526 * doc/xml/manual/status_cxx2017.xml: Likewise.
6527 * doc/html/manual/status.html: Regenerate.
6528
6529 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
6530
6531 PR libstdc++/70303
6532 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
6533 Return 0 if both iterators are value-initialized.
6534 * testsuite/23_containers/deque/70303.cc: New test.
6535 * testsuite/23_containers/vector/70303.cc: New test.
6536
6537 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
6538
6539 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
6540 status.
6541 * doc/xml/manual/status_cxx2014.xml: Likewise.
6542 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
6543 std::from_chars and std::to_chars status. Fix formatting.
6544 * doc/html/manual/status.html: Regenerate.
6545
6546 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
6547
6548 * include/experimental/bits/numeric_traits.h: Update copyright
6549 dates.
6550 * include/experimental/bits/simd.h: Likewise.
6551 * include/experimental/bits/simd_builtin.h: Likewise.
6552 * include/experimental/bits/simd_converter.h: Likewise.
6553 * include/experimental/bits/simd_detail.h: Likewise.
6554 * include/experimental/bits/simd_fixed_size.h: Likewise.
6555 * include/experimental/bits/simd_math.h: Likewise.
6556 * include/experimental/bits/simd_neon.h: Likewise.
6557 * include/experimental/bits/simd_ppc.h: Likewise.
6558 * include/experimental/bits/simd_scalar.h: Likewise.
6559 * include/experimental/bits/simd_x86.h: Likewise.
6560 * include/experimental/bits/simd_x86_conversions.h: Likewise.
6561 * include/experimental/simd: Likewise.
6562 * testsuite/experimental/simd/*: Likewise.
6563
6564 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6565
6566 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
6567 * doc/html/*: Regenerate.
6568
6569 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6570
6571 * testsuite/experimental/simd/generate_makefile.sh: Use printf
6572 instead of echo when printing escape characters.
6573
6574 2021-01-27 Matthias Kretz <kretz@kde.org>
6575
6576 * scripts/check_simd: New file. This script is called from the
6577 the check-simd target. It determines a set of compiler flags and
6578 simulator setups for calling generate_makefile.sh and passes the
6579 information back to the check-simd target, which recurses to the
6580 generated Makefiles.
6581 * scripts/create_testsuite_files: Remove files below simd/tests/
6582 from testsuite_files and place them in testsuite_files_simd.
6583 * testsuite/Makefile.am: Add testsuite_files_simd. Add
6584 check-simd target.
6585 * testsuite/Makefile.in: Regenerate.
6586 * testsuite/experimental/simd/driver.sh: New file. This script
6587 compiles and runs a given simd test, logging its output and
6588 status. It uses the timeout command to implement compile and
6589 test timeouts.
6590 * testsuite/experimental/simd/generate_makefile.sh: New file.
6591 This script generates a Makefile which uses driver.sh to compile
6592 and run the tests and collect the logs into a single log file.
6593 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
6594 abs(simd).
6595 * testsuite/experimental/simd/tests/algorithms.cc: New file.
6596 Tests min/max(simd, simd).
6597 * testsuite/experimental/simd/tests/bits/conversions.h: New
6598 file. Contains functions to support tests involving conversions.
6599 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
6600 Support functions make_mask and make_vec.
6601 * testsuite/experimental/simd/tests/bits/mathreference.h: New
6602 file. Support functions to supply precomputed math function
6603 reference data.
6604 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
6605 file. Support code for SFINAE testing.
6606 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
6607 * testsuite/experimental/simd/tests/bits/test_values.h: New
6608 file. Test functions to easily drive a test with simd objects
6609 initialized from a given list of values and a range of random
6610 values.
6611 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
6612 Support code to determine the ULP distance of simd objects.
6613 * testsuite/experimental/simd/tests/bits/verify.h: New file.
6614 Test framework for COMPARE'ing simd objects and instantiating
6615 the test templates with value_type and ABI tag.
6616 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
6617 simd broadcasts.
6618 * testsuite/experimental/simd/tests/casts.cc: New file. Test
6619 simd casts.
6620 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
6621 Test floating-point classification functions.
6622 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
6623 frexp(simd).
6624 * testsuite/experimental/simd/tests/generator.cc: New file. Test
6625 simd generator constructor.
6626 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
6627 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
6628 * testsuite/experimental/simd/tests/integer_operators.cc: New
6629 file. Test integer operators.
6630 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6631 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
6632 modf(simd).
6633 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
6634 (converting) simd loads and stores.
6635 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
6636 log*(simd).
6637 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
6638 Test simd_mask broadcasts.
6639 * testsuite/experimental/simd/tests/mask_conversions.cc: New
6640 file. Test simd_mask conversions.
6641 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
6642 file. Test simd_mask implicit conversions.
6643 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
6644 Test simd_mask loads and stores.
6645 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
6646 file. Test simd_mask operators convert as specified.
6647 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
6648 Test simd_mask compares, subscripts, and negation.
6649 * testsuite/experimental/simd/tests/mask_reductions.cc: New
6650 file. Test simd_mask reductions.
6651 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
6652 1-arg math functions on simd.
6653 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
6654 2-arg math functions on simd.
6655 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
6656 Test implicit conversions on simd binary operators behave as
6657 specified.
6658 * testsuite/experimental/simd/tests/operators.cc: New file. Test
6659 simd compares, subscripts, not, unary minus, plus, minus,
6660 multiplies, divides, increment, and decrement.
6661 * testsuite/experimental/simd/tests/reductions.cc: New file.
6662 Test reduce(simd).
6663 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
6664 remqo(simd).
6665 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
6666 sanity checks of simd types.
6667 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
6668 sin(simd) and cos(simd).
6669 * testsuite/experimental/simd/tests/split_concat.cc: New file.
6670 Test split(simd) and concat(simd, simd).
6671 * testsuite/experimental/simd/tests/splits.cc: New file. Test
6672 split(simd_mask).
6673 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
6674 Test remaining trigonometric functions on simd.
6675 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
6676 file. Test trunc(simd), ceil(simd), and floor(simd).
6677 * testsuite/experimental/simd/tests/where.cc: New file. Test
6678 masked operations using where.
6679
6680 2021-01-27 Matthias Kretz <kretz@kde.org>
6681
6682 * doc/xml/manual/status_cxx2017.xml: Add implementation status
6683 of the Parallelism TS 2. Document implementation-defined types
6684 and behavior.
6685 * include/Makefile.am: Add new headers.
6686 * include/Makefile.in: Regenerate.
6687 * include/experimental/simd: New file. New header for
6688 Parallelism TS 2.
6689 * include/experimental/bits/numeric_traits.h: New file.
6690 Implementation of P1841R1 using internal naming. Addition of
6691 missing IEC559 functionality query.
6692 * include/experimental/bits/simd.h: New file. Definition of the
6693 public simd interfaces and general implementation helpers.
6694 * include/experimental/bits/simd_builtin.h: New file.
6695 Implementation of the _VecBuiltin simd_abi.
6696 * include/experimental/bits/simd_converter.h: New file. Generic
6697 simd conversions.
6698 * include/experimental/bits/simd_detail.h: New file. Internal
6699 macros for the simd implementation.
6700 * include/experimental/bits/simd_fixed_size.h: New file. Simd
6701 fixed_size ABI specific implementations.
6702 * include/experimental/bits/simd_math.h: New file. Math
6703 overloads for simd.
6704 * include/experimental/bits/simd_neon.h: New file. Simd NEON
6705 specific implementations.
6706 * include/experimental/bits/simd_ppc.h: New file. Implement bit
6707 shifts to avoid invalid results for integral types smaller than
6708 int.
6709 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
6710 ABI specific implementations.
6711 * include/experimental/bits/simd_x86.h: New file. Simd x86
6712 specific implementations.
6713 * include/experimental/bits/simd_x86_conversions.h: New file.
6714 x86 specific conversion optimizations. The conversion patterns
6715 work around missing conversion patterns in the compiler and
6716 should be removed as soon as PR85048 is resolved.
6717 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
6718 Test that all (not all fixed_size<N>, though) standard simd and
6719 simd_mask types are usable.
6720 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
6721 file. As above but with -ffast-math.
6722 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
6723 from the standard test loop. Instead use
6724 check_vect_support_and_set_flags to build simd tests with the
6725 relevant machine flags.
6726
6727 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
6728
6729 PR libstdc++/66414
6730 * include/bits/string_view.tcc
6731 (basic_string_view::find(const CharT*, size_type, size_type)):
6732 Optimize.
6733
6734 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
6735
6736 * include/bits/basic_string.h (basic_string::contains): New
6737 member functions.
6738 * include/std/string_view (basic_string_view::contains):
6739 Likewise.
6740 * include/std/version (__cpp_lib_string_contains): Define.
6741 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
6742 Remove trailing whitespace.
6743 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
6744 Likewise.
6745 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
6746 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
6747 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
6748 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
6749 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
6750
6751 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
6752
6753 * src/c++17/Makefile.in: Regenerate.
6754
6755 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
6756
6757 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
6758 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
6759 __lc_type.
6760 (const char* ctype<char>:: is): Same.
6761
6762 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
6763
6764 PR libstdc++/98725
6765 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
6766 write to a wide character stream if wide character support is
6767 disabled in the library.
6768
6769 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
6770
6771 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
6772 stringbuf not wstringbuf.
6773
6774 2021-01-18 Jakub Jelinek <jakub@redhat.com>
6775
6776 PR debug/98708
6777 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
6778 Compile with -gno-as-loc-support.
6779 * src/c++11/Makefile.in: Regenerated.
6780
6781 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
6782
6783 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
6784 Add -fcf-protection=none to -march=i486.
6785
6786 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
6787
6788 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
6789 compliant.
6790
6791 2021-01-14 Alexandre Oliva <oliva@adacore.com>
6792
6793 * testsuite/30_threads/future/members/poll.cc: Calibrate
6794 iteration count.
6795
6796 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
6797
6798 PR libstdc++/98466
6799 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
6800 (_Node_iterator()): Make default.
6801 (_Node_const_iterator()): Make default.
6802 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
6803 iterator checks.
6804 * include/debug/safe_iterator.h
6805 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
6806 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
6807 Likewise.
6808 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
6809 _M_singular checks on input iterators.
6810 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
6811 checks.
6812 * testsuite/23_containers/deque/debug/98466.cc: New test.
6813 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
6814
6815 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
6816
6817 PR libstdc++/98471
6818 * include/bits/fs_path.h (__throw_conversion_error): New
6819 function to throw or abort on character conversion errors.
6820 (__wstr_from_utf8): Move definition after filesystem_error has
6821 been defined. Use __throw_conversion_error.
6822 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
6823 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
6824 (path::u8string): Likewise.
6825
6826 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
6827
6828 * include/std/barrier: Update copyright years. Fix whitespace.
6829 * include/std/version: Fix whitespace.
6830 * testsuite/30_threads/barrier/1.cc: Update copyright years.
6831 * testsuite/30_threads/barrier/2.cc: Likewise.
6832 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6833 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6834 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6835 * testsuite/30_threads/barrier/completion.cc: Likewise.
6836
6837 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
6838
6839 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
6840
6841 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
6842
6843 PR libstdc++/98613
6844 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
6845 warning.
6846 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
6847
6848 2021-01-08 Olivier Hainque <hainque@adacore.com>
6849
6850 * testsuite/20_util/bind/ref_neg.cc: Tweak the
6851 dg-prune-output regex for out-of-build-tree contexts.
6852
6853 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
6854
6855 * doc/doxygen/user.cfg.in: Add new header.
6856 * include/Makefile.am (std_headers): likewise.
6857 * include/Makefile.in: Regenerate.
6858 * include/precompiled/stdc++.h: Add new header.
6859 * include/std/barrier: New file.
6860 * include/std/version: Add __cpp_lib_barrier feature test macro.
6861 * testsuite/30_threads/barrier/1.cc: New test.
6862 * testsuite/30_threads/barrier/2.cc: Likewise.
6863 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
6864 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
6865 * testsuite/30_threads/barrier/arrive.cc: Likewise.
6866 * testsuite/30_threads/barrier/completion.cc: Likewise.
6867
6868 2021-01-07 Patrick Palka <ppalka@redhat.com>
6869
6870 PR libstdc++/98384
6871 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
6872 instead of the non-standard nextupl and nextdownl.
6873
6874 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
6875
6876 * configure: Re-generate.
6877
6878 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
6879
6880 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
6881
6882 2021-01-01 Jakub Jelinek <jakub@redhat.com>
6883
6884 * ChangeLog-2020: Rotate ChangeLog. New file.
6885
6886 \f
6887 Copyright (C) 2021 Free Software Foundation, Inc.
6888
6889 Copying and distribution of this file, with or without modification,
6890 are permitted in any medium without royalty provided the copyright
6891 notice and this notice are preserved.