1 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/std_function.h (function): Adjust doxygen
5 * include/bits/unique_ptr.h (make_unique_for_overwrite):
6 Change parameter name to match doxygen comment.
8 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
10 * include/bits/std_function.h (_function_base::_Base_manager):
11 Replace _M_init_functor with a function template using a
12 forwarding reference, and a pair of _M_create function
13 templates. Reuse _M_create for the clone operation.
14 (function::_Decay_t): New alias template.
15 (function::_Callable): Simplify by using _Decay.
16 (function::function(F)): Change parameter to forwarding
17 reference, as per LWG 2447. Add noexcept-specifier. Simplify
19 (function::operator=(F&&)): Add noexcept-specifier.
20 * testsuite/20_util/function/cons/lwg2774.cc: New test.
21 * testsuite/20_util/function/cons/noexcept.cc: New test.
23 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
25 * include/bits/std_function.h (function::function(F)): Add
26 static assertions to check constructibility requirements.
28 2021-08-26 Jonathan Wakely <jwakely@redhat.com>
31 * configure.ac: Check for O_NONBLOCK.
32 * configure: Regenerate.
33 * include/experimental/internet: Include <ws2tcpip.h> for
34 Windows. Use preprocessor conditions around more constants.
35 * include/experimental/socket: Use preprocessor conditions
36 around more constants.
37 * testsuite/experimental/net/internet/resolver/base.cc: Only use
38 constants when the corresponding C macro is defined.
39 * testsuite/experimental/net/socket/basic_socket.cc: Likewise.
40 * testsuite/experimental/net/socket/socket_base.cc: Likewise.
41 Make preprocessor checks more fine-grained.
43 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
45 * testsuite/17_intro/names.cc: Check 'sz'.
47 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
49 * testsuite/17_intro/names.cc: Adjust for Windows.
51 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
53 * include/std/valarray: Uglify 'func' parameters.
54 * testsuite/17_intro/names.cc: Add 'func' to checks.
56 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
59 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT):
60 Define macro to check conditions for optimizing trivial cases.
61 (__check_constructible): New function to do static assert.
62 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n):
64 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
65 Adjust dg-error pattern.
66 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add
67 C++17-specific checks from 89164_c++17.cc.
68 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed.
69 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
71 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
73 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
75 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
78 2021-08-25 Jonathan Wakely <jwakely@redhat.com>
81 * include/ext/rope (rope::erase(size_type)): Remove broken
84 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
86 * doc/xml/manual/status_cxx2020.xml: Update table.
87 * doc/html/manual/status.html: Regenerate.
89 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
91 * include/std/type_traits (is_layout_compatible): Define.
92 (is_corresponding_member): Define.
93 * include/std/version (__cpp_lib_is_layout_compatible): Define.
94 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
96 * testsuite/20_util/is_layout_compatible/value.cc: New test.
97 * testsuite/20_util/is_layout_compatible/version.cc: New test.
98 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
100 * testsuite/23_containers/span/layout_compat.cc: Do not use real
101 std::is_layout_compatible trait if available.
103 2021-08-24 Jonathan Wakely <jwakely@redhat.com>
105 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in
106 explicit instantiation definitions.
108 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
110 * include/std/ranges (basic_istream_view): Add default template
112 * testsuite/std/ranges/istream_view.cc: Check it.
114 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
116 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to
119 2021-08-23 Jonathan Wakely <jwakely@redhat.com>
122 * testsuite/util/testsuite_fs.h (permissions_are_testable):
125 2021-08-20 Jonathan Wakely <jwakely@redhat.com>
128 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
129 Use new __gnu_test::permissions_are_testable() function.
130 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
132 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
133 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
134 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
135 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
136 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
137 * testsuite/27_io/filesystem/operations/symlink_status.cc:
139 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
141 * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
143 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
145 * testsuite/experimental/filesystem/operations/exists.cc:
147 * testsuite/experimental/filesystem/operations/is_empty.cc:
149 * testsuite/experimental/filesystem/operations/remove.cc:
151 * testsuite/experimental/filesystem/operations/remove_all.cc:
153 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
155 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable):
156 New function to guess whether testing permissions will work.
158 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
160 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table.
161 * doc/html/manual/status.html: Regenerate.
163 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
165 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2
167 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
170 * include/std/charconv (__to_chars_i): Remove redundant check.
172 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
175 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base
176 class' move constructor. Define as defaulted for versioned
178 * testsuite/20_util/tuple/cons/101960.cc: New test.
180 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
183 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table.
184 * doc/html/manual/status.html: Regenerate.
186 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
188 * include/bits/shared_ptr.h: Add @since and @headerfile tags.
189 * include/bits/unique_ptr.h: Add @headerfile tags.
191 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
193 * src/filesystem/ops-common.h (filesystem::file_time): Improve
194 overflow check by using system_clock::duration::max().
196 2021-08-19 Jonathan Wakely <jwakely@redhat.com>
198 * include/bits/stl_tree.h: Tweak whitespace.
200 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
202 * include/bits/unique_ptr.h (default_delete): Add @since tag.
203 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief.
204 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam,
205 @param, and @returns.
206 (_MakeUniq): Move to __detail namespace. Add alias template
209 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
211 * include/bits/stl_function.h: Improve doxygen comments.
213 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
215 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen
216 processing for C++20 components and components that depend on
218 * include/bits/stl_algo.h (random_shuffle): Use @deprecated.
219 * include/std/type_traits: Improve doxygen comments for C++20
222 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
224 * include/ext/type_traits.h (__promote_2, __promote_3)
225 (__promote_4): Redfine as alias templates using __promoted_t.
226 * include/std/complex (__promote_2): Remove partial
227 specializations for std::complex.
229 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
231 * include/bits/stl_algo.h (min(initializer_list<T>))
232 (min(initializer_list<T>, Compare)): Call __min_element directly to
233 avoid redundant debug checks for valid ranges.
234 (max(initializer_list<T>), max(initializer_list<T>, Compare)):
235 Likewise, for __max_element.
236 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)):
237 Likewise, for __minmax_element.
239 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
241 * include/debug/deque (deque(size_type, const T&, const A&)):
242 Prevent class template argument deduction and replace with a
244 * include/debug/forward_list (forward_list(size_type, const T&, const A&)):
246 * include/debug/list (list(size_type, const T&, const A&)):
248 * include/debug/vector (vector(size_type, const T&, const A&)):
251 2021-08-18 Jonathan Wakely <jwakely@redhat.com>
253 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use
254 'std::vector<bool>::reference' as type name, not _Bit_reference.
255 (build_libstdcxx_dictionary): Register printers for vector<bool>
256 types in debug mode too.
257 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected
258 output for invalid _Bit_reference. Use vector<bool>::reference
259 instead of _Bit_reference.
260 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
262 2021-08-17 Thomas Schwinge <thomas@codesourcery.com>
264 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose,
267 2021-08-17 Luc Michel <lmichel@kalray.eu>
268 Marc Poulhies <mpoulhies@kalrayinc.com>
270 * testsuite/lib/gdb-test.exp (gdb_version_check)
271 (gdb_version_check_xmethods): Only check the GDB version for
272 local native targets.
274 2021-08-17 Antony Polukhin <antoshkka@gmail.com>
275 Jonathan Wakely <jwakely@redhat.com>
277 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity
279 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
282 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
284 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check
285 construction from input iterators.
287 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
289 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove.
291 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
294 * include/bits/std_function.h (function(function&&)): Check for
295 non-empty parameter before doing any work.
297 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
299 * include/bits/cow_string.h (basic_string::contains): Do not
300 define for -std=gnu++20.
302 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
304 * include/bits/ranges_util.h (__not_same_as): Rename to
306 * include/std/ranges (__not_same_as): Likewise.
308 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
310 * include/std/utility (exchange): Add noexcept-specifier.
311 * testsuite/20_util/exchange/noexcept.cc: New test.
313 2021-08-17 Jonathan Wakely <jwakely@redhat.com>
315 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define.
316 (build_libstdcxx_dictionary): Register printer for
317 std::error_code and std::error_condition.
318 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
320 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
323 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a
325 (print_word): Use qualified-id to access it.
327 2021-08-16 Jonathan Wakely <jwakely@redhat.com>
329 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
330 Install another copy of the GDB hook.
331 * python/Makefile.in: Regenerate.
333 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
336 * include/c_global/cmath (hypot): Use __promoted_t.
337 (lerp): Add new overload accepting any arithmetic types.
338 * include/ext/type_traits.h (__promoted_t): New alias template.
339 * testsuite/26_numerics/lerp.cc: Moved to...
340 * testsuite/26_numerics/lerp/1.cc: ...here.
341 * testsuite/26_numerics/lerp/constexpr.cc: New test.
342 * testsuite/26_numerics/lerp/version.cc: New test.
344 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
346 * testsuite/26_numerics/lerp.cc: Add header name to #error.
347 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
348 * testsuite/26_numerics/midpoint/version.cc: New test.
350 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
352 * include/experimental/random (experimental::randint): Add
355 2021-08-12 Jonathan Wakely <jwakely@redhat.com>
357 * src/c++98/locale_init.cc: Require C++11.
358 * src/c++98/localename.cc: Likewise.
359 * src/c++98/misc-inst.cc: Require C++98.
361 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
364 * testsuite/experimental/random/randint.cc: Loop and retry if
365 reseed() produces the same sequence.
367 2021-08-11 Jonathan Wakely <jwakely@redhat.com>
369 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible)
370 (is_pointer_interconvertible_base_of_v)
371 (is_pointer_interconvertible_base_of): Define for C++20.
372 * include/std/version (__cpp_lib_is_pointer_interconvertible):
374 * testsuite/23_containers/span/layout_compat.cc: Use correct
375 feature test macro for std::is_layout_compatible_v.
376 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test.
377 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test.
379 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
381 * include/bits/regex.h (basic_regex::transform_primary): Use
382 _GLIBCXX_STD_C::vector for local variable.
383 * include/bits/regex.tcc (__regex_algo_impl): Use reference to
384 _GLIBCXX_STD_C::vector base class of match_results.
385 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use
386 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local
388 * include/bits/regex_compiler.h (_BracketMatcher): Use
389 _GLIBCXX_STD_C::vector for data members.
390 * include/bits/regex_executor.h (_Executor): Likewise.
391 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>.
393 2021-08-09 François Dumont <fdumont@gcc.gnu.org>
395 * include/debug/safe_container.h
396 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New.
397 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New.
398 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters.
400 2021-08-09 Jonathan Wakely <jwakely@redhat.com>
402 * testsuite/23_containers/unordered_map/cons/default.cc: Add
403 equality comparison operators to allocator.
404 * testsuite/23_containers/unordered_set/cons/default.cc:
407 2021-08-08 François Dumont <fdumont@gcc.gnu.org>
409 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion'
410 dg-prune-output reason with 'builtin_unreachable'.
411 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise.
412 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise.
413 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise.
414 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
415 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise.
416 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise.
417 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise.
418 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise.
420 2021-08-08 Hans-Peter Nilsson <hp@bitrange.com>
422 * testsuite/std/ranges/iota/max_size_type.cc: Set
423 dg-timeout-factor to 4.
425 2021-08-06 Jonathan Wakely <jwakely@redhat.com>
427 * libsupc++/compare (compare_three_way, strong_order)
428 (weak_order, partial_order, compare_strong_order_fallback)
429 (compare_weak_order_fallback, compare_partial_order_fallback):
430 Move nodiscard attributes to correct location.
432 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
435 * include/bits/ranges_base.h (ranges::begin, ranges::end)
436 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
437 (ranges::empty, ranges::data): Move attribute after the
438 declarator-id instead of at the end of the declarator.
439 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator):
440 Move attributes back to the start of the function declarator,
441 but move the requires-clause to the end.
442 (common_iterator): Move attribute after the declarator-id.
443 * include/bits/stl_queue.h (queue): Remove ill-formed attributes
444 from friend declaration that are not definitions.
445 * include/std/ranges (views::all, views::filter)
446 (views::transform, views::take, views::take_while,
447 views::drop) (views::drop_while, views::join,
448 views::lazy_split) (views::split, views::counted,
449 views::common, views::reverse) (views::elements): Move
450 attributes after the declarator-id.
452 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
454 * libsupc++/compare (partial_ordering, weak_ordering)
455 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq)
456 (compare_three_way, strong_order, weak_order, partial_order)
457 (compare_strong_order_fallback, compare_weak_order_fallback)
458 (compare_partial_order_fallback, __detail::__synth3way): Add
460 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
461 -Wno-unused-result to options.
463 2021-08-05 Jonathan Wakely <jwakely@redhat.com>
466 * include/bits/ranges_base.h (ranges::begin, ranges::end)
467 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize)
468 (ranges::empty, ranges::data): Move attribute to the end of
470 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator)
471 (common_iterator): Likewise for non-member operator functions.
472 * include/std/ranges (views::all, views::filter)
473 (views::transform, views::take, views::take_while, views::drop)
474 (views::drop_while, views::join, views::lazy_split)
475 (views::split, views::counted, views::common, views::reverse)
476 (views::elements): Likewise.
477 * testsuite/std/ranges/access/101782.cc: New test.
479 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
481 * include/bits/forward_list.h: Add [[nodiscard]] to functions
482 with no side-effects.
483 * include/bits/stl_bvector.h: Likewise.
484 * include/bits/stl_deque.h: Likewise.
485 * include/bits/stl_list.h: Likewise.
486 * include/bits/stl_queue.h: Likewise.
487 * include/bits/stl_stack.h: Likewise.
488 * include/bits/stl_vector.h: Likewise.
489 * include/debug/deque: Likewise.
490 * include/debug/forward_list: Likewise.
491 * include/debug/list: Likewise.
492 * include/debug/safe_iterator.h: Likewise.
493 * include/debug/vector: Likewise.
494 * include/std/array: Likewise.
495 * testsuite/23_containers/array/creation/3_neg.cc: Use
497 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result
499 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
500 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
501 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
502 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc:
504 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc:
506 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
507 Adjust dg-error line numbers.
508 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast
510 * testsuite/23_containers/deque/debug/invalidation/4.cc:
512 * testsuite/23_containers/deque/types/1.cc: Use
514 * testsuite/23_containers/list/types/1.cc: Cast result to void.
515 * testsuite/23_containers/priority_queue/members/7161.cc:
517 * testsuite/23_containers/queue/members/7157.cc: Likewise.
518 * testsuite/23_containers/vector/59829.cc: Likewise.
519 * testsuite/23_containers/vector/ext_pointer/types/1.cc:
521 * testsuite/23_containers/vector/ext_pointer/types/2.cc:
523 * testsuite/23_containers/vector/types/1.cc: Use
526 2021-08-04 Jonathan Wakely <jwakely@redhat.com>
528 * include/bits/iterator_concepts.h (iter_move): Add
530 * include/bits/range_access.h (begin, end, cbegin, cend)
531 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise.
532 * include/bits/ranges_base.h (ranges::begin, ranges::end)
533 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend)
534 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
535 (ranges::empty, ranges::data, ranges::cdata): Likewise.
536 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator)
537 (back_insert_iterator, front_insert_iterator, insert_iterator)
538 (move_iterator, move_sentinel, common_iterator)
539 (counted_iterator): Likewise.
540 * include/bits/stl_iterator_base_funcs.h (distance, next, prev):
542 * include/bits/stream_iterator.h (istream_iterator)
543 (ostream_iterartor): Likewise.
544 * include/bits/streambuf_iterator.h (istreambuf_iterator)
545 (ostreambuf_iterator): Likewise.
546 * include/std/ranges (views::single, views::iota, views::all)
547 (views::filter, views::transform, views::take, views::take_while)
548 (views::drop, views::drop_while, views::join, views::lazy_split)
549 (views::split, views::counted, views::common, views::reverse)
550 (views::elements): Likewise.
551 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result.
552 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise.
553 * testsuite/24_iterators/normal_iterator/greedy_ops.cc:
555 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise.
556 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc:
558 * testsuite/21_strings/basic_string/range_access/char/1.cc:
560 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
562 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
564 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
566 * testsuite/23_containers/array/range_access.cc: Likewise.
567 * testsuite/23_containers/deque/range_access.cc: Likewise.
568 * testsuite/23_containers/forward_list/range_access.cc:
570 * testsuite/23_containers/list/range_access.cc: Likewise.
571 * testsuite/23_containers/map/range_access.cc: Likewise.
572 * testsuite/23_containers/multimap/range_access.cc: Likewise.
573 * testsuite/23_containers/multiset/range_access.cc: Likewise.
574 * testsuite/23_containers/set/range_access.cc: Likewise.
575 * testsuite/23_containers/unordered_map/range_access.cc:
577 * testsuite/23_containers/unordered_multimap/range_access.cc:
579 * testsuite/23_containers/unordered_multiset/range_access.cc:
581 * testsuite/23_containers/unordered_set/range_access.cc:
583 * testsuite/23_containers/vector/range_access.cc: Likewise.
584 * testsuite/24_iterators/customization_points/iter_move.cc:
586 * testsuite/24_iterators/istream_iterator/sentinel.cc:
588 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
590 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise.
591 * testsuite/24_iterators/operations/prev_neg.cc: Likewise.
592 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise.
593 * testsuite/24_iterators/range_access/range_access.cc:
595 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
596 * testsuite/26_numerics/valarray/range_access2.cc: Likewise.
597 * testsuite/28_regex/range_access.cc: Likewise.
598 * testsuite/experimental/string_view/range_access/char/1.cc:
600 * testsuite/experimental/string_view/range_access/wchar_t/1.cc:
602 * testsuite/ext/vstring/range_access.cc: Likewise.
603 * testsuite/std/ranges/adaptors/take.cc: Likewise.
604 * testsuite/std/ranges/p2259.cc: Likewise.
606 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
608 * include/bits/random.tcc (linear_congruential_engine): Do not
609 define static constexpr members when they are implicitly inline.
610 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide)
611 (__ratio_add, __ratio_subtract): Likewise.
612 * include/std/type_traits (integral_constant): Likewise.
613 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
616 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
618 * testsuite/util/testsuite_common_types.h: Replace uses of
619 tr1::unordered_map and tr1::unordered_set with their C++11
621 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust
622 dg-error line number.
623 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
624 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc:
626 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc:
628 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc:
630 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc:
632 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc:
635 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
637 * include/std/memory_resource (polymorphic_allocator::delete_object):
638 Call destructor directly instead of using destroy.
639 (allocator_traits<polymorphic_allocator<T>>): Define partial
642 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
644 * testsuite/20_util/function_objects/binders/3113.cc: Remove
646 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
647 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
648 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
650 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
651 * testsuite/25_algorithms/headers/algorithm/synopsis.cc:
653 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
655 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
658 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
660 * doc/xml/manual/evolution.xml: Document deprecation.
661 * doc/html/*: Regenerate.
662 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define.
663 (_GLIBCXX14_DEPRECATED_SUGGEST): Define.
664 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14
666 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust
667 for C++11 and C++14 changes to std::random_shuffle and
669 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to
670 use deprecated algorithms.
671 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
672 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
673 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
675 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
678 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
680 * testsuite/23_containers/forward_list/operations/3.cc:
681 Use lambda instead of std::bind2nd.
682 * testsuite/20_util/function_objects/binders/3113.cc: Add
683 options for testing deprecated features.
684 * testsuite/20_util/pair/cons/99957.cc: Likewise.
685 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
686 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
687 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
689 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
690 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
691 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
692 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
693 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
694 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
695 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
697 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
699 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated):
702 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
704 * include/bits/regex_executor.h (_State_info): Replace
705 unique_ptr<bool[]> with array of bool.
706 * include/bits/regex_executor.tcc: Likewise.
707 * include/bits/regex_scanner.tcc: Replace std::strchr with
709 * include/std/regex: Replace standard headers with smaller
711 * testsuite/28_regex/traits/char/lookup_classname.cc: Include
712 <string.h> for strlen.
713 * testsuite/28_regex/traits/char/lookup_collatename.cc:
716 2021-08-03 Jonathan Wakely <jwakely@redhat.com>
718 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new
720 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr
721 instead of unique_ptr.
723 2021-08-02 Patrick Palka <ppalka@redhat.com>
726 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()):
727 Add missing std::move in return statement.
728 (__partition_copy_fn::operator()): Rename templtae parameter
729 _O2 to _Out2. Uglify function parameters out_true and out_false.
730 * include/bits/ranges_algobase.h (__copy_or_move): Add missing
731 std::move to recursive call that unwraps a __normal_iterator
733 * testsuite/25_algorithms/copy/constrained.cc (test06): New test.
734 * testsuite/25_algorithms/move/constrained.cc (test05): New test.
736 2021-08-02 Patrick Palka <ppalka@redhat.com>
739 * include/std/ranges (lazy_split_view::_InnerIter::base): Make
740 the const& overload unconstrained and return a const reference
741 as per LWG 3533. Make unconditionally noexcept.
742 (elements_view::base): Revert accidental r12-569 change.
743 (elements_view::_Iterator::base): Make the const& overload
744 unconstrained and return a const reference as per LWG 3533.
745 Make unconditionally noexcept.
747 2021-08-02 Patrick Palka <ppalka@redhat.com>
750 * include/std/ranges (join_view::_Iterator::_Iterator): Add
753 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
756 * src/filesystem/ops-common.h (get_temp_directory_from_env):
757 Add error_code parameter.
758 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code
759 argument to get_temp_directory_from_env and check it.
760 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
762 2021-08-02 Jonathan Wakely <jwakely@redhat.com>
764 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
765 Add dg-error for c++11_only target.
767 2021-07-30 Jonathan Wakely <jwakely@redhat.com>
770 * configure.ac: Check for secure_getenv.
771 * config.h.in: Regenerate.
772 * configure: Regenerate.
773 * src/filesystem/ops-common.h (get_temp_directory_from_env): New
774 helper function to obtain path from the environment.
775 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper.
776 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
777 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
778 Print messages if test cannot be run.
779 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
780 Likewise. Fix incorrect condition. Use "TMP" to work with
781 Windows as well as POSIX.
783 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com>
785 * src/c++17/memory_resource.cc: Use __exchange instead
788 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
790 * include/experimental/optional (__throw_bad_optional_access):
791 Replace GNU attribute with C++11 attribute.
792 (optional::value, optional::value_or): Use if statements
793 instead of conditional expressions.
794 * include/std/optional (__throw_bad_optional_access)
795 (optional::value, optional::value_or): Likewise.
797 2021-07-27 Marek Polacek <polacek@redhat.com>
801 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
803 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
806 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
808 * include/bits/cow_string.h: Consistently use tab for
811 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
813 * include/Makefile.am: Add new header.
814 * include/Makefile.in: Regenerate.
815 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
816 (basic_string): Move definition of Copy-on-Write string to
818 * include/bits/basic_string.tcc: Likewise.
819 * include/bits/cow_string.h: New file.
821 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
823 * include/std/algorithm: Do not include <utility>.
824 * include/std/functional: Likewise.
825 * include/std/regex: Include <bits/stl_pair.h> instead of
827 * include/debug/map.h: Likewise.
828 * include/debug/multimap.h: Likewise.
829 * include/debug/multiset.h: Likewise.
830 * include/debug/set.h: Likewise.
831 * include/debug/vector: Likewise.
832 * include/bits/fs_path.h: Likewise.
833 * include/bits/unique_ptr.h: Do not include <utility>.
834 * include/experimental/any: Likewise.
835 * include/experimental/executor: Likewise.
836 * include/experimental/memory: Likewise.
837 * include/experimental/optional: Likewise.
838 * include/experimental/socket: Use __exchange instead
840 * src/filesystem/ops-common.h: Likewise.
841 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected
842 errors to not use a hardcoded line number.
843 * testsuite/20_util/default_delete/void_neg.cc: Likewise.
844 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
845 Include <utility> for std::as_const.
846 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
848 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
850 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
852 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
853 Adjust dg-error line number.
855 2021-07-27 Jonathan Wakely <jwakely@redhat.com>
857 * include/Makefile.am: Add bits/utility.h header.
858 * include/Makefile.in: Regenerate.
859 * include/bits/utility.h: New file.
860 * include/std/utility (tuple_size, tuple_element): Move
862 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>):
864 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise.
865 (in_place_t, in_place_index_t, in_place_type_t): Likewise.
866 * include/bits/ranges_util.h: Include new header instead of
868 * include/bits/stl_pair.h (tuple_size, tuple_element): Move
869 partial specializations for std::pair here.
870 (get): Move overloads for std::pair here.
871 * include/std/any: Include new header instead of <utility>.
872 * include/std/array: Likewise.
873 * include/std/memory_resource: Likewise.
874 * include/std/optional: Likewise.
875 * include/std/variant: Likewise.
876 * include/std/tuple: Likewise.
877 (__is_tuple_like_impl<tuple<T...>>): Move here.
878 (get) Declare overloads for std::array.
879 * include/std/version (__cpp_lib_tuples_by_type): Change type
881 * testsuite/20_util/optional/84601.cc: Include <utility>.
882 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
884 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
885 Adjust dg-error line numbers.
886 * testsuite/std/ranges/access/cbegin.cc: Include <utility>.
887 * testsuite/std/ranges/access/cend.cc: Likewise.
888 * testsuite/std/ranges/access/end.cc: Likewise.
889 * testsuite/std/ranges/single_view.cc: Likewise.
891 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
893 * include/std/future: Include <bits/atomic_base.h> instead of
896 2021-07-23 Jonathan Wakely <jwakely@redhat.com>
898 * include/bits/stl_relops.h: Update documentation comments.
900 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
903 * include/bits/hashtable.h (_Hashtable): Replace mixin with
904 _Enable_default_ctor. Construct it explicitly in all
905 non-forwarding, non-defaulted constructors.
906 * testsuite/23_containers/unordered_map/cons/default.cc: Check
907 non-default constructors can be used.
908 * testsuite/23_containers/unordered_set/cons/default.cc:
911 2021-07-22 David Edelsohn <dje.gcc@gmail.com>
913 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define.
915 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
918 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW)
919 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define.
920 (allocator::allocate, allocator::deallocate): Use new macros.
922 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
925 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change
926 constructor parameter to reference and use addressof.
927 * testsuite/util/testsuite_iterators.h: Define deleted operator&
928 overloads for test iterators.
930 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
932 * include/bits/std_function.h (_Function_base): Add
933 default member initializers and define constructor as defaulted.
934 (function::_M_invoker): Add default member initializer.
936 2021-07-22 Jonathan Wakely <jwakely@redhat.com>
939 * doc/xml/manual/debug_mode.xml: Update documentation about
940 debug capability of std::array.
941 * doc/html/*: Regenerate.
942 * include/debug/array: New file.
944 2021-07-21 Jonathan Wakely <jwakely@redhat.com>
947 * include/ext/rope (sequence_buffer): Add move constructor and
948 move assignment operator.
949 * testsuite/ext/rope/101542.cc: New test.
951 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
954 * src/c++17/fs_ops.cc (fs::create_directories): Use status
955 instead of symlink_status.
956 * src/filesystem/ops.cc (fs::create_directories): Likewise.
957 * testsuite/27_io/filesystem/operations/create_directories.cc:
958 Check symlink to existing directory.
959 * testsuite/27_io/filesystem/operations/create_directory.cc: Do
960 not test with symlinks on Windows.
961 * testsuite/experimental/filesystem/operations/create_directories.cc:
962 Check symlink to existing directory.
963 * testsuite/experimental/filesystem/operations/create_directory.cc:
964 Do not test with symlinks on Windows.
966 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
969 * include/bits/hashtable.h (_Hashtable): Conditionally delete
970 default constructor by deriving from _Enable_special_members.
971 * testsuite/23_containers/unordered_map/cons/default.cc: New test.
972 * testsuite/23_containers/unordered_set/cons/default.cc: New test.
974 2021-07-20 Jonathan Wakely <jwakely@redhat.com>
977 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace.
978 * testsuite/27_io/filesystem/operations/create_directory.cc:
979 Test creating directory with name of existing symlink to
981 * testsuite/experimental/filesystem/operations/create_directory.cc:
984 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
986 * include/std/tuple (get<I>): Add deleted overload for bad
988 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
991 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
993 * include/bits/max_size_type.h (numeric_limits<__max_size_type>):
994 Use __int_traits unconditionally.
996 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
998 * include/bits/random.h (_Shift::__value): Use constexpr.
999 (_Select_uint_least_t::type): Use using-declaration.
1001 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1004 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1006 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__
1007 instead of diagnostic pragmas.
1008 * include/bits/functional_hash.h: Likewise.
1009 * include/bits/iterator_concepts.h (__is_signed_int128)
1010 (__is_unsigned_int128): Likewise.
1011 * include/bits/max_size_type.h (__max_size_type): Likewise.
1012 (numeric_limits<__max_size_type>): Likewise.
1013 * include/bits/std_abs.h (abs): Likewise.
1014 * include/bits/stl_algobase.h (__size_to_integer): Likewise.
1015 * include/bits/uniform_int_dist.h (uniform_int_distribution):
1017 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS):
1019 * include/std/type_traits (__is_integral_helper<INT_N>)
1020 (__is_signed_integer, __is_unsigned_integer)
1021 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise.
1022 * include/std/limits (__INT_N): Add __extension__ keyword.
1023 * include/bits/random.h (_Select_uint_least_t)
1024 (random_device): Likewise.
1026 2021-07-16 Patrick Palka <ppalka@redhat.com>
1029 * include/std/ranges (_CachedPosition::_M_get): For non-forward
1030 ranges, just call __builtin_unreachable.
1031 * testsuite/std/ranges/istream_view.cc (test05): New test.
1033 2021-07-16 Patrick Palka <ppalka@redhat.com>
1036 * include/std/ranges (split_view::split_view): Use std::move.
1037 (split_view::_Iterator::_Iterator): Remove redundant
1038 default_initializable constraint.
1039 (split_view::_Sentinel::_Sentinel): Declare.
1040 * testsuite/std/ranges/adaptors/split.cc (test02): New test.
1042 2021-07-16 Marek Polacek <polacek@redhat.com>
1044 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add
1047 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1049 * include/bits/unique_ptr.h: Adjust doxygen markup.
1051 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1054 * include/std/type_traits: Adjust doxygen markup.
1056 2021-07-16 Jonathan Wakely <jwakely@redhat.com>
1058 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around
1059 uses of non-standard integer types.
1060 * include/bits/functional_hash.h: Likewise.
1061 * include/bits/iterator_concepts.h: Likewise.
1062 * include/bits/max_size_type.h: Likewise.
1063 * include/bits/std_abs.h: Likewise.
1064 * include/bits/stl_algobase.h: Likewise.
1065 * include/bits/uniform_int_dist.h: Likewise.
1066 * include/ext/numeric_traits.h: Likewise.
1067 * include/std/type_traits: Likewise.
1069 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
1072 * include/std/tuple (tuple_element): Improve static_assert text.
1073 (__get_helper): Add deleted overload.
1074 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use
1075 __get_helper directly.
1076 (__get_helper2): Remove.
1077 (__find_uniq_type_in_pack): New constexpr helper function.
1078 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead
1080 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
1082 * testsuite/20_util/tuple/element_access/101427.cc: New test.
1084 2021-07-15 Jonathan Wakely <jwakely@redhat.com>
1087 * include/bits/c++config (__replacement_assert): Add noexcept.
1088 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort
1089 instead of __replacement_assert.
1091 2021-07-14 Jonathan Wakely <jwakely@redhat.com>
1093 * include/std/string_view (basic_string_view(It, End)): Add
1095 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
1096 Check noexcept-specifier. Also check construction without CTAD.
1098 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
1101 * include/std/string_view (ends_with): Use traits_type::compare
1104 2021-07-13 Jonathan Wakely <jwakely@redhat.com>
1106 * include/std/string_view: Only include <bits/ranges_base.h>
1107 once, and only for C++20 and later.
1109 2021-07-12 Jonathan Wakely <jwakely@redhat.com>
1112 * include/std/span (as_writable_bytes): Add requires-clause.
1113 * testsuite/23_containers/span/101411.cc: New test.
1115 2021-07-09 Matheus Castanho <msc@linux.ibm.com>
1117 * include/std/mutex (__lock_impl): Check
1118 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
1120 2021-07-02 Jonathan Wakely <jwakely@redhat.com>
1123 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]):
1124 Remove noexcept-specifier.
1125 (unique_ptr<T[],D>::_S_nothrow_deref): Remove.
1126 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for
1129 2021-07-01 Jonathan Wakely <jwakely@redhat.com>
1131 * doc/doxygen/doxygroups.cc: Fix docs for std::literals.
1132 * doc/doxygen/user.cfg.in: Exclude the Networking TS header.
1133 Add some more predefined macros.
1134 * include/bits/fs_fwd.h: Move @addtogroup commands inside
1135 namespaces. Add better documentation.
1136 * include/bits/fs_path.h: Likewise.
1137 * include/experimental/bits/fs_fwd.h: Likewise.
1138 * include/experimental/bits/fs_path.h: Likewise.
1139 * include/ext/throw_allocator.h: Fix typo and improve docs.
1140 * include/std/chrono: Move @addtogroup commands.
1141 * include/std/system_error: Move @addtogroup commands.
1142 * libsupc++/exception: Improve documentation.
1143 * libsupc++/exception.h: Add @since documentation.
1145 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
1148 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>.
1149 (COLS_IN_ALPHA_INDEX): Remove obsolete tag.
1150 (PREDEFINED): Add/fix some more macros that need to be expanded.
1151 * include/bits/random.h: Stop Doxygen from documenting internal
1152 implementation details.
1153 * include/bits/random.tcc: Likewise.
1154 * include/bits/this_thread_sleep.h: Fix @file name.
1155 * include/experimental/bits/simd.h: Add to Doxygen group. Do not
1156 document internal implementation details.
1157 * include/experimental/bits/simd_detail.h: Do not document
1158 internal implementation details.
1159 * include/experimental/simd: Define Doxygen groups.
1160 * include/experimental/type_traits: Improve documentation for
1161 the header file. Define groups. Use @since commands.
1162 * include/std/scoped_allocator (scoped_allocator_adaptor): Move
1163 declaration before undocumented region.
1164 * include/std/type_traits (true_type, false_type): Use using
1165 declaration instead of typedef.
1166 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v)
1167 (is_nothrow_invocable_r_v): Move definitions next to other C++17
1169 Do not document internal implementation details. Move misplaced
1170 group-end command. Define group for variable templates.
1171 * include/std/variant: Do not document internal implementation
1173 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1176 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
1178 * include/experimental/simd: Do not define anything pre-C++17.
1180 2021-06-30 Jonathan Wakely <jwakely@redhat.com>
1182 * include/bits/random.tcc [__cpp_inline_variables]: Remove
1183 redundant definitions of static constexpr member variables.
1184 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1187 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1189 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove
1190 explicit instantiation declarations.
1191 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove
1192 explicit instantiation definitions.
1194 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1197 * testsuite/17_intro/names.cc: Fix #if condition for names used
1200 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1203 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]):
1204 Fail gracefully if element_type is incomplete.
1205 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that
1206 the standard doesn't require this test to work for array types.
1207 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete
1208 types can be used with array specialization.
1209 * testsuite/20_util/unique_ptr/101236.cc: New test.
1211 2021-06-28 Jonathan Wakely <jwakely@redhat.com>
1213 * doc/xml/manual/intro.xml: Document LWG 415 change.
1214 * doc/html/manual/bugs.html: Regenerate.
1215 * include/bits/istream.tcc (ws): Create sentry and catch
1217 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test.
1218 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test.
1220 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1222 * include/bits/ostream.tcc (basic_ostream::write): Call sputn
1223 directly instead of using _M_write. Do setstate(__err) all
1224 outside the try-catch block.
1225 * include/std/ostream (basic_ostream::_M_write): Declare
1226 private. Use __ostream_insert. Do not define for the versioned
1229 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1231 * doc/xml/manual/intro.xml: Document LWG 581 change.
1232 * doc/html/manual/bugs.html: Regenerate.
1233 * include/bits/basic_ios.tcc: Whitespace.
1234 * include/bits/ostream.tcc (basic_ostream::flush()): Construct
1236 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check
1238 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc:
1240 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
1241 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc:
1244 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1246 * include/bits/ostream.tcc (sentry): Only set failbit if badbit
1247 is set, not if eofbit is set.
1248 (tellp, seekp, seekp): Create sentry object. Do not set badbit
1250 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc:
1251 Adjust expected behaviour.
1252 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc:
1254 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc:
1256 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc:
1258 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test.
1259 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test.
1260 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test.
1261 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test.
1263 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1265 * include/std/syncstream (basic_syncbuf::swap()): Remove
1266 noexcept, as per LWG 3498.
1268 2021-06-25 Jonathan Wakely <jwakely@redhat.com>
1271 * testsuite/17_intro/names.cc: Undef more names for newlib and
1272 also for arm-none-linux-gnueabi.
1273 * testsuite/experimental/names.cc: Disable PCH.
1275 2021-06-25 Matthias Kretz <m.kretz@gsi.de>
1277 * include/experimental/bits/simd.h (__bit_cast): Implement via
1278 __builtin_bit_cast #if available.
1279 (__proposed::simd_bit_cast): Add overloads for simd and
1280 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not
1281 available), which return an object of the requested type with
1282 the same bits as the argument.
1283 * include/experimental/bits/simd_math.h: Use simd_bit_cast
1284 instead of __bit_cast to allow casts to fixed_size_simd.
1285 (copysign): Remove branch that was only required if __bit_cast
1286 cannot be constexpr.
1287 * testsuite/experimental/simd/tests/bits/test_values.h: Switch
1288 from __bit_cast to __proposed::simd_bit_cast since the former
1289 will not cast fixed_size objects anymore.
1291 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1293 * include/experimental/bits/simd_math.h
1294 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2.
1295 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to
1298 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1300 * include/experimental/bits/simd.h (__execute_on_index_sequence)
1301 (__execute_on_index_sequence_with_return)
1302 (__call_with_n_evaluations, __call_with_subscripts): Add flatten
1305 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1307 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor)
1308 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1
1311 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1313 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F
1314 implementation doesn't require a _VecBltnBtmsk ABI tag, it
1315 requires either a 64-Byte input (in which case AVX512F must be
1316 available) or AVX512VL.
1318 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1320 * include/experimental/bits/simd_math.h: Undefine internal
1322 (frexp): Move #if to a more sensible position and reformat
1324 (logb): Call _SimdImpl::_S_logb for fixed_size instead of
1325 duplicating the code here.
1326 (modf): Simplify condition.
1328 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1330 * include/experimental/bits/simd_math.h (fabs): Remove
1331 fabs(simd<integral>) overload.
1333 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1335 * include/experimental/bits/simd_converter.h
1336 (_SimdConverter::operator()): Pass _SimdTuple by const-ref.
1337 * include/experimental/bits/simd_fixed_size.h
1338 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple
1339 arguments by const-ref.
1340 (_S_masked_unary): Pass _SimdTuple by const-ref.
1342 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1344 * include/experimental/bits/simd_fixed_size.h
1345 (_AbisInSimdTuple): Removed.
1347 2021-06-24 Matthias Kretz <m.kretz@gsi.de>
1349 * include/experimental/bits/simd.h: Add missing operator~
1350 overload for simd<floating-point> to __float_bitwise_operators.
1351 * include/experimental/bits/simd_builtin.h
1352 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to
1353 implement complement for floating-point vectors.
1354 * include/experimental/bits/simd_fixed_size.h
1355 (_SimdImplFixedSize::_S_copysign): New function, forwarding to
1356 copysign implementation of _SimdTuple members.
1357 * include/experimental/bits/simd_math.h (copysign): Call
1358 _SimdImpl::_S_copysign for fixed_size arguments. Simplify
1359 generic copysign implementation using the new ~ operator.
1361 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
1363 * testsuite/experimental/simd/README.md: Fix typos.
1365 2021-06-24 Jonathan Wakely <jwakely@redhat.com>
1367 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]):
1369 * include/bits/unique_ptr.h (unique_ptr::operator*): Add
1370 conditional noexcept as per LWG 2762.
1371 * testsuite/20_util/shared_ptr/observers/array.cc: Check that
1372 dereferencing cannot throw.
1373 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
1374 * testsuite/20_util/optional/observers/lwg2762.cc: New test.
1375 * testsuite/20_util/unique_ptr/lwg2762.cc: New test.
1377 2021-06-23 Patrick Palka <ppalka@redhat.com>
1380 * testsuite/23_containers/multiset/cons/deduction.cc:
1381 Uncomment CTAD example that was rejected by this bug.
1382 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1384 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
1386 * include/std/chrono (chrono::year::is_leap()): Fix incorrect
1389 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1391 * testsuite/experimental/simd/README.md: New file.
1393 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1395 * testsuite/experimental/simd/driver.sh: Rewrite output
1396 verbosity logic. Add -p/--percentage option. Allow -v/--verbose
1397 to be used twice. Add -x and -o short options. Parse long
1398 options with = instead of separating space generically. Parce
1399 contracted short options. Make unrecognized options an error.
1400 If same-line output is active, trap on EXIT to increment the
1401 progress (only with --percentage), erase the line and print the
1403 * testsuite/experimental/simd/generate_makefile.sh: Initialize
1404 helper files for progress account keeping. Update help target
1405 for changes to DRIVEROPTS.
1407 2021-06-23 Matthias Kretz <m.kretz@gsi.de>
1409 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag
1410 and associated warning.
1411 * testsuite/Makefile.in: Regenerate.
1413 2021-06-23 Cassio Neri <cassio.neri@gmail.com>
1414 Jonathan Wakely <jwakely@redhat.com>
1415 Ulrich Drepper <drepper@redhat.com>
1417 * include/std/chrono (chrono::year::is_leap()): Optimize.
1419 2021-06-23 Patrick Palka <ppalka@redhat.com>
1422 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous
1424 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
1425 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
1426 Mention one of the replaced examples is broken due to PR101174.
1427 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
1428 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace
1429 ambiguous CTAD examples.
1430 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
1432 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
1434 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
1436 2021-06-23 Jonathan Wakely <jwakely@redhat.com>
1438 * include/std/mutex (__detail::__try_lock_impl): Rename
1439 parameter to avoid clashing with newlib's __lockable macro.
1440 (try_lock): Add 'inline' specifier.
1441 * testsuite/17_intro/names.cc: Add check for __lockable.
1442 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads.
1444 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1445 Matthias Kretz <m.kretz@gsi.de>
1447 * include/std/mutex (lock): Replace recursion with iteration
1448 when lockables all have the same type.
1449 (__detail::__try_lock_impl): Likewise. Pass lockables as
1450 parameters, instead of a tuple. Always lock the first one, and
1451 recurse for the rest.
1452 (__detail::__lock_impl): Adjust call to __try_lock_impl.
1453 (__detail::__try_to_lock): Remove.
1454 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked.
1455 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous
1457 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check
1459 * testsuite/30_threads/try_lock/5.cc: New test.
1461 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1463 * include/std/memory (declare_reachable, undeclare_reachable)
1464 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety)
1465 (pointer_safety): Only define for C++11 to C++20 inclusive.
1466 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23.
1468 2021-06-22 Jonathan Wakely <jwakely@redhat.com>
1470 * include/bits/random.h (seed_seq): Constrain initializer-list
1472 * include/bits/random.tcc (seed_seq): Add template parameter.
1473 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check
1475 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check
1478 2021-06-22 Thomas Rodgers <rodgert@appliantology.com>
1481 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release):
1482 Force _M_release() to wake all waiting threads.
1483 * testsuite/30_threads/semaphore/100806.cc: New test.
1485 2021-06-21 Jonathan Wakely <jwakely@redhat.com>
1487 * include/std/mutex (__try_to_lock): Move to __detail namespace.
1488 (struct __try_lock_impl): Replace with ...
1489 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New
1490 function templates to implement std::try_lock.
1491 (try_lock): Use new __try_lock_impl.
1492 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function
1493 template to implement std::lock.
1494 (lock): Use __lock_impl.
1496 2021-06-21 Patrick Palka <ppalka@redhat.com>
1498 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1500 2021-06-20 Patrick Palka <ppalka@redhat.com>
1502 * include/std/ranges (__non_propagating_cache::operator bool):
1503 Define for split_view::begin().
1504 (split_view): Define as per P2210.
1505 (views::__detail::__can_split_view): Define.
1506 (views::_Split, views::split): Define.
1507 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
1509 * testsuite/std/ranges/adaptors/split.cc: New test.
1510 * testsuite/std/ranges/p2325.cc (test08a): New test.
1511 * testsuite/std/ranges/p2367.cc (test01): Test views::split.
1513 2021-06-20 Patrick Palka <ppalka@redhat.com>
1515 * include/std/ranges: Rename views::split to views::lazy_split,
1516 split_view to lazy_split_view, etc. throughout.
1517 * testsuite/std/ranges/*: Likewise.
1518 * testsuite/std/ranges/adaptors/lazy_split.cc: New file.
1519 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file.
1521 2021-06-20 Patrick Palka <ppalka@redhat.com>
1523 * include/std/ranges (split_view::_OuterIter::__at_end):
1524 Check _M_trailing_empty.
1525 (split_view::_OuterIter::_M_trailing_empty): Define this
1527 (split_view::_OuterIter::operator++): Set _M_trailing_empty
1529 (split_view::_OuterIter::operator==): Compare
1531 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two
1532 split parts instead of one.
1533 * testsuite/std/ranges/adaptors/split.cc (test11): New test.
1535 2021-06-20 Patrick Palka <ppalka@redhat.com>
1537 * include/std/ranges (split_view::_InnerIter::base): Define as
1540 2021-06-19 Patrick Palka <ppalka@redhat.com>
1542 * include/std/ranges (transform_view::_Iterator::_S_iter_concept):
1543 Consider _Base instead of _Vp as per LWG 3555.
1544 (elements_view::_Iterator::_S_iter_concept): Likewise.
1546 2021-06-19 Patrick Palka <ppalka@redhat.com>
1548 * include/std/ranges (split_view::_OuterIter::value_type::begin):
1549 Remove the non-const overload, and remove the copyable constraint
1550 on the const overload as per LWG 3553.
1552 2021-06-19 Patrick Palka <ppalka@redhat.com>
1554 * include/bits/stl_iterator.h
1555 (__detail::__common_iter_use_postfix_proxy): Add
1556 move_constructible constraint as per LWG 3546.
1557 (common_iterator::__postfix_proxy): Adjust initializer of
1558 _M_keep as per LWG 3546.
1560 2021-06-18 Patrick Palka <ppalka@redhat.com>
1563 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite
1564 to limit comparison complexity to 3*N/2.
1565 (__minmax_element_fn::operator()): Likewise.
1566 (shift_right): Avoid premature std::move of __result.
1567 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05):
1569 * testsuite/25_algorithms/minmax_element/constrained.cc (test02):
1572 2021-06-18 Patrick Palka <ppalka@redhat.com>
1574 * include/std/concepts (convertible_to): Just use declval as per
1577 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
1580 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace
1581 incorrect static_assert with ones matching the 'Mandates'
1582 conditions in the standard.
1583 * testsuite/26_numerics/reduce/95833.cc: New test.
1585 2021-06-18 Jonathan Wakely <jwakely@redhat.com>
1587 * testsuite/21_strings/basic_string/cons/char/1.cc: Use
1588 diagnostic pragma to suppress -Wstringop-overread error.
1590 2021-06-18 Patrick Palka <ppalka@redhat.com>
1592 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn)
1593 (find_if, __find_if_not_fn, find_if_not, _in_in_result)
1594 (__mismatch_fn, mismatch, __search_fn, search): Move to ...
1595 * include/bits/ranges_util.h: ... here.
1596 * include/std/ranges (__detail::find, __detail::find_if)
1597 (__detail::find_if_not, __detail::mismatch): Remove.
1598 (filter_view): Use ranges::find_if instead.
1599 (drop_while_view): Use ranges::find_if_not instead.
1600 (split_view): Use ranges::find and ranges::mismatch instead.
1602 2021-06-18 Patrick Palka <ppalka@redhat.com>
1604 * include/bits/iterator_concepts.h (weakly_incrementable): Remove
1605 default_initializable requirement.
1606 * include/bits/ranges_base.h (ranges::view): Likewise.
1607 * include/bits/ranges_util.h (subrange): Constrain the default
1609 * include/bits/stl_iterator.h (back_insert_iterator): Remove the
1611 (front_insert_iterator): Likewise.
1612 (insert_iterator): Likewise. Remove NSDMIs.
1613 (common_iterator): Constrain the default ctor.
1614 (counted_iterator): Likewise.
1615 * include/bits/stream_iterator.h (ostream_iterator): Remove the
1617 * include/std/ranges (__detail::__box::operator=): Handle
1618 self-assignment in the primary template.
1619 (__detail::__box): In the partial specialization: adjust
1620 constraints as per P2325. Add specialized operator= for the
1621 case when the wrapped type is not copyable. Constrain the
1622 default ctor. Avoid list-initialization.
1623 (single_view): Constraint the default ctor.
1624 (iota_view): Relax semiregular constraint to copyable.
1625 Constrain the default ctor.
1626 (iota_view::_Iterator): Constraint the default ctor.
1627 (basic_istream_view): Remove the default ctor. Remove NSDMIs.
1628 Remove redundant checks for empty _M_stream.
1629 (basic_istream_view::_Iterator): Likewise.
1630 (ref_view): Remove the default ctor. Remove NSDMIs.
1631 (ref_view::_Iterator): Constrain the default ctor.
1632 (__detail::__non_propagating_cache::operator=): Define overload
1633 for assigning from a value of the underlying type.
1634 (filter_view): Likewise.
1635 (filter_view::_Iterator): Likewise.
1636 (transform_view): Likewise.
1637 (transform_view::_Iterator): Likewise.
1638 (take_view): Likewise.
1639 (take_view::_Iterator): Likewise.
1640 (take_while_view): Likewise.
1641 (take_while_view::_Iterator): Likewise.
1642 (drop_while_view): Likewise.
1643 (drop_while_view::_Iterator): Likewise.
1644 (join_view): Likewise.
1645 (split_view::_OuterIter::__current): Adjust after changing the
1647 (split_view::_M_current): Wrap it in a __non_propagating_cache.
1648 (split_view::split_view): Constrain the default ctor.
1649 (common_view): Constrain the default ctor.
1650 (reverse_view): Likewise.
1651 (elements_view): Likewise.
1652 * include/std/span (enable_view<span<_ElementType, _Extent>>):
1653 Define this partial specialization to true unconditionally.
1654 * include/std/version (__cpp_lib_ranges): Adjust value.
1655 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
1656 Don't attempt to default construct a back_insert_iterator.
1657 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
1658 Don't attempt to default construct a front_insert_iterator.
1659 * testsuite/24_iterators/insert_iterator/constexpr.cc:
1660 Don't attempt to default construct an insert_iterator.
1661 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc:
1662 Remove this test for default constructibility of ostream_iterator.
1663 * testsuite/std/ranges/97600.cc: Don't attempt to default
1664 construct a basic_istream_view.
1665 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc:
1667 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this.
1668 (test02): Adjust now that __box is copyable-box not
1671 * testsuite/std/ranges/p2325.cc: New test.
1672 * testsuite/std/ranges/single_view.cc (test06): New test.
1673 * testsuite/std/ranges/view.cc: Adjust now that view doesn't
1674 require default_initializable.
1676 2021-06-17 Jonathan Wakely <jwakely@redhat.com>
1679 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only
1680 define when is_constant_evaluated is available.
1681 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits):
1683 (__constant_string_p, __constant_array_p): Remove.
1684 (char_traits): Use is_constant_evaluated directly.
1685 * include/std/version (__cpp_lib_constexpr_char_traits)
1686 (__cpp_lib_constexpr_string): Only define when
1687 is_constant_evaluated is available.
1689 2021-06-17 Patrick Palka <ppalka@redhat.com>
1692 * include/std/ranges (__adaptor::_Partial): For the "simple"
1693 forwarding partial specializations, also require that
1694 the extra arguments are trivially copyable.
1695 * testsuite/std/ranges/adaptors/100577.cc (test04): New test.
1697 2021-06-17 Patrick Palka <ppalka@redhat.com>
1700 * include/std/ranges (__adaptor::_RangeAdaptor): Document the
1701 template form of _S_has_simple_extra_args.
1702 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template
1703 parameter pack. Try to treat _S_has_simple_extra_args as a
1704 variable template parameterized by _Args.
1705 (__adaptor::_Partial): Pass _Arg/_Args to the constraint
1706 __adaptor_has_simple_extra_args.
1707 (views::_Take::_S_has_simple_extra_args): Templatize according
1708 to the type of the extra argument.
1709 (views::_Drop::_S_has_simple_extra_args): Likewise.
1710 (views::_Split::_S_has_simple_extra_args): Define.
1711 * testsuite/std/ranges/adaptors/100577.cc (test01, test02):
1712 Adjust after changes to _S_has_simple_extra_args mechanism.
1715 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
1717 * include/bits/iterator_concepts.h (__decay_copy): Name type.
1719 2021-06-16 Jonathan Wakely <jwakely@redhat.com>
1721 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1722 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
1723 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1724 (ranges::empty, ranges::data, ranges::cdata): Remove final
1725 keywords and deleted operator& overloads.
1726 * testsuite/24_iterators/customization_points/iter_move.cc: Use
1727 new is_customization_point_object function.
1728 * testsuite/24_iterators/customization_points/iter_swap.cc:
1730 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
1732 * testsuite/std/ranges/access/begin.cc: Likewise.
1733 * testsuite/std/ranges/access/cbegin.cc: Likewise.
1734 * testsuite/std/ranges/access/cdata.cc: Likewise.
1735 * testsuite/std/ranges/access/cend.cc: Likewise.
1736 * testsuite/std/ranges/access/crbegin.cc: Likewise.
1737 * testsuite/std/ranges/access/crend.cc: Likewise.
1738 * testsuite/std/ranges/access/data.cc: Likewise.
1739 * testsuite/std/ranges/access/empty.cc: Likewise.
1740 * testsuite/std/ranges/access/end.cc: Likewise.
1741 * testsuite/std/ranges/access/rbegin.cc: Likewise.
1742 * testsuite/std/ranges/access/rend.cc: Likewise.
1743 * testsuite/std/ranges/access/size.cc: Likewise.
1744 * testsuite/std/ranges/access/ssize.cc: Likewise.
1745 * testsuite/util/testsuite_iterators.h
1746 (is_customization_point_object): New function.
1748 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
1750 * include/bits/ranges_base.h (ranges::begin, ranges::end)
1751 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend)
1752 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize)
1753 (ranges::empty, ranges::data, ranges::cdata): Make types final.
1754 Add deleted operator& overloads.
1755 (ranges::advance, ranges::distance, ranges::next, ranges::prev):
1757 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace
1758 ill-formed & expressions with using-declarations. Add checks for
1759 other function objects.
1761 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
1763 * include/bits/ranges_util.h (view_interface): Add noexcept to
1764 empty, operator bool, data and size members.
1765 (subrange): Add noexcept to constructors.
1766 * include/std/ranges (single_view, ref_view): Add noexcept to
1768 (views::single, views::all): Add noexcept.
1769 * testsuite/std/ranges/adaptors/all.cc: Check noexcept.
1770 * testsuite/std/ranges/single_view.cc: Likewise.
1772 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
1774 * include/bits/ranges_util.h (subrange): Add __size_type typedef
1775 and use it to simplify declarations.
1776 (subrange(i, s, n)): Remove assertion.
1777 * testsuite/std/ranges/subrange/constexpr.cc: New test.
1779 2021-06-15 Jonathan Wakely <jwakely@redhat.com>
1781 * include/bits/iterator_concepts.h (__cust_access::__decay_copy):
1782 Replace with function object.
1783 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use
1784 __decay_copy unqualified.
1785 * include/bits/ranges_base.h (__member_end, __adl_end):
1786 Likewise. Use __range_iter_t for type of ranges::begin.
1787 (__member_rend): Use correct value category for rbegin argument.
1788 (__member_data): Use __decay_copy unqualified.
1789 (__begin_data): Use __range_iter_t for type of ranges::begin.
1791 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1793 * include/bits/ranges_base.h (ranges::empty): Check whether
1794 conversion to bool can throw.
1795 * testsuite/std/ranges/access/empty.cc: Check for correct
1798 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1801 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only
1802 use the type if it's a reference.
1803 * testsuite/20_util/common_reference/100894.cc: New test.
1805 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1807 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
1808 Add dg-require-filesystem-ts directive.
1810 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1813 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...))
1814 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint
1816 * testsuite/20_util/any/cons/101034.cc: New test.
1818 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1820 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add
1821 -std=gnu++17 option.
1823 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1826 * libsupc++/compare (compare_partial_order_fallback): Add
1827 constraint using reversed parameter order, as per LWG 3465.
1828 * testsuite/18_support/comparisons/algorithms/fallback.cc:
1829 Adjust expected result.
1831 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1833 * libsupc++/compare (__decayed_same_as): New helper concept.
1834 (strong_order, weak_order, partial_order): Constrain with new
1835 concept instead of using static_assert.
1836 (compare_strong_order_fallback, compare_weak_order_fallback)
1837 (compare_partial_order_fallback): Likewise. Do not deduce return
1838 types. Remove redundant if-constexpr checks.
1839 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test.
1841 2021-06-14 Jonathan Wakely <jwakely@redhat.com>
1844 * include/std/tuple: Use reserved form of attribute name.
1845 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add
1846 check for no_unique_address.
1847 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
1849 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
1852 2021-06-11 Jonathan Wakely <jwakely@redhat.com>
1854 * include/bits/fs_path.h (operator==, operator<=>): Use new
1855 _S_compare function.
1856 (path::_S_compare): New function to call path::compare in a
1857 context where path::iterator is complete.
1858 * include/experimental/bits/fs_path.h (operator<, operator==):
1859 Define after path::iterator is complete.
1860 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New
1862 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
1865 2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
1867 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard
1868 test logic with constexpr check for is_always_lock_free.
1870 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
1873 * include/std/optional (optional::operator=(const optional<U>&)):
1874 Fix value category used in is_assignable check.
1875 * testsuite/20_util/optional/assignment/100982.cc: New test.
1877 2021-06-09 Jonathan Wakely <jwakely@redhat.com>
1879 * include/bits/allocator.h (allocator::is_always_equal): Deprecate.
1880 * include/bits/iterator_concepts.h (indirectly_readable_traits):
1881 Add LWG issue number to comment.
1882 * include/std/memory_resource (polymorphic_allocator::release):
1884 * testsuite/20_util/allocator/requirements/typedefs.cc: Add
1885 dg-warning for deprecation. Also check std::allocator<void>.
1887 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
1890 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait):
1891 Change parameter type from _Tp to _Tp*.
1892 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend
1893 coverage of types tested.
1895 2021-06-08 Thomas Rodgers <rodgert@appliantology.com>
1897 * include/std/barrier (__tree_barrier::_M_arrive): Remove
1898 unnecessary hasher instantiation.
1900 2021-06-08 Jonathan Wakely <jwakely@redhat.com>
1902 * include/experimental/propagate_const (swap): Constrain.
1903 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test.
1905 2021-06-07 Avi Kivity <avi@scylladb.com>
1908 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat):
1909 Add missing typename.
1911 2021-06-07 Jonathan Wakely <jwakely@redhat.com>
1914 * include/std/optional (operator<=>(const optional<T>& const U&)):
1915 Add missing constraint and add workaround for template
1917 * testsuite/20_util/optional/relops/three_way.cc: Check that
1918 type without equality comparison cannot be compared when wrapped
1921 2021-06-05 Jonathan Wakely <jwakely@redhat.com>
1924 * include/bits/ranges_base.h (_SSize): Return signed type.
1925 * testsuite/std/ranges/access/ssize.cc: Check with __int128.
1927 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
1929 * include/bits/ranges_base.h (_SSize): Return the result of
1930 ranges::size converted to the wider of make-signed-like-t<S> and
1931 ptrdiff_t, rather than the ranges different type.
1932 * testsuite/std/ranges/access/ssize.cc: Adjust expected result
1933 for an iota_view that uses an integer class type for its
1936 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
1939 * include/bits/ranges_base.h (__member_data): Use __decay_copy.
1940 * testsuite/std/ranges/access/data.cc: Add testcase from PR.
1942 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
1945 * include/bits/iterator_concepts.h (__detail::__decay_copy)
1946 (__detail::__member_begin, __detail::__adl_begin): Move to
1947 namespace ranges::__cust_access.
1948 (__detail::__ranges_begin): Likewise, and rename to __begin.
1949 Remove redundant static assertion.
1950 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd):
1951 Use lvalue in noexcept specifier.
1952 (__as_const): Add non-deduced parameter for value category.
1953 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of
1955 (__member_size, __adl_size, __member_empty, __size0_empty):
1956 (__eq_iter_empty, __adl_data): Use lvalue objects in
1958 (__sentinel_size): Likewise. Add check for conversion to
1960 (__member_data): Allow non-lvalue types to satisfy the concept,
1961 but use lvalue object in requirements.
1962 (_Size, _SSize): Remove forwarding to always use an lvalue.
1963 (_Data): Likewise. Add static assertion for arrays.
1964 * testsuite/std/ranges/access/cdata.cc: Adjust expected
1965 behaviour for rvalues. Add negative tests for ill-formed
1967 * testsuite/std/ranges/access/data.cc: Likewise.
1968 * testsuite/std/ranges/access/empty.cc: Adjust expected
1969 behaviour for rvalues.
1970 * testsuite/std/ranges/access/size.cc: Likewise.
1972 2021-06-04 Tim Adye <Tim.Adye@cern.ch>
1974 * include/std/any (any::_Manager::_S_access): New static
1975 function to access the contained value.
1976 (any::emplace, __any_caster): Use _S_access member of the
1979 2021-06-04 Jonathan Wakely <jwakely@redhat.com>
1981 * doc/xml/manual/status_cxx2020.xml:
1982 * doc/html/*: Regenerate.
1983 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup):
1985 * include/std/version (__cpp_lib_generic_unordered_lookup):
1987 * testsuite/23_containers/unordered_map/operations/1.cc: Check
1989 * testsuite/23_containers/unordered_set/operations/1.cc:
1992 2021-06-03 Patrick Palka <ppalka@redhat.com>
1994 * include/bits/ranges_algo.h (__detail::__can_reread_output):
1995 Factor out this concept from ...
1996 (__unique_copy_fn::operator()): ... here. Use the concept
1998 * testsuite/std/ranges/range.cc: Remove now ill-formed use
1999 of range_value_t on an output_range.
2000 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2001 Define value_type, pointer and reference member types to void.
2003 2021-06-03 Patrick Palka <ppalka@redhat.com>
2006 * include/std/ranges (_RangeAdaptorClosure): Document
2007 _S_has_simple_call_op mechanism.
2008 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
2009 (__closure_has_simple_call_op): New concept.
2010 (__adaptor_has_simple_extra_args): Likewise.
2011 (_Partial<_Adaptor, _Args...>): New partial specialization.
2012 (_Partial<_Adaptor, _Arg>): Likewise.
2013 (_Pipe<_Lhs, _Rhs>): Likewise.
2014 (views::_All::_S_has_simple_call_op): Define to true.
2015 (views::_Filter::_S_has_simple_extra_args): Likewise.
2016 (views::_Transform::_S_has_simple_extra_args): Likewise.
2017 (views::_Take::_S_has_simple_extra_args): Likewise.
2018 (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
2019 (views::_Drop::_S_has_simple_extra_args): Likewise.
2020 (views::_DropWhile::_S_has_simple_extra_args): Likewise.
2021 (views::_Join::_S_has_simple_call_op): Likewise.
2022 (views::_Split): Document why we don't define
2023 _S_has_simple_extra_args to true for this adaptor.
2024 (views::_Common::_S_has_simple_call_op): Define to true.
2025 (views::_Reverse::_S_has_simple_call_op): Likewise.
2026 (views::_Elements::_S_has_simple_call_op): Likewise.
2027 * testsuite/std/ranges/adaptors/100577.cc: New test.
2029 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2033 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
2034 Value-initialize subobject.
2035 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
2037 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
2040 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2043 * testsuite/23_containers/unordered_map/96088.cc: Adjust
2044 expected number of allocations.
2045 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2047 2021-06-02 Jonathan Wakely <jwakely@redhat.com>
2049 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation.
2050 * doc/xml/manual/status_cxxtr1.xml: Likewise.
2051 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
2052 * doc/html/*: Regenerate.
2054 2021-06-01 Patrick Palka <ppalka@redhat.com>
2057 * testsuite/23_containers/deque/allocator/default_init.cc,
2058 testsuite/23_containers/forward_list/allocator/default_init.cc,
2059 testsuite/23_containers/list/allocator/default_init.cc,
2060 testsuite/23_containers/map/allocator/default_init.cc,
2061 testsuite/23_containers/set/allocator/default_init.cc,
2062 testsuite/23_containers/vector/allocator/default_init.cc,
2063 testsuite/23_containers/vector/bool/allocator/default_init.cc:
2066 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2068 * testsuite/23_containers/unordered_map/96088.cc: Change
2069 effective target to c++17.
2070 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2072 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2074 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test
2075 isblank for C++11 and later.
2077 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2080 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)):
2081 Fix return value for no-op case.
2082 * testsuite/24_iterators/range_operations/advance.cc: Test
2083 return values of three-argument overload.
2085 2021-06-01 Jonathan Wakely <jwakely@redhat.com>
2088 * python/Makefile.am: Use archive name for printer hook if no
2089 dynamic library name is available.
2090 * python/Makefile.in: Regenerate.
2092 2021-05-30 Gerald Pfeifer <gerald@pfeifer.com>
2094 * doc/xml/manual/abi.xml: Remove dead reference to "Intel
2095 Compilers for Linux: Compatibility with GNU Compilers" article.
2096 * doc/html/manual/abi.html: Regenerate.
2098 2021-05-26 François Dumont <fdumont@gcc.gnu.org>
2100 * include/debug/formatter.h
2101 (_Error_formatter::_Parameter::_Named): New.
2102 (_Error_formatter::_Parameter::_Type): Inherit latter.
2103 (_Error_formatter::_Parameter::_M_integer): Likewise.
2104 (_Error_formatter::_Parameter::_M_string): Likewise.
2105 * src/c++11/debug.cc: Include <cstring>.
2106 (_Print_func_t): New.
2107 (print_raw(PrintContext&, const char*, ptrdiff_t)): New.
2108 (print_word): Use '%.*s' format in fprintf to render only expected number of chars.
2109 (pretty_print(PrintContext&, const char*, _Print_func_t)): New.
2110 (print_type): Rename in...
2111 (print_type_info): ...this. Use pretty_print.
2112 (print_address, print_integer): New.
2113 (print_named_name, print_iterator_constness, print_iterator_state): New.
2114 (print_iterator_seq_type): New.
2115 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New.
2116 (print_field): Use latters.
2117 (print_quoted_named_name, print_type_type, print_type, print_instance): New.
2118 (print_string(PrintContext&, const char*, const _Parameter*, size_t)):
2119 Change signature to...
2120 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)):
2121 ...this and adapt. Remove intermediate buffer to render input string.
2122 (print_string(PrintContext&, const char*, ptrdiff_t)): New.
2124 2021-05-26 Jonathan Wakely <jwakely@redhat.com>
2127 * include/bits/ranges_base.h (advance, distance, next, prev):
2128 Replace function templates with function objects.
2129 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
2130 Adjust for changes to function objects.
2131 * testsuite/std/ranges/adaptors/elements.cc: Add using
2132 declarations for names from namespace ranges.
2133 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
2134 * testsuite/24_iterators/range_operations/100768.cc: New test.
2136 2021-05-24 François Dumont <fdumont@gcc.gnu.org>
2139 * include/bits/hashtable_policy.h (_Select2nd): New.
2140 (_NodeBuilder<>): New.
2141 (_ReuseOrAllocNode<>::operator()): Use variadic template args.
2142 (_AllocNode<>::operator()): Likewise.
2143 * include/bits/hashtable.h
2144 (_Hashtable<>::__node_builder_t): New.
2145 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)):
2147 (_Hashtable<>::_S_forward_key): New.
2148 (_Hashtable<>::_M_insert): Use latter.
2149 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)):
2150 Instantiate node first, compute hash code second.
2151 * testsuite/23_containers/unordered_map/96088.cc: New test.
2152 * testsuite/23_containers/unordered_multimap/96088.cc: New test.
2153 * testsuite/23_containers/unordered_multiset/96088.cc: New test.
2154 * testsuite/23_containers/unordered_set/96088.cc: New test.
2155 * testsuite/util/replacement_memory_operators.h
2156 (counter::_M_increment): New.
2157 (counter::_M_decrement): New.
2158 (counter::reset()): New.
2160 2021-05-24 Patrick Palka <ppalka@redhat.com>
2163 * include/std/ranges (__detail::__non_propagating_cache): Move
2164 definition up to before that of _CachedPosition. Make base
2165 class _Optional_base protected instead of private. Add const
2166 overload for operator*.
2167 (__detail::_CachedPosition): Rewrite the partial specialization
2168 for forward ranges as a derived class of __non_propagating_cache.
2169 Remove the size constraint on the partial specialization for
2170 random access ranges. Add copy/move/copy-assignment/move-assignment
2171 members to the offset partial specialization for random
2172 access ranges that propagate the cached value but additionally
2173 invalidate it in the source object on move.
2174 * testsuite/std/ranges/adaptors/100479.cc: New test.
2176 2021-05-24 Jonathan Wakely <jwakely@redhat.com>
2178 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify
2179 call to ranges::next.
2180 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
2181 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
2183 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to
2186 2021-05-21 Patrick Palka <ppalka@redhat.com>
2189 * include/std/ranges (drop_while_view::begin): Assert the
2190 precondition added by LWG 3490.
2192 2021-05-21 Patrick Palka <ppalka@redhat.com>
2195 * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
2196 Split out this member function from ...
2197 (iota_view::_Sentinel::operator-): ... here, for sake of access
2199 * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
2201 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
2203 * include/bits/random.tcc (__representable_as_double)
2204 (__p1_representable_as_double): Add "" to static asserts.
2206 2021-05-20 Jonathan Wakely <jwakely@redhat.com>
2209 * include/bits/c++config (__glibcxx_assert_1): Rename to ...
2210 (__glibcxx_constexpr_assert): ... this.
2211 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert.
2212 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert
2213 or __glibcxx_assert_impl.
2214 (__glibcxx_assert_2): Remove
2215 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use
2216 __glibcxx_constexpr_assert instead of __glibcxx_assert_1.
2217 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
2218 Adjust expected error.
2219 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
2221 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
2224 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
2226 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
2228 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
2230 * testsuite/23_containers/span/back_neg.cc: Likewise.
2231 * testsuite/23_containers/span/front_neg.cc: Likewise.
2232 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
2234 2021-05-20 Patrick Palka <ppalka@redhat.com>
2237 * include/bits/stl_iterator.h (reverse_iterator::difference_type):
2238 In C++20 mode, define in terms of iter_difference_t as per P0896R4.
2239 (reverse_iterator::reference): Likewise, but with iter_reference_t.
2240 (reverse_iterator::value_type): Likewise, but with iter_value_t.
2241 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
2242 * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
2244 2021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com>
2247 * include/std/charconv (to_chars): Hide the overloads for
2248 floating-point types for 16 bit targets.
2249 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets.
2250 * testsuite/20_util/to_chars/double.cc: Run this test only on
2252 * testsuite/20_util/to_chars/float.cc: Likewise.
2253 * testsuite/20_util/to_chars/long_double.cc: Likewise.
2255 2021-05-18 Patrick Palka <ppalka@redhat.com>
2258 * include/std/ranges (elements_view::_Sentinel::operator-): Use
2259 _M_distance_from in the other operator- overload too.
2260 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
2262 2021-05-18 Thomas Schwinge <thomas@codesourcery.com>
2264 * testsuite/lib/prune.exp: Add note about 'dg-note'.
2266 2021-05-18 Patrick Palka <ppalka@redhat.com>
2269 * include/std/ranges (__box::__box): Use non-list-initialization
2270 in member initializer list of in-place constructor of the
2271 partial specialization for semiregular types.
2272 (__box::operator->): Use std::__addressof.
2273 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc
2275 * testsuite/std/ranges/single_view.cc (test04): New test.
2277 2021-05-18 Patrick Palka <ppalka@redhat.com>
2280 * include/std/ranges (reverse_view::_S_needs_cached_begin):
2281 Set to true if the underlying non-common random-access range
2282 doesn't have a sized sentinel.
2284 2021-05-18 Patrick Palka <ppalka@redhat.com>
2287 * include/std/ranges (elements_view::_Iterator): Also befriend
2289 (elements_view::_Sentinel::_M_equal): Templatize.
2290 (elements_view::_Sentinel::_M_distance_from): Split out from ...
2291 (elements_view::_Sentinel::operator-): ... here. Depend on
2292 _Base2 instead of _Base in the return type.
2293 * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
2296 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com>
2298 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop
2299 until value change observed.
2300 (__waiter_base::_M_laundered): New member.
2301 (__waiter_base::_M_notify): Check _M_laundered to determine
2302 whether to wake one or all.
2303 (__detail::__atomic_compare): Return true if call to
2304 __builtin_memcmp() == 0.
2305 (__waiter_base::_S_do_spin_v): Adjust predicate.
2306 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New
2309 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
2312 * include/experimental/bits/fs_path.h (__is_constructible_from):
2313 Test construction from a const lvalue, not an rvalue.
2314 * testsuite/27_io/filesystem/path/construct/100630.cc: New test.
2315 * testsuite/experimental/filesystem/path/construct/100630.cc:
2318 2021-05-17 Antony Polukhin <antoshkka@gmail.com>
2321 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>):
2322 Declare (but do not define) partial specialization.
2323 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test.
2325 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
2327 * include/std/thread (jthread::_S_create): Fix static assert
2329 * testsuite/30_threads/jthread/95989.cc: Re-enable test.
2330 * testsuite/30_threads/jthread/jthread.cc: Do not require
2331 pthread effective target.
2332 * testsuite/30_threads/jthread/2.cc: Moved to...
2333 * testsuite/30_threads/jthread/version.cc: ...here.
2335 2021-05-17 Jonathan Wakely <jwakely@redhat.com>
2337 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd.
2338 * doc/Makefile.in: Regenerate.
2339 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder
2341 * scripts/run_doxygen (print_usage): Always print to stdout and
2343 (fail): New function for exiting on error.
2344 (parse_options): Handle --latex_cmd. Do not treat --help the
2345 same as errors. Simplify handling of required arguments.
2347 2021-05-12 Jonathan Wakely <jwakely@redhat.com>
2349 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
2350 Increase dg-timeout-factor to 4. Fix -Wunused-parameter
2351 warnings. Replace bitwise AND with logical AND in loop
2353 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
2354 Replace bitwise AND with logical AND in loop condition.
2355 * testsuite/util/pstl/test_utils.h: Remove unused parameter
2358 2021-05-11 Patrick Palka <ppalka@redhat.com>
2360 * src/c++17/ryu/LOCAL_PATCHES: Update.
2361 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C".
2362 Remove declarations for never-defined functions.
2363 * testsuite/20_util/to_chars/4.cc: New test.
2365 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
2367 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98
2368 alternative for macro.
2369 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective
2371 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11
2374 2021-05-11 Jonathan Wakely <jwakely@redhat.com>
2376 * include/bits/allocator.h (allocator<void>) [C++20]: Add
2377 missing noexcept to constructor. Restore missing POCMA and
2378 is_always_equal_traits.
2379 [C++17]: Make construct and destroy members private and
2380 declare allocator_traits as a friend.
2381 * include/bits/memoryfwd.h (allocator_traits): Declare.
2382 * include/ext/malloc_allocator.h (malloc_allocator::allocate):
2383 Add nodiscard attribute. Add static assertion for LWG 3307.
2384 * include/ext/new_allocator.h (new_allocator::allocate): Add
2385 static assertion for LWG 3307.
2386 * testsuite/20_util/allocator/void.cc: Check that converting
2387 constructor is noexcept. Check for propagation traits and
2388 size_type and difference_type. Check that pointer and
2389 const_pointer are gone in C++20.
2391 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2393 * include/std/stop_token: Remove TODO comment.
2395 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2397 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)):
2398 Initialize a non-reference deleter from an rvalue, as per LWG
2400 (__shared_ptr::_UniqCompatible): Add missing constraint.
2401 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test.
2402 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check
2405 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2407 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove
2408 -std=gnu++17 from dg-options directive.
2409 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc:
2411 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc:
2413 * testsuite/17_intro/headers/c++2017/operator_names.cc:
2415 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise.
2416 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise.
2417 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
2419 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
2420 * testsuite/18_support/byte/81076.cc: Likewise.
2421 * testsuite/18_support/byte/global_neg.cc: Likewise.
2422 * testsuite/18_support/byte/ops.cc: Likewise.
2423 * testsuite/18_support/byte/requirements.cc: Likewise.
2424 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise.
2425 * testsuite/18_support/launder/1.cc: Likewise.
2426 * testsuite/18_support/launder/nodiscard.cc: Likewise.
2427 * testsuite/18_support/launder/requirements.cc: Likewise.
2428 * testsuite/18_support/launder/requirements_neg.cc: Likewise.
2429 * testsuite/18_support/new_aligned.cc: Likewise.
2430 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
2432 * testsuite/19_diagnostics/error_code/is_error_code_v.cc:
2434 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise.
2435 * testsuite/20_util/addressof/requirements/constexpr.cc:
2437 * testsuite/20_util/as_const/1.cc: Likewise.
2438 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise.
2439 * testsuite/20_util/bind/83427.cc: Likewise.
2440 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise.
2441 * testsuite/20_util/bool_constant/requirements.cc: Likewise.
2442 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
2444 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc:
2446 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
2447 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
2449 * testsuite/20_util/from_chars/1_neg.cc: Likewise.
2450 * testsuite/20_util/from_chars/requirements.cc: Likewise.
2451 * testsuite/20_util/function/91456.cc: Likewise.
2452 * testsuite/20_util/function/cons/deduction.cc: Likewise.
2453 * testsuite/20_util/function_objects/83607.cc: Likewise.
2454 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise.
2455 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise.
2456 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise.
2457 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise.
2458 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc:
2460 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc:
2462 * testsuite/20_util/has_unique_object_representations/value.cc:
2464 * testsuite/20_util/hash/nullptr.cc: Likewise.
2465 * testsuite/20_util/in_place/requirements.cc: Likewise.
2466 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise.
2467 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc:
2469 * testsuite/20_util/is_aggregate/requirements/typedefs.cc:
2471 * testsuite/20_util/is_aggregate/value.cc: Likewise.
2472 * testsuite/20_util/is_invocable/83395.cc: Likewise.
2473 * testsuite/20_util/is_invocable/91456.cc: Likewise.
2474 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc:
2476 * testsuite/20_util/is_invocable/requirements/typedefs.cc:
2478 * testsuite/20_util/is_invocable/value.cc: Likewise.
2479 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise.
2480 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise.
2481 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise.
2482 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc:
2484 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise.
2485 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
2486 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
2488 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
2490 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
2491 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
2493 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
2495 * testsuite/20_util/is_nothrow_swappable_with/value.cc:
2497 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
2499 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
2501 * testsuite/20_util/is_swappable/value.cc: Likewise.
2502 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
2504 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
2506 * testsuite/20_util/is_swappable_with/value.cc: Likewise.
2507 * testsuite/20_util/logical_traits/83134.cc: Likewise.
2508 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc:
2510 * testsuite/20_util/logical_traits/requirements/typedefs.cc:
2512 * testsuite/20_util/logical_traits/value.cc: Likewise.
2513 * testsuite/20_util/pair/cons/deduction.cc: Likewise.
2514 * testsuite/20_util/pair/swap_cxx17.cc: Likewise.
2515 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc:
2517 * testsuite/20_util/reference_wrapper/83427.cc: Likewise.
2518 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise.
2519 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
2520 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
2521 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
2523 * testsuite/20_util/time_point/arithmetic/constexpr.cc:
2525 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
2526 * testsuite/20_util/to_chars/3.cc: Likewise.
2527 * testsuite/20_util/to_chars/chars_format.cc: Likewise.
2528 * testsuite/20_util/to_chars/lwg3266.cc: Likewise.
2529 * testsuite/20_util/to_chars/requirements.cc: Likewise.
2530 * testsuite/20_util/tuple/78939.cc: Likewise.
2531 * testsuite/20_util/tuple/apply/1.cc: Likewise.
2532 * testsuite/20_util/tuple/apply/2.cc: Likewise.
2533 * testsuite/20_util/tuple/cons/deduction.cc: Likewise.
2534 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
2535 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise.
2536 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
2537 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise.
2538 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise.
2539 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc:
2541 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
2542 * testsuite/20_util/void_t/1.cc: Likewise.
2543 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
2544 * testsuite/24_iterators/container_access.cc: Likewise.
2545 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
2547 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc:
2549 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
2551 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc:
2553 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise.
2554 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
2556 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise.
2557 * testsuite/26_numerics/headers/cmath/special_functions_global.cc:
2559 * testsuite/26_numerics/lcm/1.cc: Likewise.
2560 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
2561 * testsuite/26_numerics/valarray/deduction.cc: Likewise.
2562 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc:
2564 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc:
2566 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc:
2568 * testsuite/27_io/types/4.cc: Likewise.
2569 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise.
2570 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise.
2571 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2573 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2575 * testsuite/20_util/function_objects/searchers.cc: Remove
2576 -std=gnu++17 from dg-options directive.
2577 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
2579 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
2581 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
2583 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc:
2585 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
2587 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
2589 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
2591 * testsuite/25_algorithms/clamp/1.cc: Likewise.
2592 * testsuite/25_algorithms/clamp/2.cc: Likewise.
2593 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
2594 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
2596 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc:
2598 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise.
2599 * testsuite/25_algorithms/for_each/for_each_n_debug.cc:
2601 * testsuite/25_algorithms/sample/1.cc: Likewise.
2602 * testsuite/25_algorithms/sample/2.cc: Likewise.
2603 * testsuite/25_algorithms/sample/3.cc: Likewise.
2604 * testsuite/25_algorithms/sample/81221.cc: Likewise.
2605 * testsuite/25_algorithms/search/searcher.cc: Likewise.
2606 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise.
2607 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise.
2608 * testsuite/26_numerics/reduce/1.cc: Likewise.
2609 * testsuite/26_numerics/reduce/2.cc: Likewise.
2610 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise.
2611 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise.
2612 * testsuite/26_numerics/transform_reduce/1.cc: Likewise.
2614 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2616 * testsuite/23_containers/array/cons/deduction.cc: Remove
2617 -std=gnu++17 from dg-options directive.
2618 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise.
2619 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
2621 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
2623 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
2625 * testsuite/23_containers/deque/cons/deduction.cc: Likewise.
2626 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
2628 * testsuite/23_containers/forward_list/cons/deduction.cc:
2630 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc:
2632 * testsuite/23_containers/list/cons/deduction.cc: Likewise.
2633 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc:
2635 * testsuite/23_containers/map/cons/deduction.cc: Likewise.
2636 * testsuite/23_containers/map/modifiers/extract.cc: Likewise.
2637 * testsuite/23_containers/map/modifiers/insert/83226.cc:
2639 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
2641 * testsuite/23_containers/map/modifiers/merge.cc: Likewise.
2642 * testsuite/23_containers/map/modifiers/try_emplace/1.cc:
2644 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
2645 * testsuite/23_containers/multimap/modifiers/extract.cc:
2647 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise.
2648 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
2649 * testsuite/23_containers/multiset/modifiers/extract.cc:
2651 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise.
2652 * testsuite/23_containers/priority_queue/deduction.cc: Likewise.
2653 * testsuite/23_containers/queue/deduction.cc: Likewise.
2654 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc:
2656 * testsuite/23_containers/set/cons/deduction.cc: Likewise.
2657 * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
2658 * testsuite/23_containers/set/modifiers/merge.cc: Likewise.
2659 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise.
2660 * testsuite/23_containers/stack/deduction.cc: Likewise.
2661 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc:
2663 * testsuite/23_containers/unordered_map/cons/deduction.cc:
2665 * testsuite/23_containers/unordered_map/modifiers/extract.cc:
2667 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc:
2669 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
2671 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc:
2673 * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
2675 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
2677 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
2679 * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
2681 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
2683 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
2685 * testsuite/23_containers/unordered_set/cons/deduction.cc:
2687 * testsuite/23_containers/unordered_set/modifiers/extract.cc:
2689 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
2691 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc:
2693 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
2694 * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
2695 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
2698 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2700 * testsuite/21_strings/basic_string/79162.cc: Remove
2701 -std=gnu++17 from dg-options directive.
2702 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise.
2703 * testsuite/21_strings/basic_string/cons/char/79162.cc:
2705 * testsuite/21_strings/basic_string/cons/char/86138.cc:
2707 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise.
2708 * testsuite/21_strings/basic_string/cons/char/deduction.cc:
2710 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc:
2712 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise.
2713 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc:
2715 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc:
2717 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise.
2718 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
2720 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc:
2722 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise.
2723 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
2724 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
2725 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc:
2727 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc:
2729 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc:
2731 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc:
2733 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc:
2735 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc:
2737 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc:
2739 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc:
2741 * testsuite/21_strings/basic_string/operations/compare/char/2.cc:
2743 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc:
2745 * testsuite/21_strings/basic_string/operations/data/char/2.cc:
2747 * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
2749 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc:
2751 * testsuite/21_strings/basic_string/operations/find/char/5.cc:
2753 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc:
2755 * testsuite/21_strings/basic_string/operators/char/5.cc:
2757 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc:
2759 * testsuite/21_strings/basic_string_view/capacity/1.cc:
2761 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc:
2763 * testsuite/21_strings/basic_string_view/cons/char/1.cc:
2765 * testsuite/21_strings/basic_string_view/cons/char/2.cc:
2767 * testsuite/21_strings/basic_string_view/cons/char/3.cc:
2769 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2771 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
2773 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc:
2775 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc:
2777 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2779 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
2781 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
2783 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
2785 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc:
2787 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
2789 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc:
2791 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc:
2793 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc:
2795 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
2797 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
2799 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
2801 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
2803 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc:
2805 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
2807 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc:
2809 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc:
2811 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
2813 * testsuite/21_strings/basic_string_view/include.cc: Likewise.
2814 * testsuite/21_strings/basic_string_view/inserters/94051.cc:
2816 * testsuite/21_strings/basic_string_view/inserters/char/1.cc:
2818 * testsuite/21_strings/basic_string_view/inserters/char/2.cc:
2820 * testsuite/21_strings/basic_string_view/inserters/char/3.cc:
2822 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc:
2824 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc:
2826 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc:
2828 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc:
2830 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc:
2832 * testsuite/21_strings/basic_string_view/literals/types.cc:
2834 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc:
2836 * testsuite/21_strings/basic_string_view/literals/values.cc:
2838 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2840 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2842 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2844 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2846 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
2848 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
2850 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
2852 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc:
2854 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
2856 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc:
2858 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc:
2860 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc:
2862 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc:
2864 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc:
2866 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
2868 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
2870 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc:
2872 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
2874 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2876 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2878 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
2880 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
2882 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
2884 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc:
2886 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc:
2888 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
2890 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
2892 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
2894 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc:
2896 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc:
2898 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc:
2900 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc:
2902 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc:
2904 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc:
2906 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc:
2908 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc:
2910 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc:
2912 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2914 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc:
2916 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2918 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc:
2920 * testsuite/21_strings/basic_string_view/operators/char/2.cc:
2922 * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
2924 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
2926 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
2928 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2930 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2932 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2934 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2936 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2938 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2940 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
2942 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2944 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc:
2946 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc:
2948 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise.
2949 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise.
2950 * testsuite/21_strings/char_traits/requirements/char/99181.cc:
2952 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
2954 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
2956 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17
2957 from dg-options directive.
2958 * testsuite/20_util/memory_resource/2.cc: Likewise.
2959 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise.
2960 * testsuite/20_util/monotonic_buffer_resource/93208.cc:
2962 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
2964 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc:
2966 * testsuite/20_util/monotonic_buffer_resource/release.cc:
2968 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc:
2970 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise.
2971 * testsuite/20_util/polymorphic_allocator/construct_pair.cc:
2973 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
2974 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise.
2975 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
2977 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
2979 * testsuite/20_util/synchronized_pool_resource/cons.cc:
2981 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
2983 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
2985 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
2987 * testsuite/20_util/synchronized_pool_resource/options.cc:
2989 * testsuite/20_util/synchronized_pool_resource/release.cc:
2991 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
2993 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc:
2995 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
2997 * testsuite/20_util/unsynchronized_pool_resource/cons.cc:
2999 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc:
3001 * testsuite/20_util/unsynchronized_pool_resource/options.cc:
3003 * testsuite/20_util/unsynchronized_pool_resource/release.cc:
3005 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3007 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3008 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc:
3010 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3012 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc:
3014 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3015 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
3016 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3017 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
3018 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3019 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc:
3021 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3022 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc:
3024 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3025 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
3026 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3028 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
3030 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3032 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
3034 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3036 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
3038 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3040 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
3042 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3043 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc:
3045 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3047 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3049 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from
3051 * testsuite/29_atomics/atomic/is_always_lock_free.cc:
3052 * testsuite/29_atomics/atomic/requirements/typedefs.cc:
3053 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc:
3054 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc:
3055 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise.
3056 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise.
3057 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise.
3058 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc:
3060 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
3062 * testsuite/30_threads/shared_lock/70766.cc: Likewise.
3063 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise.
3064 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc:
3066 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise.
3067 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc:
3069 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise.
3070 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise.
3071 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
3072 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise.
3074 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3076 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from
3077 dg-options directive.
3078 * testsuite/20_util/any/assign/2.cc: Likewise.
3079 * testsuite/20_util/any/assign/emplace.cc: Likewise.
3080 * testsuite/20_util/any/assign/exception.cc: Likewise.
3081 * testsuite/20_util/any/assign/self.cc: Likewise.
3082 * testsuite/20_util/any/cons/1.cc: Likewise.
3083 * testsuite/20_util/any/cons/2.cc: Likewise.
3084 * testsuite/20_util/any/cons/90415.cc: Likewise.
3085 * testsuite/20_util/any/cons/92156.cc: Likewise.
3086 * testsuite/20_util/any/cons/aligned.cc: Likewise.
3087 * testsuite/20_util/any/cons/explicit.cc: Likewise.
3088 * testsuite/20_util/any/cons/in_place.cc: Likewise.
3089 * testsuite/20_util/any/cons/nontrivial.cc: Likewise.
3090 * testsuite/20_util/any/make_any.cc: Likewise.
3091 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3092 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise.
3093 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise.
3094 * testsuite/20_util/any/misc/swap.cc: Likewise.
3095 * testsuite/20_util/any/modifiers/1.cc: Likewise.
3096 * testsuite/20_util/any/modifiers/83658.cc: Likewise.
3097 * testsuite/20_util/any/modifiers/92156.cc: Likewise.
3098 * testsuite/20_util/any/observers/type.cc: Likewise.
3099 * testsuite/20_util/any/requirements.cc: Likewise.
3100 * testsuite/20_util/any/typedefs.cc: Likewise.
3101 * testsuite/20_util/optional/77288.cc: Likewise.
3102 * testsuite/20_util/optional/84601.cc: Likewise.
3103 * testsuite/20_util/optional/assignment/1.cc: Likewise.
3104 * testsuite/20_util/optional/assignment/2.cc: Likewise.
3105 * testsuite/20_util/optional/assignment/3.cc: Likewise.
3106 * testsuite/20_util/optional/assignment/4.cc: Likewise.
3107 * testsuite/20_util/optional/assignment/5.cc: Likewise.
3108 * testsuite/20_util/optional/assignment/6.cc: Likewise.
3109 * testsuite/20_util/optional/assignment/7.cc: Likewise.
3110 * testsuite/20_util/optional/assignment/8.cc: Likewise.
3111 * testsuite/20_util/optional/assignment/9.cc: Likewise.
3112 * testsuite/20_util/optional/bad_access.cc: Likewise.
3113 * testsuite/20_util/optional/cons/77727.cc: Likewise.
3114 * testsuite/20_util/optional/cons/85642.cc: Likewise.
3115 * testsuite/20_util/optional/cons/copy.cc: Likewise.
3116 * testsuite/20_util/optional/cons/deduction.cc: Likewise.
3117 * testsuite/20_util/optional/cons/default.cc: Likewise.
3118 * testsuite/20_util/optional/cons/move.cc: Likewise.
3119 * testsuite/20_util/optional/cons/trivial.cc: Likewise.
3120 * testsuite/20_util/optional/cons/value.cc: Likewise.
3121 * testsuite/20_util/optional/cons/value_neg.cc: Likewise.
3122 * testsuite/20_util/optional/constexpr/cons/default.cc:
3124 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise.
3125 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise.
3126 * testsuite/20_util/optional/constexpr/make_optional.cc:
3128 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise.
3129 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise.
3130 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise.
3131 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise.
3132 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise.
3133 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise.
3134 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise.
3135 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise.
3136 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise.
3137 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise.
3138 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise.
3139 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise.
3140 * testsuite/20_util/optional/hash.cc: Likewise.
3141 * testsuite/20_util/optional/in_place.cc: Likewise.
3142 * testsuite/20_util/optional/make_optional.cc: Likewise.
3143 * testsuite/20_util/optional/nullopt.cc: Likewise.
3144 * testsuite/20_util/optional/observers/1.cc: Likewise.
3145 * testsuite/20_util/optional/observers/2.cc: Likewise.
3146 * testsuite/20_util/optional/observers/3.cc: Likewise.
3147 * testsuite/20_util/optional/observers/4.cc: Likewise.
3148 * testsuite/20_util/optional/observers/5.cc: Likewise.
3149 * testsuite/20_util/optional/observers/6.cc: Likewise.
3150 * testsuite/20_util/optional/relops/1.cc: Likewise.
3151 * testsuite/20_util/optional/relops/2.cc: Likewise.
3152 * testsuite/20_util/optional/relops/3.cc: Likewise.
3153 * testsuite/20_util/optional/relops/4.cc: Likewise.
3154 * testsuite/20_util/optional/relops/5.cc: Likewise.
3155 * testsuite/20_util/optional/relops/6.cc: Likewise.
3156 * testsuite/20_util/optional/relops/7.cc: Likewise.
3157 * testsuite/20_util/optional/requirements.cc: Likewise.
3158 * testsuite/20_util/optional/swap/1.cc: Likewise.
3159 * testsuite/20_util/optional/swap/2.cc: Likewise.
3160 * testsuite/20_util/optional/typedefs.cc: Likewise.
3161 * testsuite/20_util/variant/80165.cc: Likewise.
3162 * testsuite/20_util/variant/85183.cc: Likewise.
3163 * testsuite/20_util/variant/86874.cc: Likewise.
3164 * testsuite/20_util/variant/87431.cc: Likewise.
3165 * testsuite/20_util/variant/87619.cc: Likewise.
3166 * testsuite/20_util/variant/91807.cc: Likewise.
3167 * testsuite/20_util/variant/any.cc: Likewise.
3168 * testsuite/20_util/variant/compile.cc: Likewise.
3169 * testsuite/20_util/variant/deduction.cc: Likewise.
3170 * testsuite/20_util/variant/exception_safety.cc: Likewise.
3171 * testsuite/20_util/variant/hash.cc: Likewise.
3172 * testsuite/20_util/variant/index_type.cc: Likewise.
3173 * testsuite/20_util/variant/relops/89851.cc: Likewise.
3174 * testsuite/20_util/variant/relops/90008.cc: Likewise.
3175 * testsuite/20_util/variant/run.cc: Likewise.
3176 * testsuite/20_util/variant/visit.cc: Likewise.
3178 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3180 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove
3181 -std=gnu++17 from dg-options directive.
3182 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
3183 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
3184 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
3185 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
3186 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise.
3187 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise.
3188 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise.
3189 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc:
3191 * testsuite/27_io/filesystem/file_status/1.cc: Likewise.
3192 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise.
3193 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise.
3194 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise.
3195 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise.
3196 * testsuite/27_io/filesystem/iterators/directory_iterator.cc:
3198 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise.
3199 * testsuite/27_io/filesystem/iterators/recursion_pending.cc:
3201 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
3203 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise.
3204 * testsuite/27_io/filesystem/operations/all.cc: Likewise.
3205 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
3206 * testsuite/27_io/filesystem/operations/copy.cc: Likewise.
3207 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
3208 * testsuite/27_io/filesystem/operations/create_directories.cc:
3210 * testsuite/27_io/filesystem/operations/create_directory.cc:
3212 * testsuite/27_io/filesystem/operations/create_symlink.cc:
3214 * testsuite/27_io/filesystem/operations/current_path.cc:
3216 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise.
3217 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
3218 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise.
3219 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
3220 * testsuite/27_io/filesystem/operations/last_write_time.cc:
3222 * testsuite/27_io/filesystem/operations/permissions.cc:
3224 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
3225 * testsuite/27_io/filesystem/operations/read_symlink.cc:
3227 * testsuite/27_io/filesystem/operations/relative.cc: Likewise.
3228 * testsuite/27_io/filesystem/operations/remove.cc: Likewise.
3229 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise.
3230 * testsuite/27_io/filesystem/operations/rename.cc: Likewise.
3231 * testsuite/27_io/filesystem/operations/resize_file.cc:
3233 * testsuite/27_io/filesystem/operations/space.cc: Likewise.
3234 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
3235 * testsuite/27_io/filesystem/operations/symlink_status.cc:
3237 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
3239 * testsuite/27_io/filesystem/operations/weakly_canonical.cc:
3241 * testsuite/27_io/filesystem/path/append/path.cc: Likewise.
3242 * testsuite/27_io/filesystem/path/append/source.cc: Likewise.
3243 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise.
3244 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3245 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise.
3246 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
3247 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise.
3248 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise.
3249 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise.
3250 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise.
3251 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
3252 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise.
3253 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise.
3254 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise.
3255 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise.
3256 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise.
3257 * testsuite/27_io/filesystem/path/construct/default.cc:
3259 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise.
3260 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
3261 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise.
3262 * testsuite/27_io/filesystem/path/construct/string_view.cc:
3264 * testsuite/27_io/filesystem/path/decompose/extension.cc:
3266 * testsuite/27_io/filesystem/path/decompose/filename.cc:
3268 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
3270 * testsuite/27_io/filesystem/path/decompose/relative_path.cc:
3272 * testsuite/27_io/filesystem/path/decompose/root_directory.cc:
3274 * testsuite/27_io/filesystem/path/decompose/root_name.cc:
3276 * testsuite/27_io/filesystem/path/decompose/root_path.cc:
3278 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise.
3279 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
3281 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
3282 * testsuite/27_io/filesystem/path/generation/normal.cc:
3284 * testsuite/27_io/filesystem/path/generation/normal2.cc:
3286 * testsuite/27_io/filesystem/path/generation/proximate.cc:
3288 * testsuite/27_io/filesystem/path/generation/relative.cc:
3290 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise.
3291 * testsuite/27_io/filesystem/path/generic/generic_string.cc:
3293 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise.
3294 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise.
3295 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3296 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise.
3297 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise.
3298 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise.
3299 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc:
3301 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc:
3303 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
3305 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
3307 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise.
3308 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise.
3309 * testsuite/27_io/filesystem/path/native/string-char8_t.cc:
3311 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
3312 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise.
3313 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise.
3314 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3316 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
3317 * testsuite/27_io/filesystem/path/query/empty_neg.cc:
3318 * testsuite/27_io/filesystem/path/query/has_extension.cc:
3320 * testsuite/27_io/filesystem/path/query/has_filename.cc:
3322 * testsuite/27_io/filesystem/path/query/has_parent_path.cc:
3324 * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
3326 * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
3328 * testsuite/27_io/filesystem/path/query/has_root_name.cc:
3330 * testsuite/27_io/filesystem/path/query/has_root_path.cc:
3332 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
3333 * testsuite/27_io/filesystem/path/query/is_absolute.cc:
3335 * testsuite/27_io/filesystem/path/query/is_relative.cc:
3337 * testsuite/experimental/filesystem/path/construct/string_view.cc:
3340 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3342 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
3343 Remove -std=gnu++17 from dg-options.
3344 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
3346 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
3348 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
3350 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
3351 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
3353 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
3355 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
3357 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
3359 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
3361 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
3363 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
3365 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
3367 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
3369 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
3371 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
3373 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
3375 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
3377 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
3379 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
3381 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
3383 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
3385 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
3387 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
3389 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
3391 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
3393 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
3395 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
3397 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
3399 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3401 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
3403 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
3405 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
3407 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
3409 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
3411 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
3413 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
3415 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
3417 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3419 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
3421 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
3422 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
3424 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
3426 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
3428 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
3430 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
3432 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise.
3433 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise.
3434 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
3435 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
3436 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
3437 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
3438 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
3439 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
3441 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
3442 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise.
3443 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
3445 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
3448 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3450 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error
3451 for additional errors in C++20.
3452 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc:
3454 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
3455 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
3457 2021-05-10 Jonathan Wakely <jwakely@redhat.com>
3459 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid
3460 clash with std::any.
3462 2021-05-07 Jonathan Wakely <jwakely@redhat.com>
3464 * include/std/istream (__rvalue_stream_extraction_t): Replace
3465 use of __rval_streamable.
3466 * include/std/ostream (__rvalue_stream_insertion_t): Likewise.
3467 (__rval_streamable): Remove.
3468 (_Require_derived_from_ios_base, __derived_from_ios_base): New
3469 helper for checking constraints.
3470 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix
3471 reference to the wrong subclause of the standard.
3472 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
3474 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
3476 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
3478 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc:
3480 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned
3483 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3485 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward):
3486 Improve static_assert messages.
3487 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output.
3488 * testsuite/25_algorithms/copy_n/58982.cc: Likewise.
3490 2021-05-06 Patrick Palka <ppalka@redhat.com>
3492 * include/std/ranges (filter_view::_Iterator::base): Make the
3493 const& overload unconstrained and return a const reference as
3494 per LWG 3533. Make unconditionally noexcept.
3495 (transform_view::_Iterator::base): Likewise.
3496 (elements_view::_Iterator::base): Likewise.
3498 2021-05-06 Patrick Palka <ppalka@redhat.com>
3500 * include/bits/stl_iterator.h (move_iterator::base): Make the
3501 const& overload unconstrained and return a const reference as
3502 per LWG 3391. Make unconditionally noexcept.
3503 (counted_iterator::base): Likewise.
3504 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
3505 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
3506 has_member_base concept to decay-copy the result of base().
3508 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3510 * include/std/type_traits (remove_cvref_t): Define in terms of
3512 * testsuite/20_util/remove_cvref/value.cc: Check alias.
3514 2021-05-06 Jonathan Wakely <jwakely@redhat.com>
3517 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3519 * include/std/charconv (__from_chars_alnum): Pass unsigned
3520 char to std::isdigit.
3522 2021-05-05 Patrick Palka <ppalka@redhat.com>
3524 * include/bits/ranges_util.h (enable_borrowed_range<subrange>):
3525 Remove constraints on this partial specialization.
3526 * include/std/ranges (enable_borrowed_range<iota_view>):
3529 2021-05-05 Patrick Palka <ppalka@redhat.com>
3531 * include/std/ranges (transform_view::_Iterator::iter_swap):
3532 Remove as per LWG 3520.
3533 (join_view::_Iterator::iter_swap): Add indirectly_swappable
3534 constraint as per LWG 3517.
3536 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3538 * testsuite/20_util/function_objects/invoke/3.cc: Check feature
3540 * testsuite/20_util/function_objects/invoke/version.cc: New test.
3542 2021-05-05 Jonathan Wakely <jwakely@redhat.com>
3544 * include/std/charconv (__from_chars_alnum): Pass unsigned
3545 char to std::isdigit.
3547 2021-05-05 Corentin Gay <gay@adacore.com>
3549 * acinclude.m4: Add VxWorks-specific case for the
3550 configuration of ctypes.
3551 * configure: Regenerate.
3552 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific
3554 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+.
3555 * config/os/vxworks/ctype_configure_char.cc: Likewise.
3556 * config/os/vxworks/ctype_inline.h: Likewise.
3557 * testsuite/28_regex/traits/char/isctype.cc: Defines
3558 NEWLINE_IN_CLASS_BLANK if the target is VxWorks.
3559 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise.
3561 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3563 * include/std/future (promise::set_value): Check for existence
3564 of shared state before dereferncing it.
3565 (promise::set_exception, promise::set_value_at_thread_exit)
3566 (promise::set_exception_at_thread_exit): Likewise.
3567 (promise<R&>::set_value, promise<R&>::set_exception)
3568 (promise<R&>::set_value_at_thread_exit)
3569 (promise<R&>::set_exception_at_thread_exit): Likewise.
3570 (promise<void>::set_value, promise<void>::set_exception)
3571 (promise<void>::set_value_at_thread_exit)
3572 (promise<void>::set_exception_at_thread_exit): Likewise.
3573 * testsuite/30_threads/promise/members/at_thread_exit2.cc:
3574 Remove unused variable.
3576 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3578 * include/bits/basic_string.h (basic_string(const CharT*, const A&)):
3579 Do not do arithmetic on null pointer.
3581 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3583 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
3584 (find_key_pointer(key_const_reference, false_type))
3585 (find_key_pointer(key_const_reference, true_type)): Do not
3586 dereference null pointer.
3588 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3590 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid
3592 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add
3593 non-zero value to null pointer.
3594 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
3595 Use past-the-end iterator for result.
3596 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
3597 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
3599 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3602 * include/std/variant (__get_t): New alias template yielding the
3603 return type of std::get<N> on a variant.
3604 (__visit_result_t): New alias template yielding the result of
3606 (__same_types): Move into namespace __detail::__variant.
3607 (__check_visitor_results): Likewise. Use __invoke_result_t and
3609 (__check_visitor_result): Remove.
3610 (visit): Use __visit_result_t for return type.
3611 * testsuite/20_util/variant/100384.cc: New test.
3613 2021-05-04 Jonathan Wakely <jwakely@redhat.com>
3615 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove
3616 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128.
3617 * config.h.in: Regenerate.
3618 * configure: Regenerate.
3619 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128.
3620 * include/bits/random.h (_Select_uint_least_t<s, 1>):
3621 Use __SIZEOF_INT128__ to decide whether to use __int128.
3622 * include/std/charconv (__to_chars_unsigned_type): Likewise.
3624 2021-05-03 Gerald Pfeifer <gerald@pfeifer.com>
3626 * doc/xml/manual/ctype.xml: Move unix.org reference to https.
3627 * doc/html/manual/facets.html: Regenerate.
3629 2021-04-30 Patrick Palka <ppalka@redhat.com>
3631 * include/std/ranges (__detail::__non_propating_cache): Define
3633 (join_view): Remove constraints on the value and reference types
3634 of the wrapped iterator type as per P2328.
3635 (join_view::_Iterator::_M_satisfy): Adjust as per P2328.
3636 (join_view::_Iterator::operator++): Likewise.
3637 (join_view::_M_inner): Use __non_propating_cache as per P2328.
3638 Remove now-redundant use of __maybe_present_t.
3639 * testsuite/std/ranges/adaptors/join.cc: Include <array>.
3642 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3644 * include/bits/basic_string.h (__cpp_lib_constexpr_string):
3645 Only define for C++17 and later.
3646 * include/std/version (__cpp_lib_semaphore): Fix condition
3647 to match the one in <semaphore>.
3649 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3651 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete.
3652 * config.h.in: Regenerate.
3653 * configure: Regenerate.
3654 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T.
3655 * include/bits/postypes.h: Remove include of <stdint.h> and
3656 definition/undefinition of the __STDC_LIMIT_MACROS and
3657 __STDC_CONSTANT_MACROS macros.
3658 (streamoff): Use __INT64_TYPE__ if defined.
3660 2021-04-30 Patrick Palka <ppalka@redhat.com>
3662 * include/std/ranges (split_view::_InnerIter::operator++):
3663 Depend on _Base instead of _Vp directly, as per LWG 3532.
3665 2021-04-30 Patrick Palka <ppalka@redhat.com>
3667 * include/bits/ranges_util.h (subrange::subrange): Avoid
3668 list-initialization in delegating constructor.
3669 * include/std/ranges (single_view): Replace implicit guide
3670 with explicit deduction guide that decays its argument.
3671 (_Single::operator()): Avoid CTAD when constructing the
3673 (_Iota::operator()): Avoid list-initialization.
3674 (__detail::__can_filter_view, _Filter::operator()): Likewise.
3675 (__detail::__can_transform_view, _Transform::operator()): Likewise.
3676 (take_view::begin): Likewise.
3677 (__detail::__can_take_view, _Take::operator()): Likewise.
3678 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise.
3679 (__detail::__can_drop_view, _Drop::operator()): Likewise.
3680 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise.
3681 (split_view::split_view): Use views::single when initializing
3683 (__detail::__can_split_view, _Split::operator()): Avoid
3684 list-initialization.
3685 (_Counted::operator()): Likewise.
3686 * testsuite/std/ranges/p2367.cc: New test.
3688 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3691 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use
3693 * include/bits/basic_string.tcc (basic_string::swap)
3694 (basic_string::assign): Likewise.
3695 * include/bits/deque.tcc (deque::operator=(const deque&)):
3697 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)):
3699 * include/bits/vector.tcc (vector::operator=(const vector&)):
3702 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3704 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as
3706 * include/std/ostream (operator<<(Ostream&&, const x&)):
3708 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
3709 Adjust dg-error pattern.
3710 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
3712 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define
3713 is_extractable trait to replace std::__is_extractable. Make it
3714 work with rvalue streams as well as lvalues, to replace f() and
3715 g() helper functions.
3716 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc:
3718 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
3719 Define is_insertable trait to replace std::__is_insertable. Make
3720 it work with rvalue streams as well as lvalues, to replace f()
3721 and g() helper functions.
3722 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
3724 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional
3725 errors from new constraints.
3726 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks,
3727 which are no longer expected to compile.
3728 * testsuite/27_io/rvalue_streams.cc: Adjust existing test.
3729 Verify LWG 1203 changes.
3731 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3734 * include/experimental/socket (__basic_socket_impl::set_option)
3735 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]:
3736 Just set error code.
3737 * testsuite/experimental/net/socket/socket_base.cc: CHeck
3738 for <sys/socket.h> not <socket.h>.
3740 2021-04-30 Jonathan Wakely <jwakely@redhat.com>
3745 * testsuite/experimental/net/internet/address/v4/comparisons.cc:
3746 Use new effective-target keyword.
3747 * testsuite/experimental/net/internet/address/v4/cons.cc:
3749 * testsuite/experimental/net/internet/address/v4/creation.cc:
3751 * testsuite/experimental/net/internet/address/v4/members.cc:
3753 * testsuite/experimental/net/internet/address/v6/members.cc:
3755 * testsuite/experimental/net/internet/resolver/base.cc:
3757 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
3759 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
3761 * testsuite/experimental/net/internet/socket/opt.cc:
3763 * testsuite/experimental/net/internet/tcp.cc:
3765 * testsuite/experimental/net/internet/udp.cc:
3767 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip):
3768 New proc to check net_ts_ip et.
3770 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
3773 * testsuite/20_util/pair/requirements/structural.cc: New test.
3775 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
3777 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add
3778 new definitions for constructors and assignment operators using
3779 concepts for constraints.
3780 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and
3782 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust
3783 expected error messages to also match C++20 errors.
3785 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
3788 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair):
3789 Combine and replace with ...
3790 (_PCC::_DeprConsPair): New SFINAE helper function.
3791 (pair): Merge preprocessor blocks so that all C++03 members
3792 are defined together at the end.
3793 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)):
3794 Replace _T1 and _T2 parameters with __null_ptr_constant and
3796 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0.
3797 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise.
3798 * testsuite/20_util/pair/cons/99957.cc: New test.
3800 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
3802 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define.
3803 * include/std/version (__cpp_lib_constexpr_string): Define.
3804 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
3805 Check for __cpp_lib_constexpr_string.
3806 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
3808 * testsuite/21_strings/char_traits/requirements/version.cc: New test.
3810 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
3812 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about
3813 dealing with errors. Use '@' to prevent shell command being
3815 * doc/Makefile.in: Regenerate.
3817 2021-04-28 Jonathan Wakely <jwakely@redhat.com>
3820 * include/bits/std_thread.h (thread::hardware_concurrency): Add
3821 missing noexcept to inline definition for non-gthreads targets.
3823 2021-04-28 Patrick Palka <ppalka@redhat.com>
3829 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give
3830 the __value_comp lambda an explicit bool return type.
3831 (__is_permutation_fn::operator()): Give the __proj_scan local
3832 variable auto&& return type. Give the __comp_scan lambda an
3833 explicit bool return type.
3834 (__remove_fn::operator()): Give the __pred lambda an explicit
3836 (__partition_fn::operator()): Don't std::move __first twice
3837 when returning an empty subrange.
3838 (__min_fn::operator()): Don't std::move __comp.
3839 (__max_fn::operator()): Likewise.
3840 (__minmax_fn::operator()): Likewise.
3842 2021-04-27 Patrick Palka <ppalka@redhat.com>
3845 * include/std/ranges (join_view::_Iterator::operator++): Correct
3846 the return type of the lambda to avoid returning a copy of
3847 _M_parent->_M_inner.
3848 * testsuite/std/ranges/adaptors/join.cc (test10): New test.
3850 2021-04-27 Jakub Jelinek <jakub@redhat.com>
3853 2021-04-22 Jakub Jelinek <jakub@redhat.com>
3856 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
3858 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
3861 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
3863 * include/experimental/internet (address_v6::bytes_type): Adjust
3865 (basic_endpoint): Define _M_is_v6() to put all checks for
3866 AF_INET6 in one place.
3867 (basic_endpoint::resize): Simplify.
3868 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept.
3869 (operator!=(const tcp&, const tcp&)): Likewise.
3870 (operator==(const udp&, const udp&)): Likewise.
3871 (operator!=(const udp&, const udp&)): Likewise.
3872 * testsuite/experimental/net/internet/tcp.cc: New test.
3873 * testsuite/experimental/net/internet/udp.cc: New test.
3875 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
3878 * include/experimental/internet (resolver_errc, resolver_category())
3879 (make_error_code, make_error_condition): Define unconditionally,
3880 only make enumerators and use of gai_strerror depend on the
3881 availability of <netdb.h>.
3882 (address_v4::to_string): Use correct constant for string length.
3883 (address_v4::to_string, address_v6::to_string): Define
3884 unconditionally, throw if unsupported.
3885 (make_address_v4, make_address_v6): Define unconditionally.
3886 Return an error if unsupported.
3887 (tcp, udp, v6_only, unicast::hops, multicast::*): Define
3889 * testsuite/experimental/net/internet/socket/opt.cc: Check for
3890 <netinet/in.h> and <netinet/tcp.h> before using types from
3893 2021-04-27 Jonathan Wakely <jwakely@redhat.com>
3896 * include/experimental/internet (resolver_base::flags):
3897 Define overloaded operators as hidden friends.
3898 * include/experimental/socket (socket_base::message_flags):
3901 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
3903 * include/experimental/internet (tcp::no_delay, v6_only)
3904 (unicast::hops, multicast::hops, multicast::enable_loopback):
3905 Change access of base class and static data members. Add
3906 using-declaration for __socket_crtp::operator=(_Tp).
3907 (multicast::__mcastopt): New type.
3908 (multicast::join_group, multicast::leave_group): Derive from
3909 __mcastopt for common implementation.
3910 * include/experimental/socket: Add comment.
3911 * testsuite/experimental/net/internet/socket/opt.cc: New test.
3912 * testsuite/experimental/net/socket/socket_base.cc: Check for
3913 protected constructor/destructor of socket_base. Check for
3914 explicit constructors of socket option classes.
3916 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
3918 * include/experimental/bits/net.h (__socket_base): Add
3919 bool template parameter to allow BooleanSocketOption and
3920 IntegerSocketOption to have different __socket_base<int>
3922 (__socket_base<bool>): Adjust base class.
3923 (__socket_base<int>): Add partial specialization.
3924 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier.
3925 * include/experimental/socket (socket_base::broadcast)
3926 (socket_base::debug, socket_base::do_not_route)
3927 (socket_base::keep_alive, socket_base::linger)
3928 (socket_base::out_of_band_inline)
3929 (socket_base::receive_buffer_size)
3930 (socket_base::receive_low_watermark)
3931 (socket_base::reuse_address, socket_base::send_buffer_size)
3932 (socket_base::send_low_watermark): Add using-declaration for
3933 __socket_crtp::operator=(_Tp).
3934 * testsuite/experimental/net/socket/socket_base.cc: Check
3935 properties of socket option types.
3937 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
3939 * include/experimental/internet (resolver_base::flags): Remove
3940 enumerators. Initialize constants directly with desired values.
3941 Make all operators constexpr and noexcept.
3942 * testsuite/experimental/net/internet/resolver/base.cc: Use
3943 __gnu_test::test_bitmask_values for bitmask type. Check
3944 construction and destruction is protected.
3946 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
3948 * include/bits/semaphore_base.h: Include <exception> and <errno.h>.
3950 2021-04-26 Jonathan Wakely <jwakely@redhat.com>
3953 * include/experimental/internet (net::ip::make_error_code)
3954 (net::ip::make_error_condition, net::ip::make_network_v4)
3955 (net::ip::operator==(const udp&, const udp&)): Add 'inline'.
3957 2021-04-24 David Edelsohn <dje.gcc@gmail.com>
3959 * testsuite/lib/dg-options.exp (atomic_link_flags): New.
3960 (add_options_for_libatomic): Use atomic_link_flags.
3962 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
3965 * include/experimental/io_context (io_context): Define
3966 dummy_pollfd type so that most member functions still compile
3967 without <poll.h> and struct pollfd.
3969 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
3971 * include/experimental/io_context (io_context::async_wait): Add
3973 * include/experimental/socket (basic_socket::async_connect):
3974 Cast wait_type constant to int.
3975 (basic_datagram_socket::async_receive): Likewise.
3976 (basic_datagram_socket::async_receive_from): Likewise.
3977 (basic_datagram_socket::async_send): Likewise.
3978 (basic_datagram_socket::async_send_to): Likewise.
3979 (basic_stream_socket::async_receive): Likewise.
3980 (basic_stream_socket::async_send): Likewise. Use io_context
3981 parameter directly, instead of via an executor.
3982 (basic_socket_acceptor::async_accept): Likewise.
3984 2021-04-23 Jonathan Wakely <jwakely@redhat.com>
3986 * include/experimental/socket (socket_base::shutdown_type):
3987 (socket_base::wait_type, socket_base::message_flags):
3988 Remove enumerators. Initialize constants directly with desired
3990 (socket_base::message_flags): Make all operators constexpr and
3992 * testsuite/util/testsuite_common_types.h (test_bitmask_values):
3994 * testsuite/experimental/net/socket/socket_base.cc: New test.
3996 2021-04-22 David Edelsohn <dje.gcc@gmail.com>
3998 * config/os/aix/atomicity.h: Delete.
4000 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4002 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
4003 Handle system_clock as well as steady_clock.
4004 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
4005 * testsuite/30_threads/semaphore/try_acquire_until.cc:
4008 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4010 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add
4011 options for libatomic.
4013 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4015 * config/os/gnu-linux/os_defines.h: Fix type in comment.
4017 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4020 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp
4021 is not an array type.
4022 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise.
4023 * testsuite/20_util/shared_ptr/creation/99006.cc: New test.
4025 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com>
4027 * include/bits/atomic_wait.h: Always notify waiters in the
4028 case of 'bare' address notification.
4030 2021-04-22 Jakub Jelinek <jakub@redhat.com>
4033 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for
4035 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for
4038 2021-04-22 Jonathan Wakely <jwakely@redhat.com>
4041 * include/bits/semaphore_base.h: Remove #error.
4042 * include/std/semaphore: Do not define anything unless one of
4043 the implementations is available.
4045 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
4047 * include/bits/semaphore_base.h: Always reload __old in
4048 __atomic_semaphore::_S_do_try_acquire().
4049 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4052 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com>
4053 Jonathan Wakely <jwakely@redhat.com>
4056 * python/Makefile.am: Install libstdc++*-gdb.py more robustly.
4057 * python/Makefile.in: Regenerate.
4059 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com>
4061 * include/bits/semaphore_base.h: Add missing _M_try_acquire()
4062 member to __platform_wait.
4064 2021-04-21 Jonathan Wakely <jwakely@redhat.com>
4066 * include/std/latch: Replace tab characters in license text.
4067 * include/std/semaphore: Likewise.
4069 2021-04-21 Jakub Jelinek <jakub@redhat.com>
4072 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE
4073 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE.
4074 * configure: Regenerated.
4075 * config.h.in: Regenerated.
4077 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
4079 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable
4080 test for targets not using futexes for semaphores.
4081 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
4082 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
4083 Disable for all targets.
4085 2021-04-20 Thomas Rodgers <trodgers@redhat.com>
4087 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header.
4088 * include/Makefile.in: Regenerate.
4089 * include/bits/this_thread_sleep.h: New file.
4090 * include/bits/atomic_base.h: Adjust all calls
4091 to __atomic_wait/__atomic_notify for new call signatures.
4092 * include/bits/atomic_timed_wait.h: Extensive rewrite.
4093 * include/bits/atomic_wait.h: Likewise.
4094 * include/bits/semaphore_base.h: Adjust all calls
4095 to __atomic_wait/__atomic_notify for new call signatures.
4096 * include/std/atomic: Likewise.
4097 * include/std/barrier: Likewise.
4098 * include/std/latch: Likewise.
4099 * include/std/semaphore: Likewise.
4100 * include/std/thread (this_thread::sleep_for)
4101 (this_thread::sleep_until): Move to new header.
4102 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify
4104 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
4105 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
4106 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
4107 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
4108 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
4109 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise.
4111 2021-04-20 Patrick Palka <ppalka@redhat.com>
4114 * include/bits/stl_iterator.h (__detail::__move_iter_cat):
4116 (move_iterator): Derive from the above in C++20 in order to
4117 conditionally define iterator_category as per P2259.
4118 (move_iterator::__base_cat): No longer used, so remove.
4119 (move_iterator::iterator_category): Remove in C++20.
4120 (__detail::__common_iter_use_postfix_proxy): Define.
4121 (common_iterator::_Proxy): Rename to ...
4122 (common_iterator:__arrow_proxy): ... this.
4123 (common_iterator::__postfix_proxy): Define as per P2259.
4124 (common_iterator::operator->): Adjust.
4125 (common_iterator::operator++): Adjust as per P2259.
4126 (iterator_traits<common_iterator>::_S_iter_cat): Define.
4127 (iterator_traits<common_iterator>::iterator_category): Change as
4129 (__detail::__counted_iter_value_type): Define.
4130 (__detail::__counted_iter_concept): Define.
4131 (__detail::__counted_iter_cat): Define.
4132 (counted_iterator): Derive from the above three classes in order
4133 to conditionally define value_type, iterator_concept and
4134 iterator category respectively as per P2259.
4135 (counted_iterator::operator->): Define as per P2259.
4136 (incrementable_traits<counted_iterator>): Remove as per P2259.
4137 (iterator_traits<counted_iterator>): Adjust as per P2259.
4138 * include/std/ranges (__detail::__iota_view_iter_cat): Define.
4139 (iota_view::_Iterator): Derive from the above in order to
4140 conditionally define iterator_category as per P2259.
4141 (iota_view::_S_iter_cat): Rename to ...
4142 (iota_view::_S_iter_concept): ... this.
4143 (iota_view::iterator_concept): Use it to apply LWG 3291 changes.
4144 (iota_view::iterator_category): Remove.
4145 (__detail::__filter_view_iter_cat): Define.
4146 (filter_view::_Iterator): Derive from the above in order to
4147 conditionally define iterator_category as per P2259.
4148 (filter_view::_Iterator): Move to struct __filter_view_iter_cat.
4149 (filter_view::_Iterator::iterator_category): Remove.
4150 (transform_view::_Base): Define.
4151 (transform_view::__iter_cat): Define.
4152 (transform_view::_Iterator): Derive from the above in order to
4153 conditionally define iterator_category as per P2259.
4154 (transform_view::_Iterator::_Base): Just alias
4155 transform_view::_Base.
4156 (transform_view::_Iterator::_S_iter_cat): Move to struct
4157 transform_view::__iter_cat.
4158 (transform_view::_Iterator::iterator_category): Remove.
4159 (transform_view::_Sentinel::_Base): Just alias
4160 transform_view::_Base.
4161 (join_view::_Base): Define.
4162 (join_view::_Outer_iter): Define.
4163 (join_view::_Inner_iter): Define.
4164 (join_view::_S_ref_is_glvalue): Define.
4165 (join_view::__iter_cat): Define.
4166 (join_view::_Iterator): Derive from it in order to conditionally
4167 define iterator_category as per P2259.
4168 (join_view::_Iterator::_Base): Just alias join_view::_Base.
4169 (join_view::_Iterator::_S_ref_is_glvalue): Just alias
4170 join_view::_S_ref_is_glvalue.
4171 (join_view::_Iterator::_S_iter_cat): Move to struct
4172 transform_view::__iter_cat.
4173 (join_view::_Iterator::_Outer_iter): Just alias
4174 join_view::_Outer_iter.
4175 (join_view::_Iterator::_Inner_iter): Just alias
4176 join_view::_Inner_iter.
4177 (join_view::_Iterator::iterator_category): Remove.
4178 (join_view::_Sentinel::_Base): Just alias join_view::_Base.
4179 (__detail::__split_view_outer_iter_cat): Define.
4180 (__detail::__split_view_inner_iter_cat): Define.
4181 (split_view::_Base): Define.
4182 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat
4183 in order to conditionally define iterator_category as per P2259.
4184 (split_view::_Outer_iter::iterator_category): Remove.
4185 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat
4186 in order to conditionally define iterator_category as per P2259.
4187 (split_view::_Inner_iter::_S_iter_cat): Move to
4188 __split_view_inner_iter_cat.
4189 (split_view::_Inner_iter::iterator_category): Remove.
4190 (elements_view::_Base): Define.
4191 (elements_view::__iter_cat): Define.
4192 (elements_view::_Iterator): Derive from the above in order to
4193 conditionall define iterator_category as per P2259.
4194 (elements_view::_Iterator::_Base): Just alias
4195 elements_view::_Base.
4196 (elements_view::_Iterator::_S_iter_concept)
4197 (elements_view::_Iterator::iterator_concept): Define as per
4199 (elements_view::_Iterator::iterator_category): Remove.
4200 (elements_view::_Sentinel::_Base): Just alias
4201 elements_view::_Base.
4202 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
4203 Adjust constraints on iterator_traits<counted_iterator>.
4204 * testsuite/std/ranges/p2259.cc: New test.
4206 2021-04-20 Jonathan Wakely <jwakely@redhat.com>
4209 * include/std/charconv (__cpp_lib_to_chars): Define
4211 * include/std/version (__cpp_lib_to_chars): Likewise..
4212 * testsuite/20_util/from_chars/4.cc: Only check feature test
4213 macro, not _GLIBCXX_HAVE_USELOCALE.
4214 * testsuite/20_util/from_chars/5.cc: Likewise.
4215 * testsuite/20_util/from_chars/6.cc: Likewise.
4216 * testsuite/20_util/to_chars/long_double.cc: Likewise.
4218 2021-04-20 Jakub Jelinek <jakub@redhat.com>
4220 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol
4221 versions with _IEEE128_ substring are found, set ieee_version_found
4222 to true. Ignore missing symbols with _IEEE128_ in version name if
4223 !ieee_version_found. Use i->first as version_name instead of
4224 i->second.version_name if the latter is empty.
4225 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4227 2021-04-19 H.J. Lu <hjl.tools@gmail.com>
4229 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
4232 2021-04-17 Jakub Jelinek <jakub@redhat.com>
4234 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
4235 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
4237 2021-04-17 Jakub Jelinek <jakub@redhat.com>
4239 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
4240 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
4241 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update.
4242 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
4243 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
4244 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4246 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
4248 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also
4249 add libatomic options for 32-bit sparc*-*-linux-gnu.
4251 2021-04-15 Jonathan Wakely <jwakely@redhat.com>
4254 * libsupc++/Makefile.am: Add atomicity.cc here.
4255 * src/c++98/Makefile.am: Remove it from here.
4256 * libsupc++/Makefile.in: Regenerate.
4257 * src/c++98/Makefile.in: Regenerate.
4258 * testsuite/18_support/exception_ptr/96657.cc: New test.
4260 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
4263 * include/std/bit: Only include <ext/numeric_traits.h> for
4264 hosted build, use <limits> otherwise.
4266 2021-04-13 Jonathan Wakely <jwakely@redhat.com>
4268 * doc/xml/manual/backwards_compatibility.xml: Remove porting
4269 notes for libg++ and libstdc++-v2, and bibliography.
4270 * doc/html/*: Regenerated.
4272 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
4275 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair):
4276 Remove helper concept.
4277 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove
4278 deduction guides, as per LWG 3404.
4279 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class
4280 template argument deduction fails.
4282 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
4284 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
4285 Adjust expected error for C++20 mode.
4286 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
4289 2021-04-12 Jonathan Wakely <jwakely@redhat.com>
4292 * testsuite/17_intro/headers/c++1998/49745.cc: Include all
4293 standard headers and XFAIL for effective-target c++20.
4295 2021-04-09 François Dumont <fdumont@gcc.gnu.org>
4298 * include/debug/helper_functions.h (__can_advance(_InputIterator,
4299 const std::pair<_Diff, _Distance_precision>&, int)): New.
4300 (__can_advance(const _Safe_iterator<>&,
4301 const std::pair<_Diff, _Distance_precision>&, int)): New.
4302 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New,
4304 (__glibcxx_check_can_increment_range): Adapt to use latter.
4305 (__glibcxx_check_can_decrement_range): Likewise.
4306 * include/debug/safe_iterator.h
4307 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4309 (__can_advance(const _Safe_iterator<>&,
4310 const std::pair<_Diff, _Distance_precision>&, int)): New.
4311 * include/debug/safe_iterator.tcc
4312 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&,
4314 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&,
4315 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for
4317 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist.
4318 (__copy_move_backward_a): Likewise.
4319 (__equal_aux): Likewise.
4320 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&,
4321 const std::pair<_Diff, _Distance_precision>&, int)): New.
4322 (__can_advance(const std::move_iterator<>&,
4323 const std::pair<_Diff, _Distance_precision>&, int)): New.
4324 * testsuite/25_algorithms/copy/debug/99402.cc: New test.
4326 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
4329 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix
4330 to be a valid constexpr function in C++11.
4331 * testsuite/23_containers/unordered_set/cons/99985.cc: New test.
4333 2021-04-09 Jonathan Wakely <jwakely@redhat.com>
4335 * include/bits/fs_fwd.h: Fix doxygen group command.
4336 * include/bits/streambuf_iterator.h: Likewise.
4337 * include/bits/uses_allocator_args.h: Likewise.
4338 * include/std/memory: Likewise.
4339 * include/tr1/complex: Likewise.
4341 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4343 * include/bits/basic_string.h: Tweak doxygen comment.
4345 2021-04-08 Patrick Palka <ppalka@redhat.com>
4347 * include/std/ranges (__detail::find): Define.
4348 (split_view::_OuterIter::operator++): Apply proposed resolution
4350 * testsuite/std/ranges/adaptors/split.cc (test10): New test.
4352 2021-04-08 Patrick Palka <ppalka@redhat.com>
4354 * include/std/ranges (__detail::find_if): Simplify.
4355 (__detail::find_if_not): Likewise.
4356 (__detail::min): Remove.
4357 (__detail::mismatch): Simplify.
4358 (take_view::size): Use std::min instead of __detail::min.
4360 2021-04-08 Patrick Palka <ppalka@redhat.com>
4362 * include/std/ranges (__detail::__returnable_element): New
4364 (elements_view): Use this concept in its constraints. Add
4365 missing private access specifier.
4366 (elements_view::_S_get_element): Define as per LWG 3502.
4367 (elements_view::operator*, elements_view::operator[]): Use
4369 (elements_view::operator++): Remove unnecessary constraint
4371 * testsuite/std/ranges/adaptors/elements.cc (test05): New test.
4373 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4375 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for
4376 out-of-memory error in log file.
4377 * doc/Makefile.in: Regenerate.
4379 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4381 * configure: Regenerate.
4383 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4385 * include/bits/random.h: Fix doxygen group commands.
4386 * include/bits/regex_constants.h: Likewise.
4387 * include/tr1/random.h: Likewise.
4389 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4391 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()):
4392 New function to determine noexcept-specifier for move
4394 (_Hashtable): Use _S_nothrow_move() on move constructors.
4395 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc:
4396 Correct static assertion message.
4397 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc:
4399 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc:
4401 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc:
4404 2021-04-08 Patrick Palka <ppalka@redhat.com>
4407 * testsuite/20_util/to_chars/long_double.cc: Don't run the test
4408 on targets without a large long double. XFAIL the execution on
4409 targets with a non-conforming printf.
4411 2021-04-08 Patrick Palka <ppalka@redhat.com>
4414 * include/std/ranges (__adaptor::__maybe_refwrap): Remove.
4415 (__adaptor::__adaptor_invocable): New concept.
4416 (__adaptor::__adaptor_partial_app_viable): New concept.
4417 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a
4418 non-template base class.
4419 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base
4421 (__adaptor::_Partial): New class template that represents
4422 partial application of a range adaptor non-closure.
4423 (__adaptor::__pipe_invocable): New concept.
4424 (__adaptor::_Pipe): New class template.
4425 (__detail::__can_ref_view): New concept.
4426 (__detail::__can_subrange): New concept.
4427 (all): Replace the lambda here with ...
4428 (_All): ... this functor. Add appropriate constraints.
4429 (__detail::__can_filter_view): New concept.
4430 (filter, _Filter): As in all/_All.
4431 (__detail::__can_transform): New concept.
4432 (transform, _Transform): As in all/_All.
4433 (__detail::__can_take_view): New concept.
4434 (take, _Take): As in all/_All.
4435 (__detail::__can_take_while_view): New concept.
4436 (take_while, _TakeWhile): As in all/_All.
4437 (__detail::__can_drop_view): New concept.
4438 (drop, _Drop): As in all/_All.
4439 (__detail::__can_drop_while_view): New concept.
4440 (drop_while, _DropWhile): As in all/_All.
4441 (__detail::__can_join_view): New concept.
4442 (join, _Join): As in all/_All.
4443 (__detail::__can_split_view): New concept.
4444 (split, _Split): As in all/_All. Rename template parameter
4446 (__detail::__already_common): New concept.
4447 (__detail::__can_common_view): New concept.
4448 (common, _Common): As in all/_All.
4449 (__detail::__can_reverse_view): New concept.
4450 (reverse, _Reverse): As in all/_All.
4451 (__detail::__can_elements_view): New concept.
4452 (elements, _Elements): As in all/_All.
4453 (keys, values): Adjust.
4454 * testsuite/std/ranges/adaptors/99433.cc: New test.
4455 * testsuite/std/ranges/adaptors/all.cc: No longer expect that
4456 adding empty range adaptor closure objects to a pipeline doesn't
4457 increase the size of the pipeline.
4459 * testsuite/std/ranges/adaptors/common.cc (test03): New test.
4460 * testsuite/std/ranges/adaptors/drop.cc (test09): New test.
4461 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test.
4462 * testsuite/std/ranges/adaptors/elements.cc (test04): New test.
4463 * testsuite/std/ranges/adaptors/filter.cc (test06): New test.
4464 * testsuite/std/ranges/adaptors/join.cc (test09): New test.
4465 * testsuite/std/ranges/adaptors/p2281.cc: New test.
4466 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test.
4467 * testsuite/std/ranges/adaptors/split.cc (test01, test04):
4470 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust
4471 expected error message.
4472 (test02): Likewise. Extend test.
4473 * testsuite/std/ranges/adaptors/take.cc (test06): New test.
4474 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test.
4475 * testsuite/std/ranges/adaptors/transform.cc (test07, test08):
4478 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4480 * include/std/string_view: Adjust Doxygen @file comment.
4482 2021-04-08 Jonathan Wakely <jwakely@redhat.com>
4484 * include/std/type_traits (is_scoped_enum<T>): Constrain partial
4485 specialization to not match incomplete enum types. Use a
4486 requires-expression instead of instantiating is_convertible.
4487 (is_scoped_enum<const T>): Add as workaround for PR c++/99968.
4488 * testsuite/20_util/is_scoped_enum/value.cc: Check with
4489 incomplete types and opaque-enum-declarations.
4491 2021-04-07 Jonathan Wakely <jwakely@redhat.com>
4494 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call
4495 non-const member on _M_pathname, to avoid copy-on-write.
4496 * testsuite/27_io/filesystem/path/decompose/parent_path.cc:
4497 Check construction from strings that might be shared.
4499 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4501 * include/bits/move.h (forward, move, move_if_noexcept)
4502 (addressof): Add _GLIBCXX_NODISCARD.
4503 * include/bits/ranges_cmp.h (identity::operator()): Add
4504 nodiscard attribute.
4505 * include/c_global/cstddef (to_integer): Likewise.
4506 * include/std/bit (bit_cast): Likewise.
4507 * include/std/utility (as_const, to_underlying): Likewise.
4509 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4511 * include/bits/move.h (forward): Change static_assert message
4512 to be unambiguous about what must be true.
4513 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error.
4514 * testsuite/20_util/forward/f_neg.cc: Likewise.
4516 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4518 * include/bits/alloc_traits.h: Use markdown for code font.
4519 * include/bits/basic_string.h: Fix @param names.
4520 * include/bits/max_size_type.h: Remove period after @file.
4521 * include/bits/regex.h: Fix duplicate @retval names, and rename.
4522 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add
4523 group open to match existing group close.
4524 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group
4527 2021-04-06 Jonathan Wakely <jwakely@redhat.com>
4529 * include/bits/atomic_base.h: Fix doxygen group close.
4530 * include/bits/basic_ios.h: Likewise.
4531 * include/bits/forward_list.h: Likewise.
4532 * include/bits/fs_dir.h: Likewise.
4533 * include/bits/fs_ops.h: Likewise.
4534 * include/bits/fs_path.h: Likewise.
4535 * include/bits/functional_hash.h: Likewise.
4536 * include/bits/gslice.h: Likewise.
4537 * include/bits/gslice_array.h: Likewise.
4538 * include/bits/hashtable_policy.h: Likewise.
4539 * include/bits/indirect_array.h: Likewise.
4540 * include/bits/locale_classes.h: Likewise.
4541 * include/bits/locale_facets.h: Likewise.
4542 * include/bits/locale_facets_nonio.h: Likewise.
4543 * include/bits/mask_array.h: Likewise.
4544 * include/bits/refwrap.h: Likewise.
4545 * include/bits/regex.h: Likewise.
4546 * include/bits/regex_automaton.h: Likewise.
4547 * include/bits/regex_compiler.h: Likewise.
4548 * include/bits/regex_constants.h: Likewise.
4549 * include/bits/regex_error.h: Likewise.
4550 * include/bits/regex_executor.h: Likewise.
4551 * include/bits/regex_scanner.h: Likewise.
4552 * include/bits/shared_ptr.h: Likewise.
4553 * include/bits/shared_ptr_atomic.h: Likewise.
4554 * include/bits/shared_ptr_base.h: Likewise.
4555 * include/bits/slice_array.h: Likewise.
4556 * include/bits/specfun.h: Likewise.
4557 * include/bits/std_function.h: Likewise.
4558 * include/bits/std_mutex.h: Likewise.
4559 * include/bits/stl_deque.h: Likewise.
4560 * include/bits/stl_iterator.h: Likewise.
4561 * include/bits/stl_iterator_base_types.h: Likewise.
4562 * include/bits/stl_map.h: Likewise.
4563 * include/bits/stl_multimap.h: Likewise.
4564 * include/bits/stl_multiset.h: Likewise.
4565 * include/bits/stl_numeric.h: Likewise.
4566 * include/bits/stl_pair.h: Likewise.
4567 * include/bits/stl_set.h: Likewise.
4568 * include/bits/stl_uninitialized.h: Likewise.
4569 * include/bits/stream_iterator.h: Likewise.
4570 * include/bits/streambuf_iterator.h: Likewise.
4571 * include/bits/unique_ptr.h: Likewise.
4572 * include/bits/unordered_map.h: Likewise.
4573 * include/bits/unordered_set.h: Likewise.
4574 * include/decimal/decimal: Likewise.
4575 * include/experimental/any: Likewise.
4576 * include/experimental/array: Likewise.
4577 * include/experimental/bits/fs_dir.h: Likewise.
4578 * include/experimental/bits/fs_fwd.h: Likewise.
4579 * include/experimental/bits/fs_ops.h: Likewise.
4580 * include/experimental/bits/fs_path.h: Likewise.
4581 * include/experimental/buffer: Likewise.
4582 * include/experimental/internet: Likewise.
4583 * include/experimental/optional: Likewise.
4584 * include/experimental/propagate_const: Likewise.
4585 * include/experimental/socket: Likewise.
4586 * include/ext/pb_ds/assoc_container.hpp: Likewise.
4587 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp:
4589 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise.
4590 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise.
4591 * include/ext/pb_ds/detail/types_traits.hpp: Likewise.
4592 * include/ext/pb_ds/exception.hpp: Likewise.
4593 * include/ext/pb_ds/priority_queue.hpp: Likewise.
4594 * include/ext/pb_ds/tag_and_trait.hpp: Likewise.
4595 * include/ext/random: Likewise.
4596 * include/std/any: Likewise.
4597 * include/std/atomic: Likewise.
4598 * include/std/bitset: Likewise.
4599 * include/std/chrono: Likewise.
4600 * include/std/complex: Likewise.
4601 * include/std/condition_variable: Likewise.
4602 * include/std/fstream: Likewise.
4603 * include/std/future: Likewise.
4604 * include/std/iostream: Likewise.
4605 * include/std/istream: Likewise.
4606 * include/std/mutex: Likewise.
4607 * include/std/numeric: Likewise.
4608 * include/std/ostream: Likewise.
4609 * include/std/ratio: Likewise.
4610 * include/std/shared_mutex: Likewise.
4611 * include/std/stdexcept: Likewise.
4612 * include/std/streambuf: Likewise.
4613 * include/std/system_error: Likewise.
4614 * include/std/thread: Likewise.
4615 * include/std/valarray: Likewise.
4616 * include/std/variant: Likewise.
4617 * include/tr1/cmath: Likewise.
4618 * include/tr1/regex: Likewise.
4619 * include/tr2/dynamic_bitset: Likewise.
4620 * libsupc++/atomic_lockfree_defines.h: Likewise.
4621 * libsupc++/exception: Likewise.
4622 * libsupc++/exception.h: Likewise.
4623 * libsupc++/exception_ptr.h: Likewise.
4624 * libsupc++/nested_exception.h: Likewise.
4626 2021-03-31 Alexandre Oliva <oliva@adacore.com>
4628 * testsuite/30_threads/future/members/poll.cc: Use faster
4629 after-ready call in the calibration loop.
4631 2021-03-29 Jonathan Wakely <jwakely@redhat.com>
4633 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL.
4634 * doc/html/manual/status.html: Regenerate.
4636 2021-03-28 François Dumont <fdumont@gcc.gnu.org>
4638 * include/debug/forward_list
4639 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification.
4640 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add
4641 call to safe container allocator aware move constructor.
4642 * include/debug/vector (vector(vector&&, const allocator_type&)):
4643 Fix noexcept qualification.
4644 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc:
4645 Add allocator-extended move constructor noexceot qualification check.
4646 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise.
4648 2021-03-26 Jonathan Wakely <jwakely@redhat.com>
4650 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random
4652 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg):
4653 New helper functions and callback.
4654 (random_device::_M_init): Add 'prng' and 'all' enumerators.
4655 Replace switch with fallthrough with a series of 'if' statements.
4656 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid
4658 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng"
4660 (random_device::_M_getval): Check for callback unconditionally
4661 and always pass _M_file pointer.
4662 * testsuite/26_numerics/random/random_device/85494.cc: Remove
4663 effective-target check. Use new random_device_available helper.
4664 * testsuite/26_numerics/random/random_device/94087.cc: Likewise.
4665 * testsuite/26_numerics/random/random_device/cons/default-cow.cc:
4666 Remove effective-target check.
4667 * testsuite/26_numerics/random/random_device/cons/default.cc:
4669 * testsuite/26_numerics/random/random_device/cons/token.cc: Use
4670 new random_device_available helper. Test "prng" token.
4671 * testsuite/util/testsuite_random.h (random_device_available):
4672 New helper function.
4674 2021-03-25 François Dumont <fdumont@gcc.gnu.org>
4676 * include/debug/string
4677 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI.
4678 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification.
4679 (basic_string<>::erase): Adapt to take __const_iterator.
4680 (basic_string(const _CharT*, const _Allocator&)): Remove assign call.
4681 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to
4682 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI.
4683 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New.
4684 (__gnu_debug::u16string, __gnu_debug::u32string): New.
4685 (std::hash<__gnu_debug::basic_string<>>): New partial specialization.
4686 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise.
4687 * testsuite/util/exception/safety.h
4688 (erase_base<__gnu_debug::basic_string<>>): New partial specialization.
4689 (insert_base<__gnu_debug::basic_string<>>): Likewise.
4690 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>):
4691 New partial specialization.
4692 * testsuite/21_strings/basic_string/hash/debug.cc: New test.
4693 * testsuite/21_strings/basic_string/requirements/citerators.cc:
4694 Add test on __gnu_debug::string.
4695 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise.
4696 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise.
4697 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
4699 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
4701 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
4703 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
4705 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
4707 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
4709 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
4711 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise.
4713 2021-03-25 Jakub Jelinek <jakub@redhat.com>
4716 * testsuite/18_support/source_location/consteval.cc (main): Adjust
4717 expected column numbers.
4718 * testsuite/18_support/source_location/1.cc (main): Likewise.
4720 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
4722 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc.
4724 2021-03-25 Jonathan Wakely <jwakely@redhat.com>
4726 * testsuite/util/exception/safety.h (setup_base::generate):
4727 Support seeding random engine.
4728 (erase_point, erase_range): Adjust range of random numbers to
4729 ensure dereferenceable iterators are used where required.
4730 (generation_prohibited::run): Do not try to erase from empty
4732 * testsuite/util/testsuite_containergen.h (test_containers):
4733 Support seeding random engine.
4735 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
4737 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated
4738 line with a check that uses the const being/end overloads.
4740 2021-03-23 Moritz Sichert <sichert@in.tum.de>
4742 * include/std/ranges (reverse_view::begin, reverse_view::end):
4743 Qualify make_reverse_iterator calls to avoid ADL.
4744 * testsuite/std/ranges/adaptors/reverse.cc: Test that
4745 views::reverse works when make_reverse_iterator is defined
4746 in an associated namespace.
4748 2021-03-23 Jonathan Wakely <jwakely@redhat.com>
4750 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT):
4751 Do not define when compiling with Clang.
4753 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
4755 * include/std/string_view (basic_string_view(Range&&)): Define new
4756 constructor and deduction guide.
4757 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test.
4758 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test.
4760 2021-03-22 Jonathan Wakely <jwakely@redhat.com>
4762 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])):
4763 Add missing 'noexcept' as per LWG 2280.
4764 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>))
4765 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537.
4766 * testsuite/24_iterators/range_access/range_access.cc: Check for
4767 expected noexcept specifiers. Check result types of generic
4768 std::begin and std::end overloads.
4769 * testsuite/24_iterators/range_access/range_access_cpp14.cc:
4770 Check for expected noexcept specifiers.
4771 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
4774 2021-03-19 Jonathan Wakely <jwakely@redhat.com>
4776 * include/std/type_traits (is_scoped_enum): Define.
4777 * include/std/version (__cpp_lib_is_scoped_enum): Define.
4778 * testsuite/20_util/is_scoped_enum/value.cc: New test.
4779 * testsuite/20_util/is_scoped_enum/version.cc: New test.
4781 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
4784 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove
4785 std::once_flag symbols.
4786 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise.
4787 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise.
4788 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
4790 * config/abi/pre/gnu.ver: Likewise.
4791 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
4792 (struct __once_flag_compat): Remove.
4793 (_ZNSt9once_flag11_M_activateEv): Remove.
4794 (_ZNSt9once_flag9_M_finishEb): Remove.
4796 2021-03-16 Jonathan Wakely <jwakely@redhat.com>
4799 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag):
4800 Revert to pthread_once_t implementation.
4801 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise.
4802 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX]
4803 (struct __once_flag_compat): New type matching the reverted
4804 implementation of once_flag using futexes.
4805 (once_flag::_M_activate): Remove, replace with ...
4806 (_ZNSt9once_flag11_M_activateEv): ... alias symbol.
4807 (once_flag::_M_finish): Remove, replace with ...
4808 (_ZNSt9once_flag9_M_finishEb): ... alias symbol.
4809 * testsuite/30_threads/call_once/66146.cc: Removed.
4811 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
4813 * testsuite/17_intro/names.cc: Exclude j from the list
4814 of test symbols for Darwin.
4816 2021-03-15 Iain Sandoe <iain@sandoe.co.uk>
4818 * config/os/bsd/darwin/ppc-extra.ver: Add matching for
4819 to_chars and from_chars for long double.
4821 2021-03-15 Patrick Palka <ppalka@redhat.com>
4823 * include/bits/max_size_type.h (__max_size_type::operator _Tp):
4825 (__max_size_type::operator++): Define.
4826 (__max_size_type::operator--): Likewise.
4827 (__max_size_type::operator<=>): Conditionally define (in place
4828 of the other comparison operators).
4829 (__max_diff_type::operator _Tp): Fix formatting.
4830 (__max_diff_type::operator++): Define.
4831 (__max_diff_type::operator--): Likewise.
4832 (__max_diff_type::operator<=>): Conditionally define (in place
4833 of the other comparison operators).
4834 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test
4835 these operator overloads.
4837 2021-03-15 Caroline Tice <cmtice@google.com>
4840 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
4841 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
4842 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
4844 * src/Makefile.in: Regenerate.
4846 2021-03-11 Patrick Palka <ppalka@redhat.com>
4848 * src/c++17/floating_to_chars.cc: Simplify the file as if
4849 __SIZEOF_INT128__ is always defined.
4850 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define
4851 a base-10 to_chars overload for the uint128_t class type.
4852 * src/c++17/uint128_t.h: New file.
4853 * testsuite/20_util/to_chars/long_double.cc: No longer expect an
4854 execution FAIL on targets that have a large long double type
4857 2021-03-11 Patrick Palka <ppalka@redhat.com>
4859 * src/c++17/ryu/LOCAL_PATCHES: Update.
4860 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t.
4861 * src/c++17/ryu/generic_128.h: Likewise.
4862 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128):
4863 Use uint128_t instead of __uint128_t.
4864 (generic_binary_to_decimal): Likewise.
4866 2021-03-11 Patrick Palka <ppalka@redhat.com>
4868 * src/c++17/ryu/LOCAL_PATCHES: New file.
4870 2021-03-11 Patrick Palka <ppalka@redhat.com>
4872 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally
4873 defined alias of unsigned __int128.
4874 (floating_type_traits_binary128::mantissa_t): Use uint128_t
4875 instead of unsigned __int128.
4876 (floating_type_traits<long double>::mantissa_t)
4877 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise.
4878 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t
4879 and uint32_t explicit. Simplify the extraction of mantissa,
4880 exponent and sign bit.
4882 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
4884 * include/std/barrier (barrier::arrival_token): New move-only
4885 class that encapsulates the underlying token value.
4887 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
4889 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute
4890 instead of unqualified() method.
4892 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
4895 * include/std/stop_token (_Stop_state_t::_M_release_ownership):
4896 Use acq_rel memory ordering.
4898 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
4901 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new
4902 helper function to check for permission denied errors.
4903 * src/filesystem/dir.cc (recursive_directory_iterator):
4905 * src/filesystem/dir-common.h (is_permission_denied_error): New
4908 2021-03-11 Jonathan Wakely <jwakely@redhat.com>
4911 * include/bits/random.h (normal_distribution): Use
4912 default-initializer for _M_saved and _M_saved_available.
4914 2021-03-10 John David Anglin <danglin@gcc.gnu.org>
4916 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to
4917 link with libatomic.
4918 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
4919 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
4920 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
4921 * testsuite/30_threads/barrier/arrive.cc: Likewise.
4922 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
4923 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
4924 * testsuite/30_threads/barrier/completion.cc: Likewise.
4925 * testsuite/30_threads/latch/3.cc: Likewise.
4926 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
4927 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
4928 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
4930 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
4933 * include/bits/align.h: Include debug/assertions.h.
4934 * include/bits/codecvt.h: Include bits/c++config.h.
4935 * include/bits/enable_special_members.h: Likewise.
4936 * include/bits/erase_if.h: Likewise.
4937 * include/bits/functional_hash.h: Include <type_traits>.
4938 * include/bits/invoke.h: Include bits/move.h.
4939 * include/bits/ostream_insert.h: Include bits/exception_defines.h.
4940 * include/bits/parse_numbers.h: Include <type_traits>.
4941 * include/bits/predefined_ops.h: Include bits/c++config.h.
4942 * include/bits/range_access.h: Include bits/stl_iterator.h.
4943 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h.
4944 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h.
4945 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h.
4946 * include/bits/uniform_int_dist.h: Include bits/concept_check.h.
4947 * include/bits/unique_lock.h: Include bits/std_mutex.h.
4948 * include/debug/assertions.h: Include bits/c++config.h.
4950 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
4952 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove.
4953 (ranges::equal_to, ranges::not_equal_to): Do not constrain
4954 with __eq_builtin_ptr_cmp.
4955 (ranges::less, ranges::greater, ranges::less_equal)
4956 (ranges::greater_equal): Do not constrain with
4957 __less_builtin_ptr_cmp.
4958 * libsupc++/compare (compare_three_way): Do not constrain with
4959 __3way_builtin_ptr_cmp.
4960 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to...
4961 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here.
4962 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test.
4964 2021-03-10 Jonathan Wakely <jwakely@redhat.com>
4966 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for
4967 C++20 calendar types.
4969 2021-03-06 Jakub Jelinek <jakub@redhat.com>
4972 * include/std/bit (__rotl, __rotr): Add optimized variants for power of
4973 two _Nd which the compiler can pattern match the rotates.
4975 2021-03-04 Jonathan Wakely <jwakely@redhat.com>
4978 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc:
4979 Make storage larger than required. Verify no write to the last
4981 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc:
4984 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4986 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
4987 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
4989 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
4990 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
4993 2021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4995 * include/experimental/bits/simd.h: Replace reserved _X, _B by
4997 * include/experimental/bits/simd_builtin.h: Likewise.
4998 * include/experimental/bits/simd_x86.h: Likewise.
5000 2021-02-27 Jonathan Wakely <jwakely@redhat.com>
5003 * include/std/chrono (year_month_day::_M_days_since_epoch()):
5004 Convert chrono::month and chrono::day to unsigned before
5005 converting to uint32_t.
5007 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5009 * include/std/chrono (year_month_day::_S_from_days): Perform
5010 all calculations with type uint32_t.
5012 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5014 * doc/xml/manual/abi.xml: Document versioning for GCC 11.
5015 * doc/html/manual/abi.html: Regenerate.
5017 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5020 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to
5021 FILE instead of FILE.
5023 2021-02-25 Andreas Schwab <schwab@suse.de>
5025 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5026 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
5027 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5028 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5030 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5033 * include/std/chrono (year_month_day::_S_from_days): Cast long
5036 2021-02-25 Jonathan Wakely <jwakely@redhat.com>
5038 * include/std/utility (to_underlying): Define.
5039 * include/std/version (__cpp_lib_to_underlying): Define.
5040 * testsuite/20_util/to_underlying/1.cc: New test.
5041 * testsuite/20_util/to_underlying/version.cc: New test.
5043 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5046 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args
5047 before value to be printed.
5049 2021-02-24 Patrick Palka <ppalka@redhat.com>
5051 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision):
5052 Relax the condition that guards the printf code path to accept
5053 F128_type as well as long double.
5055 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5057 * include/std/chrono (year_month_day_last:day): New
5060 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5062 * include/std/chrono (year::is_leap): New implementation.
5063 * testsuite/std/time/year/2.cc: New test.
5065 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5067 * include/std/chrono (year_month_day::_M_days_since_epoch):
5069 * testsuite/std/time/year_month_day/4.cc: New test.
5071 2021-02-24 Cassio Neri <cassio.neri@gmail.com>
5073 * include/std/chrono (year_month_day::_S_from_days): New
5075 * testsuite/std/time/year_month_day/3.cc: New test.
5077 2021-02-24 Patrick Palka <ppalka@redhat.com>
5080 * testsuite/20_util/to_chars/long_double.cc: Include <optional>.
5081 (test01): Simplify verifying the nearby values by using a
5082 2-iteration loop and a dedicated output buffer to check that the
5083 nearby values are different. Factor out the printf-based
5084 verification into a local function, and check that the leading
5085 hex digits agree before comparing to the output of printf. Also
5086 verify the output by round-tripping it through from_chars.
5088 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5091 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars
5092 symbols for long double arguments mangled as 'g'.
5093 * config/os/gnu-linux/ldbl-extra.ver: Likewise.
5094 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise.
5095 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]:
5096 Use -mabi=ibmlongdouble for floating_to_chars.cc.
5097 * src/c++17/Makefile.in: Regenerate.
5098 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128):
5099 New type defining type traits of IEEE binary128 format.
5100 (floating_type_traits<__float128>): Define specialization.
5101 (floating_type_traits<long double>): Define in terms of
5102 floating_type_traits_binary128 when appropriate.
5103 (floating_to_shortest_scientific): Handle __float128.
5104 (sprintf_ld): New function template for printing a long double
5105 or __ieee128 value using sprintf.
5106 (__floating_to_chars_shortest, __floating_to_chars_precision):
5108 (to_chars): Define overloads for __float128.
5110 2021-02-24 Jonathan Wakely <jwakely@redhat.com>
5112 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*.
5114 2021-02-23 Martin Sebor <msebor@redhat.com>
5117 * libsupc++/dyncast.cc (__dynamic_cast): Return null when
5118 first argument is null.
5120 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5123 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New
5126 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5129 * include/bits/char_traits.h (char_traits<char>::compare): For
5130 constexpr evaluation don't call
5131 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop
5134 2021-02-23 Jakub Jelinek <jakub@redhat.com>
5137 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend.
5139 2021-02-23 Patrick Palka <ppalka@redhat.com>
5142 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract
5143 the high- and low-order parts from an IBM long double value
5144 in an endian-agnostic way.
5146 2021-02-19 Jonathan Wakely <jwakely@redhat.com>
5148 * include/bits/atomic_wait.h (__thread_relax()): Call
5149 __thread_yield() not __gthread_yield().
5151 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
5153 * include/bits/atomic_wait.h (__thread_yield()): Check
5154 _GLIBCXX_HAS_GTHREADS before using __gthread_yield.
5155 (__thread_relax()): Use __thread_yield() instead of repeating
5156 the preprocessor checks for __gthread_yield.
5158 2021-02-15 Jonathan Wakely <jwakely@redhat.com>
5160 * include/std/mutex (once_flag::_M_activate()): Add explicit
5161 return statement for passive case.
5162 (once_flag::_M_finish(bool)): Use reserved name for parameter.
5164 2021-02-14 Jonathan Wakely <jwakely@redhat.com>
5167 * testsuite/util/testsuite_fs.h: Always include <unistd.h>.
5169 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5172 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround.
5174 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5176 * doc/xml/manual/status_cxx2014.xml: Document implementation
5177 specific properties of std::experimental::filesystem::rename.
5178 * doc/xml/manual/status_cxx2017.xml: Document implementation
5179 specific properties of std::filesystem::rename.
5180 * doc/html/*: Regenerate.
5181 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour
5182 for directories on Windows.
5183 * src/filesystem/ops-common.h (__gnu_posix::rename): Use
5184 MoveFileExW on Windows.
5185 * testsuite/27_io/filesystem/operations/rename.cc: New test.
5186 * testsuite/experimental/filesystem/operations/rename.cc: New test.
5188 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5190 * testsuite/util/testsuite_fs.h (nonexistent_path): Add
5191 random number to the path.
5193 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5195 * include/experimental/internet (address_v6::to_string): Include
5197 * testsuite/experimental/net/internet/address/v6/members.cc:
5198 Test to_string() results.
5200 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5202 * include/experimental/internet (address_v6::any): Avoid using
5203 memcpy in constexpr function.
5204 (address_v6::loopback): Likewise.
5205 (make_address_v6): Fix missing return statements on error paths.
5206 * include/experimental/io_context: Avoid -Wdangling-else
5208 * testsuite/experimental/net/internet/address/v4/members.cc:
5209 Remove unused variables.
5210 * testsuite/experimental/net/internet/address/v6/members.cc:
5213 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5215 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter):
5216 Add unused attribute to parameter.
5217 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq):
5220 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5222 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail
5223 if -fno-rtti is used.
5224 * testsuite/30_threads/async/forced_unwind.cc: Expect test
5225 to abort if -fno-rtti is used.
5227 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5229 * testsuite/util/testsuite_allocator.h (memory_resource):
5230 Remove requirement for RTTI and exceptions to be enabled.
5232 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5234 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use
5235 static_cast when RTTI is disabled.
5236 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc:
5238 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc:
5240 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc:
5242 * testsuite/27_io/basic_stringstream/str/char/2.cc:
5244 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc:
5247 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5249 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter
5250 as unused and only use dynamic_cast when RTTI is enabled.
5252 2021-02-12 Jonathan Wakely <jwakely@redhat.com>
5255 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)):
5256 Change int parameter to error_code, to match std::ios_failure.
5257 (__throw_ios_failure(const char*, int)): Construct error_code
5260 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
5262 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
5264 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
5265 macro instead of _GLIBCXX_EH_PTR_COMPAT.
5266 (operator==): Likewise.
5268 2021-02-11 Jonathan Wakely <jwakely@redhat.com>
5271 * doc/xml/manual/status_cxx2011.xml: Document when support
5273 * doc/xml/manual/status_cxx2014.xml: Likewise.
5274 * doc/xml/manual/status_cxx2017.xml: Likewise.
5275 * doc/html/manual/status.html: Regenerate.
5277 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5280 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround.
5282 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5284 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent)
5285 (fs::remove): Use std::system_category() for error codes from
5287 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove):
5290 2021-02-10 Jonathan Wakely <jwakely@redhat.com>
5292 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo
5293 in __MINGW32__ macro name.
5294 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise.
5295 * testsuite/27_io/filesystem/path/generation/proximate.cc:
5297 * testsuite/27_io/filesystem/path/generation/relative.cc:
5299 * testsuite/util/testsuite_fs.h: Likewise.
5301 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
5303 * include/bits/stl_tree.h
5304 (__has_is_transparent, __has_is_transparent_t): Move...
5305 * include/bits/stl_function.h: ...here.
5306 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New..
5307 (_Hashtable_base<>::_M_equals_tr): New.
5308 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr,
5309 _Hashtable<>::_M_equal_range_tr): New member function templates to perform
5310 heterogeneous lookup.
5311 (_Hashtable<>::_M_find_before_node_tr): New.
5312 (_Hashtable<>::_M_find_node_tr): New.
5313 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>,
5314 unordered_map::contains<>, unordered_map::equal_range<>): New member function
5315 templates to perform heterogeneous lookup.
5316 (unordered_multimap::find<>, unordered_multimap::count<>,
5317 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise.
5318 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>,
5319 unordered_set::contains<>, unordered_set::equal_range<>): Likewise.
5320 (unordered_multiset::find<>, unordered_multiset::count<>,
5321 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise.
5322 * include/debug/unordered_map
5323 (unordered_map::find<>, unordered_map::equal_range<>): Likewise.
5324 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise.
5325 * include/debug/unordered_set
5326 (unordered_set::find<>, unordered_set::equal_range<>): Likewise.
5327 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise.
5328 * testsuite/23_containers/unordered_map/operations/1.cc: New test.
5329 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test.
5330 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test.
5331 * testsuite/23_containers/unordered_set/operations/1.cc: New test.
5333 2021-02-09 François Dumont <fdumont@gcc.gnu.org>
5335 * include/bits/stl_deque.h
5336 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with
5337 a null pointer test.
5339 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
5341 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove
5342 test directory after making it writable again.
5343 * testsuite/experimental/filesystem/operations/remove_all.cc:
5346 2021-02-09 Jonathan Wakely <jwakely@redhat.com>
5349 * include/std/coroutine (coroutine_handle<P>::from_address): Add
5352 2021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com>
5354 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>.
5355 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t.
5357 2021-02-09 Jakub Jelinek <jakub@redhat.com>
5360 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s
5361 points to the characters moved by earlier _S_move, compute the source
5362 address using expression based on the __p pointer rather than __s
5365 2021-02-03 Jonathan Wakely <jwakely@redhat.com>
5367 * testsuite/19_diagnostics/error_code/operators/not_equal.cc:
5368 Add comparison with same category and different values.
5369 * testsuite/19_diagnostics/error_code/operators/less.cc:
5370 Likewise. Fix comparison involving different categories.
5371 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
5373 * testsuite/19_diagnostics/error_condition/operators/less.cc:
5375 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
5378 2021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com>
5380 * include/experimental/bits/simd_neon.h: Replace repeated vpadd
5381 calls with a single vaddv for aarch64.
5383 2021-02-03 Matthias Kretz <kretz@kde.org>
5385 * testsuite/Makefile.am: Warn about the workaround. Add
5386 -fno-tree-vrp to CXXFLAGS passed to the check_simd script.
5387 Improve initial user feedback from make check-simd.
5388 * testsuite/Makefile.in: Regenerated.
5390 2021-02-03 Matthias Kretz <kretz@kde.org>
5392 * include/experimental/bits/simd.h: Add __detail::_Minimum and
5393 __detail::_Maximum to use them as _BinaryOperation to _S_reduce.
5394 Add hmin and hmax overloads for simd and const_where_expression.
5395 * include/experimental/bits/simd_scalar.h
5396 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation
5397 parameter const-ref to allow calling _S_reduce with an rvalue.
5398 * testsuite/experimental/simd/tests/reductions.cc: Add tests for
5399 hmin and hmax. Since the compiler statically determined that all
5400 tests pass, repeat the test after a call to make_value_unknown.
5402 2021-02-03 Matthias Kretz <kretz@kde.org>
5404 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add
5405 instruction pointer data member. Ensure that the `if (m_failed)`
5406 branch is always inlined into the calling code. The body of the
5407 conditional can still be a function call. Move the get_ip call
5408 into the verify ctor to simplify the ctor calls.
5409 (COMPARE): Don't mention the use of all_of for reduction of a
5410 simd_mask. It only distracts from the real issue.
5412 2021-02-03 Matthias Kretz <kretz@kde.org>
5414 * testsuite/experimental/simd/driver.sh: Abstract reading test
5415 options into read_src_option function. Read skip, only,
5416 expensive, and xfail via read_src_option. Add timeout and
5417 timeout-factor options and adjust timeout variable accordingly.
5418 * testsuite/experimental/simd/tests/loadstore.cc: Set
5421 2021-02-03 Matthias Kretz <kretz@kde.org>
5423 * testsuite/experimental/simd/driver.sh: When handling the pipe
5424 to log (and on verbose to stdout) count the lines. If it exceeds
5425 1000 log the issue and exit 125, which is then handled as a
5428 2021-02-03 Matthias Kretz <kretz@kde.org>
5430 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip:
5431 markup for long double on powerpc64*.
5433 2021-02-03 Matthias Kretz <kretz@kde.org>
5435 * include/experimental/bits/simd.h: Add __have_power10vec
5436 conditional on _ARCH_PWR10.
5437 * include/experimental/bits/simd_builtin.h: Forward declare
5438 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is
5440 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the
5441 _SuperImpl for optimizations and correctness.
5442 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc.
5443 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10.
5444 Otherwise, for >=int use -vec_sums divided by a sizeof factor.
5445 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries.
5447 2021-02-03 Matthias Kretz <kretz@kde.org>
5449 * testsuite/experimental/simd/driver.sh: Remove executable on
5450 SIGINT. Process compiler and test executable output: In verbose
5451 mode print messages immediately, limited to 1000 lines and
5452 breaking long lines to below $COLUMNS (or 1024 if not set).
5453 Communicating the exit status of the compiler / test with the
5454 necessary pipe is done via a message through stdout/-in.
5456 2021-02-03 Matthias Kretz <kretz@kde.org>
5458 * testsuite/Makefile.am: Ensure .simd.summary is empty before
5459 collecting a new summary.
5460 * testsuite/Makefile.in: Regenerate.
5462 2021-02-03 Matthias Kretz <kretz@kde.org>
5464 * testsuite/experimental/simd/generate_makefile.sh: Use
5465 different variables internally than documented for user
5466 overrides. This makes internal append/prepend work as intended.
5468 2021-02-03 Matthias Kretz <kretz@kde.org>
5470 * testsuite/experimental/simd/driver.sh (verify_test): Print
5471 test output on run xfail. Do not repeat lines from the log that
5472 were already printed on stdout.
5473 (test_selector): Make the compiler flags pattern usable as a
5475 (toplevel): Trap on SIGINT and remove the log and sum files.
5476 Call timout with --foreground to quickly terminate on SIGINT.
5477 * testsuite/experimental/simd/generate_makefile.sh: Simplify run
5478 targets via target patterns. Default DRIVEROPTS to -v for run
5479 targets. Remove log and sum files after completion of the run
5480 target (so that it's always recompiled).
5481 Place help text into text file for reasonable 'make help'
5484 2021-02-03 Matthias Kretz <kretz@kde.org>
5486 * include/experimental/bits/simd.h: Remove unnecessary static
5487 assertion. Allow sizeof(8) integer __intrinsic_type to enable
5488 the necessary mask type.
5490 2021-02-03 Matthias Kretz <kretz@kde.org>
5492 * include/experimental/bits/simd.h: Let __intrinsic_type<long
5493 double, N> be valid if sizeof(long double) == sizeof(double) and
5494 use a __vector double as member type.
5496 2021-02-03 Matthias Kretz <kretz@kde.org>
5498 * include/experimental/bits/simd.h (__is_intrinsic_type): New
5499 internal type trait. Alias for __is_vector_type on x86.
5500 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for
5502 (__intrin_bitcast): Allow casting to & from vector & intrinsic
5504 (__intrinsic_type): Explicitly specialize for NEON intrinsic
5507 2021-02-03 Matthias Kretz <kretz@kde.org>
5509 * testsuite/experimental/simd/driver.sh: Implement skip, only,
5510 expensive, and xfail markers. They can select on type, ABI tag
5511 subset number, target-triplet, and compiler flags.
5512 * testsuite/experimental/simd/generate_makefile.sh: The summary
5513 now includes lines for unexpected passes and expected failures.
5514 If the skip or only markers are only conditional on the type, do
5515 not generate rules for those types.
5516 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive
5517 for ABI tag subsets 1-9.
5518 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
5519 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
5520 * testsuite/experimental/simd/tests/casts.cc: Ditto.
5521 * testsuite/experimental/simd/tests/generator.cc: Ditto.
5522 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
5523 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
5524 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
5525 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
5526 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
5527 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto.
5528 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
5529 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
5530 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
5531 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
5532 * testsuite/experimental/simd/tests/operators.cc: Ditto.
5533 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
5534 * testsuite/experimental/simd/tests/simd.cc: Ditto.
5535 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
5536 * testsuite/experimental/simd/tests/splits.cc: Ditto.
5537 * testsuite/experimental/simd/tests/where.cc: Ditto.
5538 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In
5539 addition replace "test only floattypes" marker by unconditional
5540 "float|double|ldouble" only marker.
5541 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
5542 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
5543 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5545 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
5546 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
5547 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
5548 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
5549 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
5550 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
5551 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In
5552 addition, xfail on run because the reference data is missing.
5554 2021-02-02 Jonathan Wakely <jwakely@redhat.com>
5556 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell.
5557 * doc/xml/manual/status_cxx2014.xml: Likewise.
5558 * doc/xml/manual/status_cxx2017.xml: Likewise.
5559 * doc/html/manual/status.html: Regenerate.
5561 2021-02-01 François Dumont <fdumont@gcc.gnu.org>
5564 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)):
5565 Return 0 if both iterators are value-initialized.
5566 * testsuite/23_containers/deque/70303.cc: New test.
5567 * testsuite/23_containers/vector/70303.cc: New test.
5569 2021-02-01 Jonathan Wakely <jwakely@redhat.com>
5571 * doc/xml/manual/status_cxx2011.xml: Update std::call_once
5573 * doc/xml/manual/status_cxx2014.xml: Likewise.
5574 * doc/xml/manual/status_cxx2017.xml: Likewise. Update
5575 std::from_chars and std::to_chars status. Fix formatting.
5576 * doc/html/manual/status.html: Regenerate.
5578 2021-01-28 Jonathan Wakely <jwakely@redhat.com>
5580 * include/experimental/bits/numeric_traits.h: Update copyright
5582 * include/experimental/bits/simd.h: Likewise.
5583 * include/experimental/bits/simd_builtin.h: Likewise.
5584 * include/experimental/bits/simd_converter.h: Likewise.
5585 * include/experimental/bits/simd_detail.h: Likewise.
5586 * include/experimental/bits/simd_fixed_size.h: Likewise.
5587 * include/experimental/bits/simd_math.h: Likewise.
5588 * include/experimental/bits/simd_neon.h: Likewise.
5589 * include/experimental/bits/simd_ppc.h: Likewise.
5590 * include/experimental/bits/simd_scalar.h: Likewise.
5591 * include/experimental/bits/simd_x86.h: Likewise.
5592 * include/experimental/bits/simd_x86_conversions.h: Likewise.
5593 * include/experimental/simd: Likewise.
5594 * testsuite/experimental/simd/*: Likewise.
5596 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
5598 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity.
5599 * doc/html/*: Regenerate.
5601 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
5603 * testsuite/experimental/simd/generate_makefile.sh: Use printf
5604 instead of echo when printing escape characters.
5606 2021-01-27 Matthias Kretz <kretz@kde.org>
5608 * scripts/check_simd: New file. This script is called from the
5609 the check-simd target. It determines a set of compiler flags and
5610 simulator setups for calling generate_makefile.sh and passes the
5611 information back to the check-simd target, which recurses to the
5612 generated Makefiles.
5613 * scripts/create_testsuite_files: Remove files below simd/tests/
5614 from testsuite_files and place them in testsuite_files_simd.
5615 * testsuite/Makefile.am: Add testsuite_files_simd. Add
5617 * testsuite/Makefile.in: Regenerate.
5618 * testsuite/experimental/simd/driver.sh: New file. This script
5619 compiles and runs a given simd test, logging its output and
5620 status. It uses the timeout command to implement compile and
5622 * testsuite/experimental/simd/generate_makefile.sh: New file.
5623 This script generates a Makefile which uses driver.sh to compile
5624 and run the tests and collect the logs into a single log file.
5625 * testsuite/experimental/simd/tests/abs.cc: New file. Tests
5627 * testsuite/experimental/simd/tests/algorithms.cc: New file.
5628 Tests min/max(simd, simd).
5629 * testsuite/experimental/simd/tests/bits/conversions.h: New
5630 file. Contains functions to support tests involving conversions.
5631 * testsuite/experimental/simd/tests/bits/make_vec.h: New file.
5632 Support functions make_mask and make_vec.
5633 * testsuite/experimental/simd/tests/bits/mathreference.h: New
5634 file. Support functions to supply precomputed math function
5636 * testsuite/experimental/simd/tests/bits/metahelpers.h: New
5637 file. Support code for SFINAE testing.
5638 * testsuite/experimental/simd/tests/bits/simd_view.h: New file.
5639 * testsuite/experimental/simd/tests/bits/test_values.h: New
5640 file. Test functions to easily drive a test with simd objects
5641 initialized from a given list of values and a range of random
5643 * testsuite/experimental/simd/tests/bits/ulp.h: New file.
5644 Support code to determine the ULP distance of simd objects.
5645 * testsuite/experimental/simd/tests/bits/verify.h: New file.
5646 Test framework for COMPARE'ing simd objects and instantiating
5647 the test templates with value_type and ABI tag.
5648 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test
5650 * testsuite/experimental/simd/tests/casts.cc: New file. Test
5652 * testsuite/experimental/simd/tests/fpclassify.cc: New file.
5653 Test floating-point classification functions.
5654 * testsuite/experimental/simd/tests/frexp.cc: New file. Test
5656 * testsuite/experimental/simd/tests/generator.cc: New file. Test
5657 simd generator constructor.
5658 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file.
5659 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim).
5660 * testsuite/experimental/simd/tests/integer_operators.cc: New
5661 file. Test integer operators.
5662 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5663 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and
5665 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test
5666 (converting) simd loads and stores.
5667 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test
5669 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file.
5670 Test simd_mask broadcasts.
5671 * testsuite/experimental/simd/tests/mask_conversions.cc: New
5672 file. Test simd_mask conversions.
5673 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New
5674 file. Test simd_mask implicit conversions.
5675 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file.
5676 Test simd_mask loads and stores.
5677 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New
5678 file. Test simd_mask operators convert as specified.
5679 * testsuite/experimental/simd/tests/mask_operators.cc: New file.
5680 Test simd_mask compares, subscripts, and negation.
5681 * testsuite/experimental/simd/tests/mask_reductions.cc: New
5682 file. Test simd_mask reductions.
5683 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test
5684 1-arg math functions on simd.
5685 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test
5686 2-arg math functions on simd.
5687 * testsuite/experimental/simd/tests/operator_cvt.cc: New file.
5688 Test implicit conversions on simd binary operators behave as
5690 * testsuite/experimental/simd/tests/operators.cc: New file. Test
5691 simd compares, subscripts, not, unary minus, plus, minus,
5692 multiplies, divides, increment, and decrement.
5693 * testsuite/experimental/simd/tests/reductions.cc: New file.
5695 * testsuite/experimental/simd/tests/remqo.cc: New file. Test
5697 * testsuite/experimental/simd/tests/simd.cc: New file. Basic
5698 sanity checks of simd types.
5699 * testsuite/experimental/simd/tests/sincos.cc: New file. Test
5700 sin(simd) and cos(simd).
5701 * testsuite/experimental/simd/tests/split_concat.cc: New file.
5702 Test split(simd) and concat(simd, simd).
5703 * testsuite/experimental/simd/tests/splits.cc: New file. Test
5705 * testsuite/experimental/simd/tests/trigonometric.cc: New file.
5706 Test remaining trigonometric functions on simd.
5707 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New
5708 file. Test trunc(simd), ceil(simd), and floor(simd).
5709 * testsuite/experimental/simd/tests/where.cc: New file. Test
5710 masked operations using where.
5712 2021-01-27 Matthias Kretz <kretz@kde.org>
5714 * doc/xml/manual/status_cxx2017.xml: Add implementation status
5715 of the Parallelism TS 2. Document implementation-defined types
5717 * include/Makefile.am: Add new headers.
5718 * include/Makefile.in: Regenerate.
5719 * include/experimental/simd: New file. New header for
5721 * include/experimental/bits/numeric_traits.h: New file.
5722 Implementation of P1841R1 using internal naming. Addition of
5723 missing IEC559 functionality query.
5724 * include/experimental/bits/simd.h: New file. Definition of the
5725 public simd interfaces and general implementation helpers.
5726 * include/experimental/bits/simd_builtin.h: New file.
5727 Implementation of the _VecBuiltin simd_abi.
5728 * include/experimental/bits/simd_converter.h: New file. Generic
5730 * include/experimental/bits/simd_detail.h: New file. Internal
5731 macros for the simd implementation.
5732 * include/experimental/bits/simd_fixed_size.h: New file. Simd
5733 fixed_size ABI specific implementations.
5734 * include/experimental/bits/simd_math.h: New file. Math
5736 * include/experimental/bits/simd_neon.h: New file. Simd NEON
5737 specific implementations.
5738 * include/experimental/bits/simd_ppc.h: New file. Implement bit
5739 shifts to avoid invalid results for integral types smaller than
5741 * include/experimental/bits/simd_scalar.h: New file. Simd scalar
5742 ABI specific implementations.
5743 * include/experimental/bits/simd_x86.h: New file. Simd x86
5744 specific implementations.
5745 * include/experimental/bits/simd_x86_conversions.h: New file.
5746 x86 specific conversion optimizations. The conversion patterns
5747 work around missing conversion patterns in the compiler and
5748 should be removed as soon as PR85048 is resolved.
5749 * testsuite/experimental/simd/standard_abi_usable.cc: New file.
5750 Test that all (not all fixed_size<N>, though) standard simd and
5751 simd_mask types are usable.
5752 * testsuite/experimental/simd/standard_abi_usable_2.cc: New
5753 file. As above but with -ffast-math.
5754 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests
5755 from the standard test loop. Instead use
5756 check_vect_support_and_set_flags to build simd tests with the
5757 relevant machine flags.
5759 2021-01-27 Jonathan Wakely <jwakely@redhat.com>
5762 * include/bits/string_view.tcc
5763 (basic_string_view::find(const CharT*, size_type, size_type)):
5766 2021-01-27 Paul Fee <paul.f.fee@gmail.com>
5768 * include/bits/basic_string.h (basic_string::contains): New
5770 * include/std/string_view (basic_string_view::contains):
5772 * include/std/version (__cpp_lib_string_contains): Define.
5773 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
5774 Remove trailing whitespace.
5775 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
5777 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test.
5778 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test.
5779 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test.
5780 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test.
5781 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test.
5783 2021-01-21 Jonathan Wakely <jwakely@redhat.com>
5785 * src/c++17/Makefile.in: Regenerate.
5787 2021-01-20 David Edelsohn <dje.gcc@gmail.com>
5789 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast
5790 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to
5792 (const char* ctype<char>:: is): Same.
5794 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
5797 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to
5798 write to a wide character stream if wide character support is
5799 disabled in the library.
5801 2021-01-18 Jonathan Wakely <jwakely@redhat.com>
5803 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use
5804 stringbuf not wstringbuf.
5806 2021-01-18 Jakub Jelinek <jakub@redhat.com>
5809 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s):
5810 Compile with -gno-as-loc-support.
5811 * src/c++11/Makefile.in: Regenerated.
5813 2021-01-16 H.J. Lu <hjl.tools@gmail.com>
5815 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
5816 Add -fcf-protection=none to -march=i486.
5818 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
5820 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11
5823 2021-01-14 Alexandre Oliva <oliva@adacore.com>
5825 * testsuite/30_threads/future/members/poll.cc: Calibrate
5828 2021-01-14 François Dumont <fdumont@gcc.gnu.org>
5831 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr.
5832 (_Node_iterator()): Make default.
5833 (_Node_const_iterator()): Make default.
5834 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular
5836 * include/debug/safe_iterator.h
5837 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized.
5838 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
5840 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add
5841 _M_singular checks on input iterators.
5842 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular
5844 * testsuite/23_containers/deque/debug/98466.cc: New test.
5845 * testsuite/23_containers/unordered_map/debug/98466.cc: New test.
5847 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
5850 * include/bits/fs_path.h (__throw_conversion_error): New
5851 function to throw or abort on character conversion errors.
5852 (__wstr_from_utf8): Move definition after filesystem_error has
5853 been defined. Use __throw_conversion_error.
5854 (path::_S_convert<_EcharT>): Use __throw_conversion_error.
5855 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise.
5856 (path::u8string): Likewise.
5858 2021-01-14 Jonathan Wakely <jwakely@redhat.com>
5860 * include/std/barrier: Update copyright years. Fix whitespace.
5861 * include/std/version: Fix whitespace.
5862 * testsuite/30_threads/barrier/1.cc: Update copyright years.
5863 * testsuite/30_threads/barrier/2.cc: Likewise.
5864 * testsuite/30_threads/barrier/arrive.cc: Likewise.
5865 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5866 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5867 * testsuite/30_threads/barrier/completion.cc: Likewise.
5869 2021-01-13 Jonathan Wakely <jwakely@redhat.com>
5871 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array.
5873 2021-01-10 David Edelsohn <dje.gcc@gmail.com>
5876 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive
5878 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same.
5880 2021-01-08 Olivier Hainque <hainque@adacore.com>
5882 * testsuite/20_util/bind/ref_neg.cc: Tweak the
5883 dg-prune-output regex for out-of-build-tree contexts.
5885 2021-01-07 Thomas Rodgers <trodgers@redhat.com>
5887 * doc/doxygen/user.cfg.in: Add new header.
5888 * include/Makefile.am (std_headers): likewise.
5889 * include/Makefile.in: Regenerate.
5890 * include/precompiled/stdc++.h: Add new header.
5891 * include/std/barrier: New file.
5892 * include/std/version: Add __cpp_lib_barrier feature test macro.
5893 * testsuite/30_threads/barrier/1.cc: New test.
5894 * testsuite/30_threads/barrier/2.cc: Likewise.
5895 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
5896 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
5897 * testsuite/30_threads/barrier/arrive.cc: Likewise.
5898 * testsuite/30_threads/barrier/completion.cc: Likewise.
5900 2021-01-07 Patrick Palka <ppalka@redhat.com>
5903 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl
5904 instead of the non-standard nextupl and nextdownl.
5906 2021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
5908 * configure: Re-generate.
5910 2021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net>
5912 * include/precompiled/stdc++.h: Add <source_location> to C++20 section.
5914 2021-01-01 Jakub Jelinek <jakub@redhat.com>
5916 * ChangeLog-2020: Rotate ChangeLog. New file.
5919 Copyright (C) 2021 Free Software Foundation, Inc.
5921 Copying and distribution of this file, with or without modification,
5922 are permitted in any medium without royalty provided the copyright
5923 notice and this notice are preserved.