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