1 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
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.
10 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
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.
20 2021-09-17 Jonathan Wakely <jwakely@redhat.com>
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.
27 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
29 * src/Makefile.am (stamp-debug): Add all Makefiles as
31 * src/Makefile.in: Regenerate.
33 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
35 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase
37 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise.
39 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
41 * doc/xml/manual/using.xml: Generalize to apply to more than
43 * doc/html/manual/using_macros.html: Regenerate.
45 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
47 * include/std/optional (nullptr_t): Make constructor noexcept.
49 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
51 * include/bits/fs_path.h (advance): Remove non-deducible
54 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
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.
62 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
65 * include/std/span (span(Range&&)): Add constraint to deduction
68 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
70 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE.
71 * src/c++98/Makefile.in: Regenerate.
73 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
75 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
76 (to_string): Add noexcept if the type width is 32 bits or less.
78 2021-09-16 Jonathan Wakely <jwakely@redhat.com>
80 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr)
81 (__uniq_ptr_impl::_M_deleter): Add noexcept.
83 2021-09-16 Thomas Rodgers <rodgert@twrodgers.com>
86 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use
87 va and vb as arguments to wait/notify, remove unused bb local.
89 2021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr>
91 * crossconfig.m4: Check for TLS support on mingw.
92 * configure: Regenerate.
94 2021-09-13 Jason Merrill <jason@redhat.com>
96 * include/std/version: Define __cpp_lib_hardware_interference_size.
97 * libsupc++/new: Define hardware interference size variables.
99 2021-09-10 Jonathan Wakely <jwakely@redhat.com>
101 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
102 Fix invalid hostname to only match the .invalid TLD.
104 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
106 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak):
108 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use
111 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
113 * include/std/atomic: Tweak whitespace.
115 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
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.
131 2021-09-02 Jonathan Wakely <jwakely@redhat.com>
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.
139 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
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.
147 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
149 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK.
150 * configure: Regenerate.
152 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
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.
160 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
163 * include/bits/atomic_timed_wait.h (__timed_waiter_pool)
164 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return.
166 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
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.
173 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
175 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
176 Try other service if "http" fails.
178 2021-08-31 Jonathan Wakely <jwakely@redhat.com>
180 * testsuite/17_intro/names.cc: Undefine some more names used
181 by Solaris system headers.
183 2021-08-30 Jason Merrill <jason@redhat.com>
186 * testsuite/30_threads/promise/requirements/lwg3466.cc:
187 Remove dg-prune-outputs.
189 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
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
195 (allocator<void>::construct, allocator<void>::destroy): Remove.
196 * include/ext/extptr_allocator.h (_Extptr_allocator<void>):
197 Add default constructor and converting constructor.
199 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
201 * include/bits/stl_uninitialized.h: Fix typo in comment.
203 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
206 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form,
207 to avoid unnecessary current_path() call.
209 2021-08-28 Jonathan Wakely <jwakely@redhat.com>
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.
215 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
217 * include/bits/std_function.h (function): Adjust doxygen
219 * include/bits/unique_ptr.h (make_unique_for_overwrite):
220 Change parameter name to match doxygen comment.
222 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
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
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.
237 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
239 * include/bits/std_function.h (function::function(F)): Add
240 static assertions to check constructibility requirements.
242 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
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.
257 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
259 * testsuite/17_intro/names.cc: Check 'sz'.
261 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
263 * testsuite/17_intro/names.cc: Adjust for Windows.
265 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
267 * include/std/valarray: Uglify 'func' parameters.
268 * testsuite/17_intro/names.cc: Add 'func' to checks.
270 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
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):
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:
285 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
287 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
289 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
292 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
295 * include/ext/rope (rope::erase(size_type)): Remove broken
298 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
300 * doc/xml/manual/status_cxx2020.xml: Update table.
301 * doc/html/manual/status.html: Regenerate.
303 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
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:
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:
314 * testsuite/23_containers/span/layout_compat.cc: Do not use real
315 std::is_layout_compatible trait if available.
317 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
319 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
320 explicit instantiation definitions.
322 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
324 * include/std/ranges (basic_istream_view): Add default template
326 * testsuite/std/ranges/istream_view.cc: Check it.
328 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
330 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
333 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
336 * testsuite/util/testsuite_fs.h (permissions_are_testable):
339 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
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:
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:
353 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
355 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
357 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
359 * testsuite/experimental/filesystem/operations/exists.cc:
361 * testsuite/experimental/filesystem/operations/is_empty.cc:
363 * testsuite/experimental/filesystem/operations/remove.cc:
365 * testsuite/experimental/filesystem/operations/remove_all.cc:
367 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
369 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
370 New function to guess whether testing permissions will work.
372 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
374 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
375 * doc/html/manual/status.html: Regenerate.
377 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
379 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
381 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
384 * include/std/charconv (__to_chars_i): Remove redundant check.
386 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
389 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
390 class' move constructor. Define as defaulted for versioned
392 * testsuite/20_util/tuple/cons/101960.cc: New test.
394 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
397 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
398 * doc/html/manual/status.html: Regenerate.
400 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
402 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
403 * include/bits/unique_ptr.h: Add @headerfile tags.
405 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
407 * src/filesystem/ops-common.h (filesystem::file_time): Improve
408 overflow check by using system_clock::duration::max().
410 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
412 * include/bits/stl_tree.h: Tweak whitespace.
414 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
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
423 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
425 * include/bits/stl_function.h: Improve doxygen comments.
427 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
429 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
430 processing for C++20 components and components that depend on
432 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
433 * include/std/type_traits: Improve doxygen comments for C++20
436 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
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.
443 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
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.
453 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
455 * include/debug/deque (deque(size_type, const T&, const A&)):
456 Prevent class template argument deduction and replace with a
458 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
460 * include/debug/list (list(size_type, const T&, const A&)):
462 * include/debug/vector (vector(size_type, const T&, const A&)):
465 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
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.
476 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
478 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
481 2021-08-17 Luc Michel <lmichel@kalray.eu>
482 Marc Poulhies <mpoulhies@kalrayinc.com>
484 * testsuite/lib/gdb-test.exp (gdb_version_check)
485 (gdb_version_check_xmethods): Only check the GDB version for
486 local native targets.
488 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
489 Jonathan Wakely <jwakely@redhat.com>
491 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
493 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
496 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
498 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
499 construction from input iterators.
501 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
503 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
505 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
508 * include/bits/std_function.h (function(function&&)): Check for
509 non-empty parameter before doing any work.
511 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
513 * include/bits/cow_string.h (basic_string::contains): Do not
514 define for -std=gnu++20.
516 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
518 * include/bits/ranges_util.h (__not_same_as): Rename to
520 * include/std/ranges (__not_same_as): Likewise.
522 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
524 * include/std/utility (exchange): Add noexcept-specifier.
525 * testsuite/20_util/exchange/noexcept.cc: New test.
527 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
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.
534 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
537 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
539 (print_word): Use qualified-id to access it.
541 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
543 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
544 Install another copy of the GDB hook.
545 * python/Makefile.in: Regenerate.
547 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
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.
558 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
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.
564 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
566 * include/experimental/random (experimental::randint): Add
569 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
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.
575 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
578 * testsuite/experimental/random/randint.cc: Loop and retry if
579 reseed() produces the same sequence.
581 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
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):
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.
593 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
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
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>.
607 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
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.
614 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
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:
621 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
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.
634 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
636 * testsuite/std/ranges/iota/max_size_type.cc: Set
637 dg-timeout-factor to 4.
639 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
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.
646 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
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.
666 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
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
674 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
675 -Wno-unused-result to options.
677 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
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
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.
693 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
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
711 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
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:
718 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
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
724 * testsuite/23_containers/deque/debug/invalidation/4.cc:
726 * testsuite/23_containers/deque/types/1.cc: Use
728 * testsuite/23_containers/list/types/1.cc: Cast result to void.
729 * testsuite/23_containers/priority_queue/members/7161.cc:
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:
735 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
737 * testsuite/23_containers/vector/types/1.cc: Use
740 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
742 * include/bits/iterator_concepts.h (iter_move): Add
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):
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:
769 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
770 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
772 * testsuite/21_strings/basic_string/range_access/char/1.cc:
774 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
776 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
778 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
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:
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:
791 * testsuite/23_containers/unordered_multimap/range_access.cc:
793 * testsuite/23_containers/unordered_multiset/range_access.cc:
795 * testsuite/23_containers/unordered_set/range_access.cc:
797 * testsuite/23_containers/vector/range_access.cc: Likewise.
798 * testsuite/24_iterators/customization_points/iter_move.cc:
800 * testsuite/24_iterators/istream_iterator/sentinel.cc:
802 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
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:
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:
814 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
816 * testsuite/ext/vstring/range_access.cc: Likewise.
817 * testsuite/std/ranges/adaptors/take.cc: Likewise.
818 * testsuite/std/ranges/p2259.cc: Likewise.
820 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
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
830 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
832 * testsuite/util/testsuite_common_types.h: Replace uses of
833 tr1::unordered_map and tr1::unordered_set with their C++11
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:
840 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
842 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
844 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
846 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
849 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
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
856 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
858 * testsuite/20_util/function_objects/binders/3113.cc: Remove
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:
864 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
865 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
867 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
869 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
872 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
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
880 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
881 for C++11 and C++14 changes to std::random_shuffle and
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:
889 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
892 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
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:
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:
911 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
913 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
916 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
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
923 * include/std/regex: Replace standard headers with smaller
925 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
926 <string.h> for strlen.
927 * testsuite/28_regex/traits/char/lookup_collatename.cc:
930 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
932 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
934 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
935 instead of unique_ptr.
937 2021-08-02 Patrick Palka <ppalka@redhat.com>
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
947 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
948 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
950 2021-08-02 Patrick Palka <ppalka@redhat.com>
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.
961 2021-08-02 Patrick Palka <ppalka@redhat.com>
964 * include/std/ranges (join_view::_Iterator::_Iterator): Add
967 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
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.
976 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
978 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
979 Add dg-error for c++11_only target.
981 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
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.
997 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
999 * src/c++17/memory_resource.cc: Use __exchange instead
1002 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
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.
1011 2021-07-27 Marek Polacek <polacek@redhat.com>
1015 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
1017 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
1020 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1022 * include/bits/cow_string.h: Consistently use tab for
1025 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
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
1032 * include/bits/basic_string.tcc: Likewise.
1033 * include/bits/cow_string.h: New file.
1035 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
1037 * include/std/algorithm: Do not include <utility>.
1038 * include/std/functional: Likewise.
1039 * include/std/regex: Include <bits/stl_pair.h> instead of
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
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:
1062 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1064 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
1066 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
1067 Adjust dg-error line number.
1069 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
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
1076 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
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
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
1095 * testsuite/20_util/optional/84601.cc: Include <utility>.
1096 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
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.
1105 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
1107 * include/std/future: Include <bits/atomic_base.h> instead of
1110 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
1112 * include/bits/stl_relops.h: Update documentation comments.
1114 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
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:
1125 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
1127 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
1129 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
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.
1136 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
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.
1144 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
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.
1150 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
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.
1158 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
1161 * include/ext/rope (sequence_buffer): Add move constructor and
1162 move assignment operator.
1163 * testsuite/ext/rope/101542.cc: New test.
1165 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
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.
1180 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
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.
1188 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
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
1195 * testsuite/experimental/filesystem/operations/create_directory.cc:
1198 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1200 * include/std/tuple (get<I>): Add deleted overload for bad
1202 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1205 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1207 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
1208 Use __int_traits unconditionally.
1210 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1212 * include/bits/random.h (_Shift::__value): Use constexpr.
1213 (_Select_uint_least_t::type): Use using-declaration.
1215 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1218 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
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):
1231 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
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.
1240 2021-07-16 Patrick Palka <ppalka@redhat.com>
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.
1247 2021-07-16 Patrick Palka <ppalka@redhat.com>
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.
1256 2021-07-16 Marek Polacek <polacek@redhat.com>
1258 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
1261 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1263 * include/bits/unique_ptr.h: Adjust doxygen markup.
1265 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1268 * include/std/type_traits: Adjust doxygen markup.
1270 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
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.
1283 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
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
1294 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1296 * testsuite/20_util/tuple/element_access/101427.cc: New test.
1298 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
1301 * include/bits/c++config (__replacement_assert): Add noexcept.
1302 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
1303 instead of __replacement_assert.
1305 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
1307 * include/std/string_view (basic_string_view(It, End)): Add
1309 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
1310 Check noexcept-specifier. Also check construction without CTAD.
1312 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
1315 * include/std/string_view (ends_with): Use traits_type::compare
1318 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
1320 * include/std/string_view: Only include <bits/ranges_base.h>
1321 once, and only for C++20 and later.
1323 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
1326 * include/std/span (as_writable_bytes): Add requires-clause.
1327 * testsuite/23_containers/span/101411.cc: New test.
1329 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
1331 * include/std/mutex (__lock_impl): Check
1332 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
1334 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
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
1343 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
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.
1359 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
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
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
1387 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1390 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
1392 * include/experimental/simd: Do not define anything pre-C++17.
1394 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
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
1401 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
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.
1408 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1411 * testsuite/17_intro/names.cc: Fix #if condition for names used
1414 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
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.
1425 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
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
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.
1434 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
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
1443 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
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
1450 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
1452 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
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:
1458 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
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
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:
1468 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
1470 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
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.
1477 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1479 * include/std/syncstream (basic_syncbuf::swap()): Remove
1480 noexcept, as per LWG 3498.
1482 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
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.
1489 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
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.
1505 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
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
1512 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
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
1519 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
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
1525 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
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.
1532 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1534 * include/experimental/bits/simd_math.h: Undefine internal
1536 (frexp): Move #if to a more sensible position and reformat
1538 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
1539 duplicating the code here.
1540 (modf): Simplify condition.
1542 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1544 * include/experimental/bits/simd_math.h (fabs): Remove
1545 fabs(simd<integral>) overload.
1547 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
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.
1556 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1558 * include/experimental/bits/simd_fixed_size.h
1559 (_AbisInSimdTuple): Removed.
1561 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
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.
1575 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
1577 * testsuite/experimental/simd/README.md: Fix typos.
1579 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
1581 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
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.
1591 2021-06-23 Patrick Palka <ppalka@redhat.com>
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.
1598 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
1600 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
1603 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1605 * testsuite/experimental/simd/README.md: New file.
1607 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
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
1617 * testsuite/experimental/simd/generate_makefile.sh: Initialize
1618 helper files for progress account keeping. Update help target
1619 for changes to DRIVEROPTS.
1621 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1623 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
1624 and associated warning.
1625 * testsuite/Makefile.in: Regenerate.
1627 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
1628 Jonathan Wakely <jwakely@redhat.com>
1629 Ulrich Drepper <drepper@redhat.com>
1631 * include/std/chrono (chrono::year::is_leap()): Optimize.
1633 2021-06-23 Patrick Palka <ppalka@redhat.com>
1636 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
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:
1646 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1648 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
1650 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
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.
1658 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1659 Matthias Kretz <m.kretz@gsi.de>
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
1671 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
1673 * testsuite/30_threads/try_lock/5.cc: New test.
1675 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
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.
1682 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1684 * include/bits/random.h (seed_seq): Constrain initializer-list
1686 * include/bits/random.tcc (seed_seq): Add template parameter.
1687 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
1689 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
1692 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
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.
1699 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
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.
1710 2021-06-21 Patrick Palka <ppalka@redhat.com>
1712 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1714 2021-06-20 Patrick Palka <ppalka@redhat.com>
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):
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.
1727 2021-06-20 Patrick Palka <ppalka@redhat.com>
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.
1735 2021-06-20 Patrick Palka <ppalka@redhat.com>
1737 * include/std/ranges (split_view::_OuterIter::__at_end):
1738 Check _M_trailing_empty.
1739 (split_view::_OuterIter::_M_trailing_empty): Define this
1741 (split_view::_OuterIter::operator++): Set _M_trailing_empty
1743 (split_view::_OuterIter::operator==): Compare
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.
1749 2021-06-20 Patrick Palka <ppalka@redhat.com>
1751 * include/std/ranges (split_view::_InnerIter::base): Define as
1754 2021-06-19 Patrick Palka <ppalka@redhat.com>
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.
1760 2021-06-19 Patrick Palka <ppalka@redhat.com>
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.
1766 2021-06-19 Patrick Palka <ppalka@redhat.com>
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.
1774 2021-06-18 Patrick Palka <ppalka@redhat.com>
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):
1783 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
1786 2021-06-18 Patrick Palka <ppalka@redhat.com>
1788 * include/std/concepts (convertible_to): Just use declval as per
1791 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
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.
1799 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
1801 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
1802 diagnostic pragma to suppress -Wstringop-overread error.
1804 2021-06-18 Patrick Palka <ppalka@redhat.com>
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.
1816 2021-06-18 Patrick Palka <ppalka@redhat.com>
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
1823 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
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
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
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:
1881 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
1882 (test02): Adjust now that __box is copyable-box not
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.
1890 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
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):
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.
1903 2021-06-17 Patrick Palka <ppalka@redhat.com>
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.
1911 2021-06-17 Patrick Palka <ppalka@redhat.com>
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.
1929 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
1931 * include/bits/iterator_concepts.h (__decay_copy): Name type.
1933 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
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:
1944 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
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.
1962 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
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):
1971 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
1972 ill-formed & expressions with using-declarations. Add checks for
1973 other function objects.
1975 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
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
1982 (views::single, views::all): Add noexcept.
1983 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
1984 * testsuite/std/ranges/single_view.cc: Likewise.
1986 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
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.
1993 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
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.
2005 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
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
2012 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
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.
2019 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2021 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2022 Add dg-require-filesystem-ts directive.
2024 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2027 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
2028 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
2030 * testsuite/20_util/any/cons/101034.cc: New test.
2032 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
2034 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
2035 -std=gnu++17 option.
2037 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
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.
2045 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
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.
2055 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
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:
2063 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
2066 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
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
2076 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2079 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
2081 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
2082 test logic with constexpr check for is_always_lock_free.
2084 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
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.
2091 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
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):
2098 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
2099 dg-warning for deprecation. Also check std::allocator<void>.
2101 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
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.
2109 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
2111 * include/std/barrier (__tree_barrier::_M_arrive): Remove
2112 unnecessary hasher instantiation.
2114 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
2116 * include/experimental/propagate_const (swap): Constrain.
2117 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
2119 2021-06-07 Avi Kivity <avi@scylladb.com>
2122 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
2123 Add missing typename.
2125 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
2128 * include/std/optional (operator<=>(const optional<T>& const U&)):
2129 Add missing constraint and add workaround for template
2131 * testsuite/20_util/optional/relops/three_way.cc: Check that
2132 type without equality comparison cannot be compared when wrapped
2135 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
2138 * include/bits/ranges_base.h (_SSize): Return signed type.
2139 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
2141 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
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
2150 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2153 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
2154 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
2156 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
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
2169 (__member_size, __adl_size, __member_empty, __size0_empty):
2170 (__eq_iter_empty, __adl_data): Use lvalue objects in
2172 (__sentinel_size): Likewise. Add check for conversion to
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
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.
2186 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
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
2193 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
2195 * doc/xml/manual/status_cxx2020.xml:
2196 * doc/html/*: Regenerate.
2197 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
2199 * include/std/version (__cpp_lib_generic_unordered_lookup):
2201 * testsuite/23_containers/unordered_map/operations/1.cc: Check
2203 * testsuite/23_containers/unordered_set/operations/1.cc:
2206 2021-06-03 Patrick Palka <ppalka@redhat.com>
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
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.
2217 2021-06-03 Patrick Palka <ppalka@redhat.com>
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.
2243 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2247 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
2248 Value-initialize subobject.
2249 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
2251 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
2254 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2257 * testsuite/23_containers/unordered_map/96088.cc: Adjust
2258 expected number of allocations.
2259 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2261 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
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.
2268 2021-06-01 Patrick Palka <ppalka@redhat.com>
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:
2280 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2282 * testsuite/23_containers/unordered_map/96088.cc: Change
2283 effective target to c++17.
2284 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2286 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2288 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
2289 isblank for C++11 and later.
2291 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
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.
2299 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2302 * python/Makefile.am: Use archive name for printer hook if no
2303 dynamic library name is available.
2304 * python/Makefile.in: Regenerate.
2306 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
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.
2312 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
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.
2338 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
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.
2350 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
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&)):
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.
2374 2021-05-24 Patrick Palka <ppalka@redhat.com>
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.
2390 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
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:
2397 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
2400 2021-05-21 Patrick Palka <ppalka@redhat.com>
2403 * include/std/ranges (drop_while_view::begin): Assert the
2404 precondition added by LWG 3490.
2406 2021-05-21 Patrick Palka <ppalka@redhat.com>
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
2413 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
2415 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
2417 * include/bits/random.tcc (__representable_as_double)
2418 (__p1_representable_as_double): Add "" to static asserts.
2420 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
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:
2435 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
2438 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
2440 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
2442 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
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.
2448 2021-05-20 Patrick Palka <ppalka@redhat.com>
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.
2458 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
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
2466 * testsuite/20_util/to_chars/float.cc: Likewise.
2467 * testsuite/20_util/to_chars/long_double.cc: Likewise.
2469 2021-05-18 Patrick Palka <ppalka@redhat.com>
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.
2476 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
2478 * testsuite/lib/prune.exp: Add note about 'dg-note'.
2480 2021-05-18 Patrick Palka <ppalka@redhat.com>
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
2489 * testsuite/std/ranges/single_view.cc (test04): New test.
2491 2021-05-18 Patrick Palka <ppalka@redhat.com>
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.
2498 2021-05-18 Patrick Palka <ppalka@redhat.com>
2501 * include/std/ranges (elements_view::_Iterator): Also befriend
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):
2510 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
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
2523 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
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:
2532 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
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.
2539 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
2541 * include/std/thread (jthread::_S_create): Fix static assert
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.
2549 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
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
2555 * scripts/run_doxygen (print_usage): Always print to stdout and
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.
2561 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
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
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
2572 2021-05-11 Patrick Palka <ppalka@redhat.com>
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.
2579 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
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
2585 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
2588 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
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.
2605 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2607 * include/std/stop_token: Remove TODO comment.
2609 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2611 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
2612 Initialize a non-reference deleter from an rvalue, as per LWG
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
2619 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
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:
2625 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
2627 * testsuite/17_intro/headers/c++2017/operator_names.cc:
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:
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:
2646 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
2648 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
2649 * testsuite/20_util/addressof/requirements/constexpr.cc:
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:
2658 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2660 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
2661 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
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:
2674 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
2676 * testsuite/20_util/has_unique_object_representations/value.cc:
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:
2683 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
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:
2690 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
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:
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:
2702 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2704 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2705 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
2707 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2709 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
2711 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
2713 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
2715 * testsuite/20_util/is_swappable/value.cc: Likewise.
2716 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
2718 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
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:
2724 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
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:
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:
2737 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
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:
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:
2761 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
2763 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
2765 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
2767 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
2768 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
2770 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
2771 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
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:
2778 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
2780 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
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.
2787 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
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:
2793 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2795 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
2797 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
2799 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
2801 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
2803 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
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:
2810 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
2812 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
2813 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
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.
2828 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
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:
2835 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
2837 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
2839 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
2840 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
2842 * testsuite/23_containers/forward_list/cons/deduction.cc:
2844 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
2846 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
2847 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
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:
2853 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
2855 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
2856 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
2858 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
2859 * testsuite/23_containers/multimap/modifiers/extract.cc:
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:
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:
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:
2877 * testsuite/23_containers/unordered_map/cons/deduction.cc:
2879 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
2881 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
2883 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
2885 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
2887 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
2889 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
2891 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
2893 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
2895 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
2897 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
2899 * testsuite/23_containers/unordered_set/cons/deduction.cc:
2901 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
2903 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
2905 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
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:
2912 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
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:
2919 * testsuite/21_strings/basic_string/cons/char/86138.cc:
2921 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
2922 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
2924 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
2926 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2927 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
2929 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
2931 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
2932 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2934 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
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:
2941 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2943 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2945 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2947 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2949 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2951 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2953 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2955 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2957 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2959 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
2961 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
2963 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
2965 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2967 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2969 * testsuite/21_strings/basic_string/operators/char/5.cc:
2971 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
2973 * testsuite/21_strings/basic_string_view/capacity/1.cc:
2975 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
2977 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
2979 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
2981 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
2983 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2985 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
2987 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
2989 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
2991 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2993 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2995 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2997 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
2999 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
3001 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
3003 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
3005 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
3007 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
3009 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
3011 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3013 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
3015 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
3017 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
3019 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
3021 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
3023 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
3025 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
3027 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
3028 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
3030 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
3032 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
3034 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
3036 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
3038 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
3040 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
3042 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
3044 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
3046 * testsuite/21_strings/basic_string_view/literals/types.cc:
3048 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
3050 * testsuite/21_strings/basic_string_view/literals/values.cc:
3052 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
3054 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
3056 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
3058 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
3060 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
3062 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
3064 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
3066 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
3068 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
3070 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
3072 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
3074 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
3076 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
3078 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
3080 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
3082 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
3084 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
3086 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
3088 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
3090 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
3092 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
3094 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
3096 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
3098 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
3100 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
3102 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
3104 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
3106 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
3108 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
3110 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
3112 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
3114 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
3116 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
3118 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
3120 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
3122 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
3124 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
3126 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3128 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
3130 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3132 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
3134 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
3136 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
3138 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
3140 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
3142 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3144 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3146 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3148 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3150 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3152 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3154 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
3156 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3158 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
3160 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
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:
3166 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
3168 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
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:
3176 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
3178 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
3180 * testsuite/20_util/monotonic_buffer_resource/release.cc:
3182 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
3184 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
3185 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
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:
3191 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
3193 * testsuite/20_util/synchronized_pool_resource/cons.cc:
3195 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
3197 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
3199 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
3201 * testsuite/20_util/synchronized_pool_resource/options.cc:
3203 * testsuite/20_util/synchronized_pool_resource/release.cc:
3205 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
3207 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
3209 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
3211 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
3213 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
3215 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
3217 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
3219 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3221 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3222 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
3224 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3226 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
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:
3235 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3236 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
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:
3242 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
3244 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3246 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
3248 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3250 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
3252 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3254 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
3256 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3257 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
3259 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3261 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3263 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
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:
3274 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
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:
3280 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
3281 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
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.
3288 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
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:
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:
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.
3392 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
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:
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:
3412 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
3413 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
3415 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
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:
3424 * testsuite/27_io/filesystem/operations/create_directory.cc:
3426 * testsuite/27_io/filesystem/operations/create_symlink.cc:
3428 * testsuite/27_io/filesystem/operations/current_path.cc:
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:
3436 * testsuite/27_io/filesystem/operations/permissions.cc:
3438 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
3439 * testsuite/27_io/filesystem/operations/read_symlink.cc:
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:
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:
3451 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3453 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
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:
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:
3478 * testsuite/27_io/filesystem/path/decompose/extension.cc:
3480 * testsuite/27_io/filesystem/path/decompose/filename.cc:
3482 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
3484 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
3486 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
3488 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
3490 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
3492 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
3493 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
3495 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
3496 * testsuite/27_io/filesystem/path/generation/normal.cc:
3498 * testsuite/27_io/filesystem/path/generation/normal2.cc:
3500 * testsuite/27_io/filesystem/path/generation/proximate.cc:
3502 * testsuite/27_io/filesystem/path/generation/relative.cc:
3504 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
3505 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
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:
3515 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
3517 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
3519 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
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:
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:
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:
3534 * testsuite/27_io/filesystem/path/query/has_filename.cc:
3536 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
3538 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
3540 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
3542 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
3544 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
3546 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
3547 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
3549 * testsuite/27_io/filesystem/path/query/is_relative.cc:
3551 * testsuite/experimental/filesystem/path/construct/string_view.cc:
3554 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
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:
3560 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
3562 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
3564 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
3565 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
3567 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
3569 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
3571 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
3573 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
3575 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
3577 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
3579 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
3581 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
3583 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
3585 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
3587 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
3589 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
3591 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
3593 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
3595 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
3597 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
3599 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
3601 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
3603 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
3605 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
3607 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
3609 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
3611 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
3613 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3615 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
3617 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
3619 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
3621 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
3623 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
3625 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
3627 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
3629 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
3631 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3633 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
3635 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
3636 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
3638 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
3640 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
3642 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
3644 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
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:
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:
3659 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
3662 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
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:
3668 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3669 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3671 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3673 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
3674 clash with std::any.
3676 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
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:
3688 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
3690 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
3692 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
3694 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
3697 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
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.
3704 2021-05-06 Patrick Palka <ppalka@redhat.com>
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.
3712 2021-05-06 Patrick Palka <ppalka@redhat.com>
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().
3722 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3724 * include/std/type_traits (remove_cvref_t): Define in terms of
3726 * testsuite/20_util/remove_cvref/value.cc: Check alias.
3728 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3731 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3733 * include/std/charconv (__from_chars_alnum): Pass unsigned
3734 char to std::isdigit.
3736 2021-05-05 Patrick Palka <ppalka@redhat.com>
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>):
3743 2021-05-05 Patrick Palka <ppalka@redhat.com>
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.
3750 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3752 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
3754 * testsuite/20_util/function_objects/invoke/version.cc: New test.
3756 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3758 * include/std/charconv (__from_chars_alnum): Pass unsigned
3759 char to std::isdigit.
3761 2021-05-05 Corentin Gay <gay@adacore.com>
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
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.
3775 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
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.
3790 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3792 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
3793 Do not do arithmetic on null pointer.
3795 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
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.
3802 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3804 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
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.
3813 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
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
3820 (__same_types): Move into namespace __detail::__variant.
3821 (__check_visitor_results): Likewise. Use __invoke_result_t and
3823 (__check_visitor_result): Remove.
3824 (visit): Use __visit_result_t for return type.
3825 * testsuite/20_util/variant/100384.cc: New test.
3827 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
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.
3838 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
3840 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
3841 * doc/html/manual/facets.html: Regenerate.
3843 2021-04-30 Patrick Palka <ppalka@redhat.com>
3845 * include/std/ranges (__detail::__non_propating_cache): Define
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>.
3856 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
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>.
3863 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
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.
3874 2021-04-30 Patrick Palka <ppalka@redhat.com>
3876 * include/std/ranges (split_view::_InnerIter::operator++):
3877 Depend on _Base instead of _Vp directly, as per LWG 3532.
3879 2021-04-30 Patrick Palka <ppalka@redhat.com>
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
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
3897 (__detail::__can_split_view, _Split::operator()): Avoid
3898 list-initialization.
3899 (_Counted::operator()): Likewise.
3900 * testsuite/std/ranges/p2367.cc: New test.
3902 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3905 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
3907 * include/bits/basic_string.tcc (basic_string::swap)
3908 (basic_string::assign): Likewise.
3909 * include/bits/deque.tcc (deque::operator=(const deque&)):
3911 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
3913 * include/bits/vector.tcc (vector::operator=(const vector&)):
3916 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3918 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
3920 * include/std/ostream (operator<<(Ostream&&, const x&)):
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:
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:
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:
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.
3945 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
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>.
3954 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3959 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
3960 Use new effective-target keyword.
3961 * testsuite/experimental/net/internet/address/v4/cons.cc:
3963 * testsuite/experimental/net/internet/address/v4/creation.cc:
3965 * testsuite/experimental/net/internet/address/v4/members.cc:
3967 * testsuite/experimental/net/internet/address/v6/members.cc:
3969 * testsuite/experimental/net/internet/resolver/base.cc:
3971 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
3973 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
3975 * testsuite/experimental/net/internet/socket/opt.cc:
3977 * testsuite/experimental/net/internet/tcp.cc:
3979 * testsuite/experimental/net/internet/udp.cc:
3981 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
3982 New proc to check net_ts_ip et.
3984 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
3987 * testsuite/20_util/pair/requirements/structural.cc: New test.
3989 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
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
3996 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
3997 expected error messages to also match C++20 errors.
3999 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
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
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.
4014 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
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:
4022 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
4024 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4026 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
4027 dealing with errors. Use '@' to prevent shell command being
4029 * doc/Makefile.in: Regenerate.
4031 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
4034 * include/bits/std_thread.h (thread::hardware_concurrency): Add
4035 missing noexcept to inline definition for non-gthreads targets.
4037 2021-04-28 Patrick Palka <ppalka@redhat.com>
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
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.
4056 2021-04-27 Patrick Palka <ppalka@redhat.com>
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.
4064 2021-04-27 Jakub Jelinek <jakub@redhat.com>
4067 2021-04-22 Jakub Jelinek <jakub@redhat.com>
4070 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4072 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4075 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4077 * include/experimental/internet (address_v6::bytes_type): Adjust
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.
4089 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
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
4103 * testsuite/experimental/net/internet/socket/opt.cc: Check for
4104 <netinet/in.h> and <netinet/tcp.h> before using types from
4107 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
4110 * include/experimental/internet (resolver_base::flags):
4111 Define overloaded operators as hidden friends.
4112 * include/experimental/socket (socket_base::message_flags):
4115 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
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.
4130 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
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>
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.
4151 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
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.
4160 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
4162 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
4164 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
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'.
4171 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
4173 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
4174 (add_options_for_libatomic): Use atomic_link_flags.
4176 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
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.
4183 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
4185 * include/experimental/io_context (io_context::async_wait): Add
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.
4198 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
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
4204 (socket_base::message_flags): Make all operators constexpr and
4206 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
4208 * testsuite/experimental/net/socket/socket_base.cc: New test.
4210 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
4212 * config/os/aix/atomicity.h: Delete.
4214 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
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:
4222 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4224 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
4225 options for libatomic.
4227 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4229 * config/os/gnu-linux/os_defines.h: Fix type in comment.
4231 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
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.
4239 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
4241 * include/bits/atomic_wait.h: Always notify waiters in the
4242 case of 'bare' address notification.
4244 2021-04-22 Jakub Jelinek <jakub@redhat.com>
4247 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4249 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4252 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4255 * include/bits/semaphore_base.h: Remove #error.
4256 * include/std/semaphore: Do not define anything unless one of
4257 the implementations is available.
4259 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
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:
4266 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
4267 Jonathan Wakely <jwakely@redhat.com>
4270 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
4271 * python/Makefile.in: Regenerate.
4273 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
4275 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
4276 member to __platform_wait.
4278 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
4280 * include/std/latch: Replace tab characters in license text.
4281 * include/std/semaphore: Likewise.
4283 2021-04-21 Jakub Jelinek <jakub@redhat.com>
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.
4291 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
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.
4299 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
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
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.
4325 2021-04-20 Patrick Palka <ppalka@redhat.com>
4328 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
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
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
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.
4420 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
4423 * include/std/charconv (__cpp_lib_to_chars): Define
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.
4432 2021-04-20 Jakub Jelinek <jakub@redhat.com>
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.
4441 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
4443 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
4446 2021-04-17 Jakub Jelinek <jakub@redhat.com>
4448 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
4449 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
4451 2021-04-17 Jakub Jelinek <jakub@redhat.com>
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.
4460 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
4462 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
4463 add libatomic options for 32-bit sparc*-*-linux-gnu.
4465 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
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.
4474 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
4477 * include/std/bit: Only include <ext/numeric_traits.h> for
4478 hosted build, use <limits> otherwise.
4480 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
4482 * doc/xml/manual/backwards_compatibility.xml: Remove porting
4483 notes for libg++ and libstdc++-v2, and bibliography.
4484 * doc/html/*: Regenerated.
4486 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
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.
4496 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
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:
4503 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
4506 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
4507 standard headers and XFAIL for effective-target c++20.
4509 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
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,
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>&,
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>&,
4528 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
4529 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
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.
4540 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
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.
4547 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
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.
4555 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4557 * include/bits/basic_string.h: Tweak doxygen comment.
4559 2021-04-08 Patrick Palka <ppalka@redhat.com>
4561 * include/std/ranges (__detail::find): Define.
4562 (split_view::_OuterIter::operator++): Apply proposed resolution
4564 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
4566 2021-04-08 Patrick Palka <ppalka@redhat.com>
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.
4574 2021-04-08 Patrick Palka <ppalka@redhat.com>
4576 * include/std/ranges (__detail::__returnable_element): New
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
4583 (elements_view::operator++): Remove unnecessary constraint
4585 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
4587 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4589 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
4590 out-of-memory error in log file.
4591 * doc/Makefile.in: Regenerate.
4593 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4595 * configure: Regenerate.
4597 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4599 * include/bits/random.h: Fix doxygen group commands.
4600 * include/bits/regex_constants.h: Likewise.
4601 * include/tr1/random.h: Likewise.
4603 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4605 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
4606 New function to determine noexcept-specifier for move
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:
4613 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
4615 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
4618 2021-04-08 Patrick Palka <ppalka@redhat.com>
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.
4625 2021-04-08 Patrick Palka <ppalka@redhat.com>
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
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
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.
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):
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):
4692 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4694 * include/std/string_view: Adjust Doxygen @file comment.
4696 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
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.
4705 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
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.
4713 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
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.
4723 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
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.
4730 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
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
4741 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
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:
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.
4840 2021-03-31 Alexandre Oliva <oliva@adacore.com>
4842 * testsuite/30_threads/future/members/poll.cc: Use faster
4843 after-ready call in the calibration loop.
4845 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
4847 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
4848 * doc/html/manual/status.html: Regenerate.
4850 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
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.
4862 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
4864 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
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
4872 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
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:
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.
4888 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
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:
4913 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
4915 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
4917 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
4919 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
4921 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
4923 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
4925 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
4927 2021-03-25 Jakub Jelinek <jakub@redhat.com>
4930 * testsuite/18_support/source_location/consteval.cc (main): Adjust
4931 expected column numbers.
4932 * testsuite/18_support/source_location/1.cc (main): Likewise.
4934 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
4936 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
4938 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
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
4946 * testsuite/util/testsuite_containergen.h (test_containers):
4947 Support seeding random engine.
4949 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
4951 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
4952 line with a check that uses the const being/end overloads.
4954 2021-03-23 Moritz Sichert <sichert@in.tum.de>
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.
4962 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
4964 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
4965 Do not define when compiling with Clang.
4967 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
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.
4974 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
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:
4988 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
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.
4995 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
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:
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.
5010 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
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.
5025 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
5027 * testsuite/17_intro/names.cc: Exclude j from the list
5028 of test symbols for Darwin.
5030 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
5032 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
5033 to_chars and from_chars for long double.
5035 2021-03-15 Patrick Palka <ppalka@redhat.com>
5037 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
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.
5051 2021-03-15 Caroline Tice <cmtice@google.com>
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'
5058 * src/Makefile.in: Regenerate.
5060 2021-03-11 Patrick Palka <ppalka@redhat.com>
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
5071 2021-03-11 Patrick Palka <ppalka@redhat.com>
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.
5080 2021-03-11 Patrick Palka <ppalka@redhat.com>
5082 * src/c++17/ryu/LOCAL_PATCHES: New file.
5084 2021-03-11 Patrick Palka <ppalka@redhat.com>
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.
5096 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5098 * include/std/barrier (barrier::arrival_token): New move-only
5099 class that encapsulates the underlying token value.
5101 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5103 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
5104 instead of unqualified() method.
5106 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5109 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
5110 Use acq_rel memory ordering.
5112 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
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):
5119 * src/filesystem/dir-common.h (is_permission_denied_error): New
5122 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
5125 * include/bits/random.h (normal_distribution): Use
5126 default-initializer for _M_saved and _M_saved_available.
5128 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
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.
5144 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
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.
5164 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
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.
5178 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
5180 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
5181 C++20 calendar types.
5183 2021-03-06 Jakub Jelinek <jakub@redhat.com>
5186 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
5187 two _Nd which the compiler can pattern match the rotates.
5189 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
5192 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
5193 Make storage larger than required. Verify no write to the last
5195 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
5198 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5200 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5201 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5203 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5204 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5207 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5209 * include/experimental/bits/simd.h: Replace reserved _X, _B by
5211 * include/experimental/bits/simd_builtin.h: Likewise.
5212 * include/experimental/bits/simd_x86.h: Likewise.
5214 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
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.
5221 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5223 * include/std/chrono (year_month_day::_S_from_days): Perform
5224 all calculations with type uint32_t.
5226 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5228 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
5229 * doc/html/manual/abi.html: Regenerate.
5231 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5234 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
5235 FILE instead of FILE.
5237 2021-02-25 Andreas Schwab <schwab@suse.de>
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.
5244 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5247 * include/std/chrono (year_month_day::_S_from_days): Cast long
5250 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
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.
5257 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5260 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
5261 before value to be printed.
5263 2021-02-24 Patrick Palka <ppalka@redhat.com>
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.
5269 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5271 * include/std/chrono (year_month_day_last:day): New
5274 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5276 * include/std/chrono (year::is_leap): New implementation.
5277 * testsuite/std/time/year/2.cc: New test.
5279 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5281 * include/std/chrono (year_month_day::_M_days_since_epoch):
5283 * testsuite/std/time/year_month_day/4.cc: New test.
5285 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5287 * include/std/chrono (year_month_day::_S_from_days): New
5289 * testsuite/std/time/year_month_day/3.cc: New test.
5291 2021-02-24 Patrick Palka <ppalka@redhat.com>
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.
5302 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
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):
5322 (to_chars): Define overloads for __float128.
5324 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5326 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
5328 2021-02-23 Martin Sebor <msebor@redhat.com>
5331 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
5332 first argument is null.
5334 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5337 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
5340 2021-02-23 Jakub Jelinek <jakub@redhat.com>
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
5348 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5351 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
5353 2021-02-23 Patrick Palka <ppalka@redhat.com>
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.
5360 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
5362 * include/bits/atomic_wait.h (__thread_relax()): Call
5363 __thread_yield() not __gthread_yield().
5365 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
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.
5372 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
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.
5378 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
5381 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
5383 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5386 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
5388 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
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.
5402 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5404 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
5405 random number to the path.
5407 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5409 * include/experimental/internet (address_v6::to_string): Include
5411 * testsuite/experimental/net/internet/address/v6/members.cc:
5412 Test to_string() results.
5414 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
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
5422 * testsuite/experimental/net/internet/address/v4/members.cc:
5423 Remove unused variables.
5424 * testsuite/experimental/net/internet/address/v6/members.cc:
5427 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
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):
5434 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
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.
5441 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5443 * testsuite/util/testsuite_allocator.h (memory_resource):
5444 Remove requirement for RTTI and exceptions to be enabled.
5446 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
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:
5452 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
5454 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
5456 * testsuite/27_io/basic_stringstream/str/char/2.cc:
5458 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
5461 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5463 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
5464 as unused and only use dynamic_cast when RTTI is enabled.
5466 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
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
5474 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
5476 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
5478 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
5479 macro instead of _GLIBCXX_EH_PTR_COMPAT.
5480 (operator==): Likewise.
5482 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
5485 * doc/xml/manual/status_cxx2011.xml: Document when support
5487 * doc/xml/manual/status_cxx2014.xml: Likewise.
5488 * doc/xml/manual/status_cxx2017.xml: Likewise.
5489 * doc/html/manual/status.html: Regenerate.
5491 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5494 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
5496 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5498 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
5499 (fs::remove): Use std::system_category() for error codes from
5501 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
5504 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
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:
5511 * testsuite/27_io/filesystem/path/generation/relative.cc:
5513 * testsuite/util/testsuite_fs.h: Likewise.
5515 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
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.
5547 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
5549 * include/bits/stl_deque.h
5550 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
5551 a null pointer test.
5553 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
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:
5560 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
5563 * include/std/coroutine (coroutine_handle<P>::from_address): Add
5566 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
5568 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
5569 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
5571 2021-02-09 Jakub Jelinek <jakub@redhat.com>
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
5579 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
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:
5587 * testsuite/19_diagnostics/error_condition/operators/less.cc:
5589 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
5592 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
5594 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
5595 calls with a single vaddv for aarch64.
5597 2021-02-03 Matthias Kretz <kretz@kde.org>
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.
5604 2021-02-03 Matthias Kretz <kretz@kde.org>
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.
5616 2021-02-03 Matthias Kretz <kretz@kde.org>
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.
5626 2021-02-03 Matthias Kretz <kretz@kde.org>
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
5635 2021-02-03 Matthias Kretz <kretz@kde.org>
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
5642 2021-02-03 Matthias Kretz <kretz@kde.org>
5644 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
5645 markup for long double on powerpc64*.
5647 2021-02-03 Matthias Kretz <kretz@kde.org>
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
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.
5661 2021-02-03 Matthias Kretz <kretz@kde.org>
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.
5670 2021-02-03 Matthias Kretz <kretz@kde.org>
5672 * testsuite/Makefile.am: Ensure .simd.summary is empty before
5673 collecting a new summary.
5674 * testsuite/Makefile.in: Regenerate.
5676 2021-02-03 Matthias Kretz <kretz@kde.org>
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.
5682 2021-02-03 Matthias Kretz <kretz@kde.org>
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
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'
5698 2021-02-03 Matthias Kretz <kretz@kde.org>
5700 * include/experimental/bits/simd.h: Remove unnecessary static
5701 assertion. Allow sizeof(8) integer __intrinsic_type to enable
5702 the necessary mask type.
5704 2021-02-03 Matthias Kretz <kretz@kde.org>
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.
5710 2021-02-03 Matthias Kretz <kretz@kde.org>
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
5716 (__intrin_bitcast): Allow casting to & from vector & intrinsic
5718 (__intrinsic_type): Explicitly specialize for NEON intrinsic
5721 2021-02-03 Matthias Kretz <kretz@kde.org>
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:
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.
5768 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
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.
5775 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
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.
5783 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
5785 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
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.
5792 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
5794 * include/experimental/bits/numeric_traits.h: Update copyright
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.
5810 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
5812 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
5813 * doc/html/*: Regenerate.
5815 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
5817 * testsuite/experimental/simd/generate_makefile.sh: Use printf
5818 instead of echo when printing escape characters.
5820 2021-01-27 Matthias Kretz <kretz@kde.org>
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
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
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
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
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
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
5864 * testsuite/experimental/simd/tests/casts.cc: New file. Test
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
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
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
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
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.
5909 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
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
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.
5926 2021-01-27 Matthias Kretz <kretz@kde.org>
5928 * doc/xml/manual/status_cxx2017.xml: Add implementation status
5929 of the Parallelism TS 2. Document implementation-defined types
5931 * include/Makefile.am: Add new headers.
5932 * include/Makefile.in: Regenerate.
5933 * include/experimental/simd: New file. New header for
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
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
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
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.
5973 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
5976 * include/bits/string_view.tcc
5977 (basic_string_view::find(const CharT*, size_type, size_type)):
5980 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
5982 * include/bits/basic_string.h (basic_string::contains): New
5984 * include/std/string_view (basic_string_view::contains):
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:
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.
5997 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
5999 * src/c++17/Makefile.in: Regenerate.
6001 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
6003 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
6004 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
6006 (const char* ctype<char>:: is): Same.
6008 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
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.
6015 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
6017 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
6018 stringbuf not wstringbuf.
6020 2021-01-18 Jakub Jelinek <jakub@redhat.com>
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.
6027 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
6029 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
6030 Add -fcf-protection=none to -march=i486.
6032 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
6034 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
6037 2021-01-14 Alexandre Oliva <oliva@adacore.com>
6039 * testsuite/30_threads/future/members/poll.cc: Calibrate
6042 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
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
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):
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
6058 * testsuite/23_containers/deque/debug/98466.cc: New test.
6059 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
6061 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
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.
6072 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
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.
6083 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
6085 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
6087 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
6090 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
6092 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
6094 2021-01-08 Olivier Hainque <hainque@adacore.com>
6096 * testsuite/20_util/bind/ref_neg.cc: Tweak the
6097 dg-prune-output regex for out-of-build-tree contexts.
6099 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
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.
6114 2021-01-07 Patrick Palka <ppalka@redhat.com>
6117 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
6118 instead of the non-standard nextupl and nextdownl.
6120 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
6122 * configure: Re-generate.
6124 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
6126 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
6128 2021-01-01 Jakub Jelinek <jakub@redhat.com>
6130 * ChangeLog-2020: Rotate ChangeLog. New file.
6133 Copyright (C) 2021 Free Software Foundation, Inc.
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.