summaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/23_containers/multiset
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright years.Jakub Jelinek2023-01-1672-72/+72
|
* libstdc++: Ensure pmr aliases work without <memory_resource>Jonathan Wakely2022-05-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the alias templates for std::pmr::vector, std::pmr::string etc. are defined using a forward declaration for polymorphic_allocator. This means you can't actually use the alias templates unless you also include <memory_resource>. The rationale for that is that it's a fairly large header, and most users don't need it. This isn't uncontroversial though, and LWG 3681 questions whether it's even conforming. This change adds a new <bits/memory_resource.h> header with the minimum needed to use polymorphic_allocator and the std::pmr container aliases. Including <memory_resource> is still necessary to use the program-wide resource objects, or the pool resources or monotonic buffer resource. libstdc++-v3/ChangeLog: * include/Makefile.am: Add new header. * include/Makefile.in: Regenerate. * include/bits/memory_resource.h: New file. * include/std/deque: Include <bits/memory_resource.h>. * include/std/forward_list: Likewise. * include/std/list: Likewise. * include/std/map: Likewise. * include/std/memory_resource (pmr::memory_resource): Move to new <bits/memory_resource.h> header. (pmr::polymorphic_allocator): Likewise. * include/std/regex: Likewise. * include/std/set: Likewise. * include/std/stacktrace: Likewise. * include/std/string: Likewise. * include/std/unordered_map: Likewise. * include/std/unordered_set: Likewise. * include/std/vector: Likewise. * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Remove <memory_resource> header and check construction. * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise. * testsuite/23_containers/forward_list/pmr_typedefs.cc: Likewise. * testsuite/23_containers/list/pmr_typedefs.cc: Likewise. * testsuite/23_containers/map/pmr_typedefs.cc: Likewise. * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise. * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise. * testsuite/23_containers/set/pmr_typedefs.cc: Likewise. * testsuite/23_containers/unordered_map/pmr_typedefs.cc: Likewise. * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: Likewise. * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: Likewise. * testsuite/23_containers/unordered_set/pmr_typedefs.cc: Likewise. * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise. * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/variadic-tuple.C: Qualify function to avoid ADL finding std::make_tuple.
* libstdc++: Fix invalid instantiations in testsJonathan Wakely2022-02-021-2/+6
| | | | | | | | | | | | These tests instantiate std::multiset and std::set with a type that has no operator< so they should use a custom comparison function. libstdc++-v3/ChangeLog: * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use custom comparison function for multiset. * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom comparison function for set.
* Update copyright years.Jakub Jelinek2022-01-0372-72/+72
|
* libstdc++: Clear RB tree after moving elements [PR103501]Jonathan Wakely2021-12-011-0/+32
| | | | | | | | | | | | | | | | | | | | If the allocator-extended move constructor move-constructs each element into the new container, the contents of the old container are left in moved-from states. We cannot know if those states preserve the container's ordering and uniqueness guarantees, so just erase all moved-from elements. libstdc++-v3/ChangeLog: PR libstdc++/103501 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&, false_type)): Clear container if elements have been moved-from. * testsuite/23_containers/map/allocator/move_cons.cc: Expect moved-from container to be empty. * testsuite/23_containers/multimap/allocator/move_cons.cc: Likewise. * testsuite/23_containers/multiset/allocator/103501.cc: New test. * testsuite/23_containers/set/allocator/103501.cc: New test.
* libstdc++: Implement P1518R2 for container deduction guidesJonathan Wakely2021-10-041-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implements the C++23 P1518R2 proposal "Stop overconstraining allocators in container deduction guides" as a fix for C++17 and C++20 too. The changes allow class template argument deduction to ignore the type of a constructor argument that initializes an allocator_type parameter if the type should be deducible only from the other arguments. So for the constructor vector(const vector&, const allocator_type&) only the first argument is used for deduction, allowing the second argument to be anything that is implicitly convertible to argument_type. Previously deduction would fail or an ill-formed type would be deduced if the second argument wasn't of type allocator_type. The unordered containers do not need changes, because their allocator-extended constructors use the allocator_type alias, which comes from the dependent base class so is already a non-deduced context. libstdc++-v3/ChangeLog: * include/bits/forward_list.h (forward_list): Use non-deduced context for allocator parameter of allocator-extended copy and move constructors. * include/bits/stl_bvector.h (vector<bool>): Likewise. * include/bits/stl_deque.h (deque): Likewise. * include/bits/stl_list.h (list): Likewise. * include/bits/stl_map.h (map): Likewise. * include/bits/stl_multimap.h (multimap): Likewise. * include/bits/stl_multiset.h (multiset): Likewise. * include/bits/stl_set.h (set): Likewise. * include/bits/stl_vector.h (vector): Likewise. * include/bits/stl_queue.h (queue, priority_queue): Do not constrain Allocator template parameter of deduction guides that have a Container parameter. * include/bits/stl_stack.h (stack): Likewise. * include/debug/deque (__gnu_debug::deque): Use non-deduced context for allocator parameter of allocator-extended copy and move constructors. * include/debug/list (__gnu_debug::list): Likewise. * include/debug/map.h (__gnu_debug::map): Likewise. * include/debug/multimap.h (__gnu_debug::multimap): Likewise. * include/debug/multiset.h (__gnu_debug::multiset): Likewise. * include/debug/set.h (__gnu_debug::set): Likewise. * include/debug/vector (__gnu_debug::vector): Likewise. * testsuite/23_containers/deque/cons/deduction.cc: Test class template argument deduction with non-deduced allocator arguments. * testsuite/23_containers/forward_list/cons/deduction.cc: Likewise. * testsuite/23_containers/list/cons/deduction.cc: Likewise. * testsuite/23_containers/map/cons/deduction.cc: Likewise. * testsuite/23_containers/multimap/cons/deduction.cc: Likewise. * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. * testsuite/23_containers/priority_queue/deduction.cc: Likewise. * testsuite/23_containers/queue/deduction.cc: Likewise. * testsuite/23_containers/set/cons/deduction.cc: Likewise. * testsuite/23_containers/stack/deduction.cc: Likewise. * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_multimap/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_multiset/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise. * testsuite/23_containers/vector/cons/deduction.cc: Likewise.
* libstdc++: Skip tests that fail with _GLIBCXX_CONCEPT_CHECKSJonathan Wakely2021-09-282-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The extension that allows implicitly rebinding a container's allocator is not allowed when _GLIBCXX_CONCEPT_CHECKS is defined, so skip the tests for that extension. Signed-off-by: Jonathan Wakely <jwakely@redhat.com> libstdc++-v3/ChangeLog: * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc: Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS is defined. * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc: Likewise. * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc: Likewise. * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc: Likewise. * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc: Likewise. * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc: Likewise. * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc: Likewise.
* libstdc++: Add [[nodiscard]] to iterators and related utilitiesJonathan Wakely2021-08-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds [[nodiscard]] throughout <iterator>, as proposed by P2377R0 (with some minor corrections). The attribute is added for all modes from C++11 up, using [[__nodiscard__]] or _GLIBCXX_NODISCARD where C++17 [[nodiscard]] can't be used directly. Signed-off-by: Jonathan Wakely <jwakely@redhat.com> libstdc++-v3/ChangeLog: * include/bits/iterator_concepts.h (iter_move): Add [[nodiscard]]. * include/bits/range_access.h (begin, end, cbegin, cend) (rbegin, rend, crbegin, crend, size, data, ssize): Likewise. * include/bits/ranges_base.h (ranges::begin, ranges::end) (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend) (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize) (ranges::empty, ranges::data, ranges::cdata): Likewise. * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator) (back_insert_iterator, front_insert_iterator, insert_iterator) (move_iterator, move_sentinel, common_iterator) (counted_iterator): Likewise. * include/bits/stl_iterator_base_funcs.h (distance, next, prev): Likewise. * include/bits/stream_iterator.h (istream_iterator) (ostream_iterartor): Likewise. * include/bits/streambuf_iterator.h (istreambuf_iterator) (ostreambuf_iterator): Likewise. * include/std/ranges (views::single, views::iota, views::all) (views::filter, views::transform, views::take, views::take_while) (views::drop, views::drop_while, views::join, views::lazy_split) (views::split, views::counted, views::common, views::reverse) (views::elements): Likewise. * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result. * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise. * testsuite/24_iterators/normal_iterator/greedy_ops.cc: Likewise. * testsuite/24_iterators/reverse_iterator/2.cc: Likewise. * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: Likewise. * testsuite/21_strings/basic_string/range_access/char/1.cc: Cast result to void. * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/range_access/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc: Likewise. * testsuite/23_containers/array/range_access.cc: Likewise. * testsuite/23_containers/deque/range_access.cc: Likewise. * testsuite/23_containers/forward_list/range_access.cc: Likewise. * testsuite/23_containers/list/range_access.cc: Likewise. * testsuite/23_containers/map/range_access.cc: Likewise. * testsuite/23_containers/multimap/range_access.cc: Likewise. * testsuite/23_containers/multiset/range_access.cc: Likewise. * testsuite/23_containers/set/range_access.cc: Likewise. * testsuite/23_containers/unordered_map/range_access.cc: Likewise. * testsuite/23_containers/unordered_multimap/range_access.cc: Likewise. * testsuite/23_containers/unordered_multiset/range_access.cc: Likewise. * testsuite/23_containers/unordered_set/range_access.cc: Likewise. * testsuite/23_containers/vector/range_access.cc: Likewise. * testsuite/24_iterators/customization_points/iter_move.cc: Likewise. * testsuite/24_iterators/istream_iterator/sentinel.cc: Likewise. * testsuite/24_iterators/istreambuf_iterator/sentinel.cc: Likewise. * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise. * testsuite/24_iterators/operations/prev_neg.cc: Likewise. * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise. * testsuite/24_iterators/range_access/range_access.cc: Likewise. * testsuite/24_iterators/range_operations/100768.cc: Likewise. * testsuite/26_numerics/valarray/range_access2.cc: Likewise. * testsuite/28_regex/range_access.cc: Likewise. * testsuite/experimental/string_view/range_access/char/1.cc: Likewise. * testsuite/experimental/string_view/range_access/wchar_t/1.cc: Likewise. * testsuite/ext/vstring/range_access.cc: Likewise. * testsuite/std/ranges/adaptors/take.cc: Likewise. * testsuite/std/ranges/p2259.cc: Likewise.
* c++: excessive instantiation during CTAD [PR101174]Patrick Palka2021-06-231-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We set DECL_CONTEXT on implicitly generated deduction guides so that their access is consistent with that of the constructor. But this apparently leads to excessive instantiation in some cases, ultimately because instantiation of a deduction guide should be independent of instantiation of the resulting class specialization, but setting the DECL_CONTEXT of the former to the latter breaks this independence. To fix this, this patch makes push_access_scope handle artificial deduction guides specifically rather than setting their DECL_CONTEXT in build_deduction_guide. We could alternatively make the class befriend the guide via DECL_BEFRIENDING_CLASSES, but that wouldn't be a complete fix and would break class-deduction-access3.C below since friendship isn't transitive. PR c++/101174 gcc/cp/ChangeLog: * pt.c (push_access_scope): For artificial deduction guides, set the access scope to that of the constructor. (pop_access_scope): Likewise. (build_deduction_guide): Don't set DECL_CONTEXT on the guide. libstdc++-v3/ChangeLog: * testsuite/23_containers/multiset/cons/deduction.cc: Uncomment CTAD example that was rejected by this bug. * testsuite/23_containers/set/cons/deduction.cc: Likewise. gcc/testsuite/ChangeLog: * g++.dg/cpp1z/class-deduction-access3.C: New test. * g++.dg/cpp1z/class-deduction91.C: New test.
* c++: CTAD and deduction guide selection [PR86439]Patrick Palka2021-06-231-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During CTAD, we select the best viable deduction guide using build_new_function_call, which performs overload resolution on the set of candidate guides and then forms a call to the guide. As the PR points out, this latter step is unnecessary and occasionally incorrect since a call to the selected guide may be ill-formed, or forming the call may have side effects such as prematurely deducing the type of a {}. So this patch introduces a specialized subroutine based on build_new_function_call that stops short of building a call to the selected function, and makes do_class_deduction use this subroutine instead. And since a call is no longer built, do_class_deduction doesn't need to set tf_decltype or cp_unevaluated_operand anymore. This change causes us to reject some container CTAD examples in the libstdc++ testsuite due to deduction failure for {}, which AFAICT is the correct behavior. Previously in e.g. the first removed example std::map{{std::pair{1, 2.0}, {2, 3.0}, {3, 4.0}}, {}}, the type of the {} would get deduced to less<int> as a side effect of forming a call to the chosen guide template<typename _Key, typename _Tp, typename _Compare = less<_Key>, typename _Allocator = allocator<pair<const _Key, _Tp>>> map(initializer_list<pair<_Key, _Tp>>, _Compare = _Compare(), _Allocator = _Allocator()) -> map<_Key, _Tp, _Compare, _Allocator>; which made later overload resolution for the constructor call unambiguous. Now, the type of the {} remains undeduced until constructor overload resolution, and we complain about ambiguity for the two equally good constructor candidates map(initializer_list<value_type>, const _Compare& = _Compare(), const allocator_type& = allocator_type()) map(initializer_list<value_type>, const allocator_type&). This patch fixes these problematic container CTAD examples by giving the {} an appropriate concrete type. Two of these adjusted CTAD examples (one for std::set and one for std::multiset) end up triggering an unrelated CTAD bug on trunk, PR101174, so these two adjusted examples are commented out for now. PR c++/86439 gcc/cp/ChangeLog: * call.c (print_error_for_call_failure): Constify 'args' parameter. (perform_dguide_overload_resolution): Define. * cp-tree.h: (perform_dguide_overload_resolution): Declare. * pt.c (do_class_deduction): Use perform_dguide_overload_resolution instead of build_new_function_call. Don't use tf_decltype or set cp_unevaluated_operand. Remove unnecessary NULL_TREE tests. libstdc++-v3/ChangeLog: * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous CTAD examples. * testsuite/23_containers/multimap/cons/deduction.cc: Likewise. * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. Mention one of the replaced examples is broken due to PR101174. * testsuite/23_containers/set/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace ambiguous CTAD examples. * testsuite/23_containers/unordered_multimap/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_multiset/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise. gcc/testsuite/ChangeLog: * g++.dg/cpp1z/class-deduction88.C: New test. * g++.dg/cpp1z/class-deduction89.C: New test. * g++.dg/cpp1z/class-deduction90.C: New test.
* libstdc++: Remove redundant -std=gnu++17 option from containers testsJonathan Wakely2021-05-103-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC defaults to -std=gnu++17 now anyway, and using it explicitly in the dg-options directive prevents running these tests with different modes such as -std=c++17 or -std=gnu++20. libstdc++-v3/ChangeLog: * testsuite/23_containers/array/cons/deduction.cc: Remove -std=gnu++17 from dg-options directive. * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise. * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Likewise. * testsuite/23_containers/array/requirements/constexpr_iter.cc: Likewise. * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc: Likewise. * testsuite/23_containers/deque/cons/deduction.cc: Likewise. * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc: Likewise. * testsuite/23_containers/forward_list/cons/deduction.cc: Likewise. * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc: Likewise. * testsuite/23_containers/list/cons/deduction.cc: Likewise. * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc: Likewise. * testsuite/23_containers/map/cons/deduction.cc: Likewise. * testsuite/23_containers/map/modifiers/extract.cc: Likewise. * testsuite/23_containers/map/modifiers/insert/83226.cc: Likewise. * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Likewise. * testsuite/23_containers/map/modifiers/merge.cc: Likewise. * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise. * testsuite/23_containers/multimap/cons/deduction.cc: Likewise. * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise. * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise. * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise. * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise. * testsuite/23_containers/priority_queue/deduction.cc: Likewise. * testsuite/23_containers/queue/deduction.cc: Likewise. * testsuite/23_containers/queue/members/emplace_cxx17_return.cc: Likewise. * testsuite/23_containers/set/cons/deduction.cc: Likewise. * testsuite/23_containers/set/modifiers/extract.cc: Likewise. * testsuite/23_containers/set/modifiers/merge.cc: Likewise. * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise. * testsuite/23_containers/stack/deduction.cc: Likewise. * testsuite/23_containers/stack/members/emplace_cxx17_return.cc: Likewise. * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/merge.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc: Likewise. * testsuite/23_containers/unordered_multimap/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_multimap/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: Likewise. * testsuite/23_containers/unordered_multiset/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_multiset/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: Likewise. * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_set/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_set/modifiers/merge.cc: Likewise. * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc: Likewise. * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise. * testsuite/23_containers/vector/cons/deduction.cc: Likewise. * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc: Likewise.
* libstdc++: Remove redundant -std=gnu++17 option from PMR testsJonathan Wakely2021-05-102-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC defaults to -std=gnu++17 now anyway, and using it explicitly in the dg-options directive prevents running these tests with different modes such as -std=c++17 or -std=gnu++20. libstdc++-v3/ChangeLog: * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17 from dg-options directive. * testsuite/20_util/memory_resource/2.cc: Likewise. * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise. * testsuite/20_util/monotonic_buffer_resource/93208.cc: Likewise. * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise. * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise. * testsuite/20_util/monotonic_buffer_resource/release.cc: Likewise. * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc: Likewise. * testsuite/20_util/polymorphic_allocator/1.cc: Likewise. * testsuite/20_util/polymorphic_allocator/construct_pair.cc: Likewise. * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise. * testsuite/20_util/polymorphic_allocator/select.cc: Likewise. * testsuite/20_util/synchronized_pool_resource/allocate.cc: Likewise. * testsuite/20_util/synchronized_pool_resource/allocate_single.cc: Likewise. * testsuite/20_util/synchronized_pool_resource/cons.cc: Likewise. * testsuite/20_util/synchronized_pool_resource/cons_single.cc: Likewise. * testsuite/20_util/synchronized_pool_resource/is_equal.cc: Likewise. * testsuite/20_util/synchronized_pool_resource/multithreaded.cc: Likewise. * testsuite/20_util/synchronized_pool_resource/options.cc: Likewise. * testsuite/20_util/synchronized_pool_resource/release.cc: Likewise. * testsuite/20_util/synchronized_pool_resource/release_single.cc: Likewise. * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc: Likewise. * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Likewise. * testsuite/20_util/unsynchronized_pool_resource/cons.cc: Likewise. * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc: Likewise. * testsuite/20_util/unsynchronized_pool_resource/options.cc: Likewise. * testsuite/20_util/unsynchronized_pool_resource/release.cc: Likewise. * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Likewise. * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise. * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/forward_list/pmr_typedefs.cc: Likewise. * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/list/pmr_typedefs.cc: Likewise. * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/map/pmr_typedefs.cc: Likewise. * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise. * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise. * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/set/pmr_typedefs.cc: Likewise. * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/unordered_map/pmr_typedefs.cc: Likewise. * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: Likewise. * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: Likewise. * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/unordered_set/pmr_typedefs.cc: Likewise. * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise. * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: Likewise. * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
* Update copyright years.Jakub Jelinek2021-01-0472-72/+72
|
* libstdc++: _Rb_tree code cleanup, remove lambdasFrançois Dumont2020-11-201-0/+53
| | | | | | | | | | | | | | | | | | Use new template parameters to replace usage of lambdas to move or not tree values on copy. libstdc++-v3/ChangeLog: * include/bits/move.h (_GLIBCXX_FWDREF): New. * include/bits/stl_tree.h: Adapt to use latter. (_Rb_tree<>::_M_clone_node): Add _MoveValue template parameter. (_Rb_tree<>::_M_mbegin): New. (_Rb_tree<>::_M_begin): Use latter. (_Rb_tree<>::_M_copy): Add _MoveValues template parameter. * testsuite/23_containers/map/allocator/move_cons.cc: New test. * testsuite/23_containers/multimap/allocator/move_cons.cc: New test. * testsuite/23_containers/multiset/allocator/move_cons.cc: New test. * testsuite/23_containers/set/allocator/move_cons.cc: New test.
* libstdc++: Avoid warnings in testsJonathan Wakely2020-10-291-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes some warnings emitted when testing with warning flags added. Some of these are only necessary when testing with -Wsystem-headers, but either way it cleans up the tests to be less noisy under non-default flags. libstdc++-v3/ChangeLog: * testsuite/18_support/96817.cc: Avoid -Wunused warnings. * testsuite/20_util/any/assign/2.cc: Likewise. * testsuite/20_util/any/cons/2.cc: Likewise. * testsuite/20_util/align/1.cc: Avoid -Wsign-compare warning. * testsuite/20_util/function/65760.cc: Avoid -Wunused warning. * testsuite/20_util/function/1.cc: Avoid -Wcatch-value warning. * testsuite/20_util/function/cons/move_target.cc: Avoid -Wunused warning. * testsuite/20_util/headers/memory/synopsis.cc: Add exception specification. * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Avoid -Wsign-compare warning. * testsuite/20_util/tuple/cons/deduction.cc: Avoid -Wunused warning. * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc: Avoid -Wdeprecated-copy warning. * testsuite/21_strings/basic_string/56166.cc: Avoid -Wcatch-value warning. * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc: Avoid -Wcatch-value warnings. * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/stold.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/stoll.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/char/stoull.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stod.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stof.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoi.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stol.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stold.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoll.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoul.cc: Likewise. * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/stoull.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc: Prune additional diagnostics. * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc: Likewise. * testsuite/21_strings/headers/string/synopsis.cc: Add exception specifications. * testsuite/22_locale/locale/cons/12352.cc: Define sized delete operators to avoid warnings. * testsuite/23_containers/deque/modifiers/swap/1.cc: Add exception specification. * testsuite/23_containers/forward_list/cons/11.cc: Avoid -Wdeprecated-copy warning. * testsuite/23_containers/headers/bitset/synopsis.cc: Add exception specification. * testsuite/23_containers/headers/deque/synopsis.cc: Likewise. * testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise. * testsuite/23_containers/headers/list/synopsis.cc: Likewise. * testsuite/23_containers/headers/map/synopsis.cc: Likewise. * testsuite/23_containers/headers/queue/synopsis.cc: Likewise. * testsuite/23_containers/headers/set/synopsis.cc: Likewise. * testsuite/23_containers/headers/vector/synopsis.cc: Likewise. * testsuite/23_containers/list/modifiers/swap/1.cc: Likewise. * testsuite/23_containers/map/modifiers/swap/1.cc: Likewise. * testsuite/23_containers/multimap/modifiers/swap/1.cc: Likewise. * testsuite/23_containers/multiset/modifiers/swap/1.cc: Likewise. * testsuite/23_containers/set/modifiers/swap/1.cc: Likewise. * testsuite/23_containers/unordered_set/56267-2.cc: Avoid -Wdeprecated-copy warning. * testsuite/23_containers/vector/bool/23632.cc: Avoid -Wempty-body warning. * testsuite/23_containers/vector/modifiers/swap/1.cc: Add exception specification. * testsuite/25_algorithms/heap/moveable2.cc: Fix misplaced parentheses around arguments. * testsuite/25_algorithms/sample/1.cc: Use return value. * testsuite/25_algorithms/search/searcher.cc: Avoid -Wunused warnings. * testsuite/27_io/basic_ostream/exceptions/char/9561.cc: Likewise. * testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc: Likewise. * testsuite/27_io/filesystem/operations/remove_all.cc: Avoid -Wsign-compare warning. * testsuite/experimental/any/assign/2.cc: Avoid -Wunused warnings. * testsuite/experimental/any/cons/2.cc: Likewise. * testsuite/experimental/filesystem/operations/remove_all.cc: Avoid -Wign-compare warning. * testsuite/experimental/memory/observer_ptr/cons/cons.cc: Likewise. * testsuite/experimental/memory_resource/null_memory_resource.cc: Likewise. * testsuite/experimental/source_location/1.cc: Avoid -Waddress warning. * testsuite/ext/pod_char_traits.cc: Avoid -Wunused warning. * testsuite/ext/vstring/modifiers/clear/56166.cc: Avoid -Wcatch-value. * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: Avoid -Wunused warning. * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: Likewise. * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Prune additional warnings. * testsuite/tr1/3_function_objects/function/1.cc: Avoid -Wcatch-value warning. * testsuite/util/replacement_memory_operators.h: Define sized delete to avoid warnings. * testsuite/util/testsuite_api.h (_NonDefaultConstructible): Add user-declared assignment operator to stop -Wdeprecated-copy warnings. * testsuite/util/testsuite_containers.h: Avoid -Wunused warning. * testsuite/util/testsuite_iterators.h: Avoid -Wsign-compare warnings. * testsuite/util/testsuite_new_operators.h: Define sized deleted.
* libstdc++: Remove tests for self-move debug assertionsJonathan Wakely2020-08-252-67/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I recently removed the debug mode checks for self-move assignment, which means these tests now fail when _GLIBCXX_DEBUG is added to the options or when the check-debug target is used. Remove all the tests. libstdc++-v3/ChangeLog: * testsuite/21_strings/debug/iterator_self_move_assign_neg.cc: Removed. * testsuite/21_strings/debug/self_move_assign_neg.cc: Removed. * testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc: Removed. * testsuite/23_containers/deque/debug/self_move_assign_neg.cc: Removed. * testsuite/23_containers/forward_list/debug/iterator_self_move_assign_neg.cc: Removed. * testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc: Removed. * testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc: Removed. * testsuite/23_containers/list/debug/self_move_assign_neg.cc: Removed. * testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc: Removed. * testsuite/23_containers/map/debug/self_move_assign_neg.cc: Removed. * testsuite/23_containers/multimap/debug/iterator_self_move_assign_neg.cc: Removed. * testsuite/23_containers/multimap/debug/self_move_assign_neg.cc: Removed. * testsuite/23_containers/multiset/debug/iterator_self_move_assign_neg.cc: Removed. * testsuite/23_containers/multiset/debug/self_move_assign_neg.cc: Removed. * testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc: Removed. * testsuite/23_containers/set/debug/self_move_assign_neg.cc: Removed. * testsuite/23_containers/unordered_map/debug/iterator_self_move_assign_neg.cc: Removed. * testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc: Removed. * testsuite/23_containers/unordered_multimap/debug/iterator_self_move_assign_neg.cc: Removed. * testsuite/23_containers/unordered_multimap/debug/self_move_assign_neg.cc: Removed. * testsuite/23_containers/unordered_multiset/debug/iterator_self_move_assign_neg.cc: Removed. * testsuite/23_containers/unordered_multiset/debug/self_move_assign_neg.cc: Removed. * testsuite/23_containers/unordered_set/debug/iterator_self_move_assign_neg.cc: Removed. * testsuite/23_containers/unordered_set/debug/self_move_assign_neg.cc: Removed. * testsuite/23_containers/vector/debug/iterator_self_move_assign_neg.cc: Removed. * testsuite/23_containers/vector/debug/self_move_assign_neg.cc: Removed.
* libstdc++: Ensure c++NN effective target present in all C++17 testsJonathan Wakely2020-07-312-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also reorder some directives so that the dg-options setting -std=gnu++17 comes before the dg-do that requires c++17. libstdc++-v3/ChangeLog: * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add c++17 effective-target. * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: Likewise. * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: Likewise. * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: Likewise. * testsuite/17_intro/headers/c++2017/operator_names.cc: Likewise. * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise. * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc: Likewise. * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc: Likewise. * testsuite/19_diagnostics/error_code/is_error_code_v.cc: Likewise. * testsuite/20_util/any/assign/1.cc: Likewise. * testsuite/20_util/any/assign/2.cc: Likewise. * testsuite/20_util/any/assign/emplace.cc: Likewise. * testsuite/20_util/any/assign/exception.cc: Likewise. * testsuite/20_util/any/assign/self.cc: Likewise. * testsuite/20_util/any/cons/1.cc: Likewise. * testsuite/20_util/any/cons/2.cc: Likewise. * testsuite/20_util/any/cons/aligned.cc: Likewise. * testsuite/20_util/any/cons/explicit.cc: Likewise. * testsuite/20_util/any/cons/in_place.cc: Likewise. * testsuite/20_util/any/cons/nontrivial.cc: Likewise. * testsuite/20_util/any/make_any.cc: Likewise. * testsuite/20_util/any/misc/any_cast.cc: Likewise. * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise. * testsuite/20_util/any/misc/swap.cc: Likewise. * testsuite/20_util/any/modifiers/1.cc: Likewise. * testsuite/20_util/any/observers/type.cc: Likewise. * testsuite/20_util/any/requirements.cc: Likewise. * testsuite/20_util/any/typedefs.cc: Likewise. * testsuite/20_util/as_const/1.cc: Likewise. * testsuite/20_util/as_const/rvalue_neg.cc: Likewise. * testsuite/20_util/bind/is_placeholder_v.cc: Likewise. * testsuite/20_util/bool_constant/requirements.cc: Likewise. * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc: Likewise. * testsuite/20_util/duration_cast/rounding.cc: Likewise. * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc: Likewise. * testsuite/20_util/function_objects/invoke/59768.cc: Likewise. * testsuite/20_util/function_objects/not_fn/1.cc: Likewise. * testsuite/20_util/function_objects/searchers.cc: Likewise. * testsuite/20_util/in_place/requirements.cc: Likewise. * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_invocable/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_invocable/value.cc: Likewise. * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise. * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_nothrow_swappable_with/value.cc: Likewise. * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_swappable/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_swappable/value.cc: Likewise. * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_swappable_with/value.cc: Likewise. * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/logical_traits/requirements/typedefs.cc: Likewise. * testsuite/20_util/logical_traits/value.cc: Likewise. * testsuite/20_util/optional/constexpr/make_optional.cc: Likewise. * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise. * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise. * testsuite/20_util/optional/hash.cc: Likewise. * testsuite/20_util/pair/swap_cxx17.cc: Likewise. * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: Likewise. * testsuite/20_util/shared_ptr/requirements/weak_type.cc: Likewise. * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc: Likewise. * testsuite/20_util/tuple/apply/1.cc: Likewise. * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise. * testsuite/20_util/tuple/swap_cxx17.cc: Likewise. * testsuite/20_util/tuple/tuple_size_v.cc: Likewise. * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc: Likewise. * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc: Likewise. * testsuite/20_util/variant/any.cc: Likewise. * testsuite/20_util/variant/compile.cc: Likewise. * testsuite/20_util/variant/hash.cc: Likewise. * testsuite/20_util/variant/index_type.cc: Likewise. * testsuite/20_util/variant/run.cc: Likewise. * testsuite/20_util/void_t/1.cc: Likewise. * testsuite/21_strings/basic_string/79162.cc: Likewise. * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise. * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise. * testsuite/21_strings/basic_string/lwg2758.cc: Likewise. * testsuite/21_strings/basic_string/lwg2946.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc: Likewise. * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc: Likewise. * testsuite/21_strings/basic_string/operations/compare/char/2.cc: Likewise. * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: Likewise. * testsuite/21_strings/basic_string/operations/data/char/2.cc: Likewise. * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: Likewise. * testsuite/21_strings/basic_string/operations/find/char/5.cc: Likewise. * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: Likewise. * testsuite/21_strings/basic_string/operators/char/5.cc: Likewise. * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: Likewise. * testsuite/21_strings/basic_string_view/capacity/1.cc: Likewise. * testsuite/21_strings/basic_string_view/cons/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/cons/char/2.cc: Likewise. * testsuite/21_strings/basic_string_view/cons/char/3.cc: Likewise. * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: Likewise. * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: Likewise. * testsuite/21_strings/basic_string_view/element_access/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/element_access/char/2.cc: Likewise. * testsuite/21_strings/basic_string_view/element_access/char/empty.cc: Likewise. * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc: Likewise. * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc: Likewise. * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc: Likewise. * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc: Likewise. * testsuite/21_strings/basic_string_view/include.cc: Likewise. * testsuite/21_strings/basic_string_view/inserters/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/inserters/char/2.cc: Likewise. * testsuite/21_strings/basic_string_view/inserters/char/3.cc: Likewise. * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc: Likewise. * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc: Likewise. * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc: Likewise. * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc: Likewise. * testsuite/21_strings/basic_string_view/literals/types.cc: Likewise. * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc: Likewise. * testsuite/21_strings/basic_string_view/literals/values.cc: Likewise. * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/data/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/find/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/find/char/2.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/find/char/3.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/find/char/4.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/range_access/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc: Likewise. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc: Likewise. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc: Likewise. * testsuite/21_strings/basic_string_view/requirements/typedefs.cc: Likewise. * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise. * testsuite/21_strings/basic_string_view/types/1.cc: Likewise. * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc: Likewise. * testsuite/23_containers/map/modifiers/extract.cc: Likewise. * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Likewise. * testsuite/23_containers/map/modifiers/merge.cc: Likewise. * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise. * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise. * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise. * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise. * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise. * testsuite/23_containers/set/modifiers/extract.cc: Likewise. * testsuite/23_containers/set/modifiers/merge.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/merge.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc: Likewise. * testsuite/23_containers/unordered_multimap/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: Likewise. * testsuite/23_containers/unordered_multiset/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: Likewise. * testsuite/23_containers/unordered_set/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_set/modifiers/merge.cc: Likewise. * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: Likewise. * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise. * testsuite/25_algorithms/clamp/1.cc: Likewise. * testsuite/25_algorithms/clamp/2.cc: Likewise. * testsuite/25_algorithms/clamp/constexpr.cc: Likewise. * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc: Likewise. * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc: Likewise. * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: Likewise. * testsuite/26_numerics/headers/cmath/special_functions_global.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc: Likewise. * testsuite/29_atomics/atomic/is_always_lock_free.cc: Likewise. * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: Likewise. * testsuite/30_threads/shared_lock/70766.cc: Likewise. * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise. * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise. * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise. * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc: Likewise. * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise. * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise. * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise.
* libstdc++: Fix [multi]map/[multi]set move constructors noexcept qualificationFrançois Dumont2020-07-081-1/+31
| | | | | | | | | | | | | | | | | Container move constructors shall not consider their allocator move constructor qualification. libstdc++-v3/ChangeLog: * include/bits/stl_tree.h (_Rb_tree_impl(_Rb_tree_impl&&)): Add noexcept qualification based only on _Compare one. * testsuite/23_containers/map/cons/noexcept_move_construct.cc: Add static asserts. * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc: Likewise. * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc: Likewise. * testsuite/23_containers/set/cons/noexcept_move_construct.cc: Likewise.
* libstdc++: Make debug containers prefer copy ctor to base ctor (PR 90102)Jonathan Wakely2020-06-021-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When given a type which can convert to any container-like type, the C(const C&) copy constructor and C(const C::_Base&) converting constructor are ambiguous. This change replaces the converting constructor's parameter with a reference_wrapper-like type so that calling that constructor requires an additional user-defined conversion. This gives it a lower rank than the copy constructor, avoiding the ambiguity. While testing this change I discovered that __gnu_debug::forward_list doesn't have a convering constructor from the std::forward_list base, so this adds it. We should probably consider whether the converting constructors should be 'explicit' but I'm not changing that now. libstdc++-v3/ChangeLog: PR libstdc++/90102 * include/debug/deque (deque(const _Base&)): Replace parameter with a struct that wraps a const _Base&. * include/debug/forward_list (forward_list(_Base_ref)): New constructor. * include/debug/list (list(const _Base&)): Replace parameter with a struct that wraps a const _Base&. * include/debug/map.h (map(const _Base&)): Likewise. * include/debug/multimap.h (multimap(const _Base&)): Likewise. * include/debug/multiset.h (multiset(const _Base&)): Likewise. * include/debug/set.h (set(const _Base&)): Likewise. * include/debug/unordered_map (unordered_map(const _Base&)) (unordered_multimap(const _Base&)): Likewise. * include/debug/unordered_set (unordered_set(const _Base&)) (unordered_multiset(const _Base&)): Likewise. * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: Adjust dg-error line number. * include/debug/vector (vector(const _Base&)): Likewise. * testsuite/23_containers/deque/debug/90102.cc: New test. * testsuite/23_containers/forward_list/debug/90102.cc: New test. * testsuite/23_containers/list/debug/90102.cc: New test. * testsuite/23_containers/map/debug/90102.cc: New test. * testsuite/23_containers/multimap/debug/90102.cc: New test. * testsuite/23_containers/multiset/debug/90102.cc: New test. * testsuite/23_containers/set/debug/90102.cc: New test. * testsuite/23_containers/unordered_map/debug/90102.cc: New test. * testsuite/23_containers/unordered_multimap/debug/90102.cc: New test. * testsuite/23_containers/unordered_multiset/debug/90102.cc: New test. * testsuite/23_containers/unordered_set/debug/90102.cc: New test. * testsuite/23_containers/vector/debug/90102.cc: New test.
* libstdc++: Add comparison operators to associative containersJonathan Wakely2020-04-201-0/+107
| | | | | | | | | | | | | | | | | | | | | The last C++20 changes from P1614R2, "The Mothership has Landed" * include/bits/stl_map.h (map): Define operator<=> and remove operator< for C++20. * include/bits/stl_multimap.h (multimap): Likewise. * include/bits/stl_multiset.h (multiset): Likewise. * include/bits/stl_set.h (set): Likewise. * include/bits/stl_tree.h (_Rb_tree): Likewise. (_Rb_tree_iterator, _Rb_tree_const_iterator): Remove redundant operator!= for C++20. * include/debug/map.h (__gnu_debug::map): Define operator<=> for C++20. * include/debug/multimap.h (__gnu_debug::multimap): Likewise. * include/debug/multiset.h (__gnu_debug::multiset): Likewise. * include/debug/set.h (__gnu_debug::set): Likewise. * testsuite/23_containers/map/operators/cmp_c++20.cc: New test. * testsuite/23_containers/multimap/operators/cmp_c++20.cc: New test. * testsuite/23_containers/multiset/operators/cmp_c++20.cc: New test. * testsuite/23_containers/set/operators/cmp_c++20.cc: New test.
* Library-side tests for parenthesized aggregate initVille Voutilainen2020-03-311-0/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR c++/92878 PR c++/92947 * testsuite/20_util/allocator_traits/members/92878_92947.cc: New. * testsuite/20_util/any/assign/92878_92947.cc: Likewise. * testsuite/20_util/any/cons/92878_92947.cc: Likewise. * testsuite/20_util/is_constructible/92878_92947.cc: Likewise. * testsuite/20_util/optional/assignment/92878_92947.cc: Likewise. * testsuite/20_util/optional/cons/92878_92947.cc: Likewise. * testsuite/20_util/pair/cons/92878_92947.cc: Likewise. * testsuite/20_util/shared_ptr/creation/92878_92947.cc: Likewise. * testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc: Likewise. * testsuite/20_util/unique_ptr/creation/92878_92947.cc: Likewise. * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise. * testsuite/20_util/variant/92878_92947.cc: Likewise. * testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc: Likewise. * testsuite/23_containers/forward_list/modifiers/92878_92947.cc: Likewise. * testsuite/23_containers/list/modifiers/emplace/92878_92947.cc: Likewise. * testsuite/23_containers/map/modifiers/emplace/92878_92947.cc: Likewise. * testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc: Likewise. * testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc: Likewise. * testsuite/23_containers/priority_queue/92878_92947.cc: Likewise. * testsuite/23_containers/queue/92878_92947.cc: Likewise. * testsuite/23_containers/set/modifiers/emplace/92878_92947.cc: Likewise. * testsuite/23_containers/stack/92878_92947.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/92878_92947.cc: Likewise. * testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc: Likewise. * testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc: Likewise. * testsuite/23_containers/unordered_set/modifiers/92878_92947.cc: Likewise. * testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc: Likewise.
* Update copyright years.Jakub Jelinek2020-01-0170-70/+70
| | | | From-SVN: r279813
* Remove redundant std::allocator members for C++20Jonathan Wakely2019-10-221-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | C++20 removes a number of std::allocator members that have correct defaults provided by std::allocator_traits, so aren't needed. Several extensions including __gnu_cxx::hash_map and tr1 containers are no longer usable with std::allocator in C++20 mode. They need to be updated to use __gnu_cxx::__alloc_traits in a follow-up patch. * include/bits/alloc_traits.h (allocator_traits<allocator<T>>::allocate): Ignore hint for C++20. (allocator_traits<allocator<T>>::construct): Perform placement new directly for C++20, instead of calling allocator<T>::construct. (allocator_traits<allocator<T>>::destroy): Call destructor directly for C++20, instead of calling allocator<T>::destroy. (allocator_traits<allocator<T>>::max_size): Return value directly for C++20, instead of calling std::allocator<T>::max_size(). (__do_alloc_on_copy, __do_alloc_on_move, __do_alloc_on_swap): Do not define for C++17 and up. (__alloc_on_copy, __alloc_on_move, __alloc_on_swap): Use if-constexpr for C++17 and up, instead of tag dispatching. * include/bits/allocator.h (allocator<void>): Remove for C++20. (allocator::pointer, allocator::const_pointer, allocator::reference) (allocator::const_reference, allocator::rebind): Remove for C++20. * include/bits/basic_string.h (basic_string): Use __alloc_traits to rebind allocator. * include/bits/memoryfwd.h (allocator<void>): Remove for C++20. * include/ext/debug_allocator.h: Use __alloc_traits for rebinding. * include/ext/malloc_allocator.h (malloc_allocator::~malloc_allocator) (malloc_allocator::pointer, malloc_allocator::const_pointer) (malloc_allocator::reference, malloc_allocator::const_reference) (malloc_allocator::rebind, malloc_allocator::max_size) (malloc_allocator::construct, malloc_allocator::destroy): Do not define for C++20. (malloc_allocator::_M_max_size): Define new function. * include/ext/new_allocator.h (new_allocator::~new_allocator) (new_allocator::pointer, new_allocator::const_pointer) (new_allocator::reference, new_allocator::const_reference) (new_allocator::rebind, new_allocator::max_size) (new_allocator::construct, new_allocator::destroy): Do not define for C++20. (new_allocator::_M_max_size): Define new function. * include/ext/rc_string_base.h (__rc_string_base::_Rep): Use __alloc_traits to rebind allocator. * include/ext/rope (_Rope_rep_base, _Rope_base): Likewise. (rope::rope(CharT, const allocator_type&)): Use __alloc_traits to construct character. * include/ext/slist (_Slist_base): Use __alloc_traits to rebind allocator. * include/ext/sso_string_base.h (__sso_string_base::_M_max_size): Use __alloc_traits. * include/ext/throw_allocator.h (throw_allocator): Do not use optional members of std::allocator, use __alloc_traits members instead. * include/ext/vstring.h (__versa_string): Use __alloc_traits. * include/ext/vstring_util.h (__vstring_utility): Likewise. * include/std/memory: Include <bits/alloc_traits.h>. * testsuite/20_util/allocator/8230.cc: Use __gnu_test::max_size. * testsuite/20_util/allocator/rebind_c++20.cc: New test. * testsuite/20_util/allocator/requirements/typedefs.cc: Do not check for pointer, const_pointer, reference, const_reference or rebind in C++20. * testsuite/20_util/allocator/requirements/typedefs_c++20.cc: New test. * testsuite/23_containers/deque/capacity/29134.cc: Use __gnu_test::max_size. * testsuite/23_containers/forward_list/capacity/1.cc: Likewise. * testsuite/23_containers/list/capacity/29134.cc: Likewise. * testsuite/23_containers/map/capacity/29134.cc: Likewise. * testsuite/23_containers/multimap/capacity/29134.cc: Likewise. * testsuite/23_containers/multiset/capacity/29134.cc: Likewise. * testsuite/23_containers/set/capacity/29134.cc: Likewise. * testsuite/23_containers/vector/capacity/29134.cc: Likewise. * testsuite/ext/malloc_allocator/variadic_construct.cc: Do not run test for C++20. * testsuite/ext/new_allocator/variadic_construct.cc: Likewise. * testsuite/ext/vstring/capacity/29134.cc: Use __gnu_test::max_size. * testsuite/util/replacement_memory_operators.h: Do not assume Alloc::pointer exists. * testsuite/util/testsuite_allocator.h (__gnu_test::max_size): Define helper to call max_size for any allocator. From-SVN: r277300
* Disable tests that aren't valid in parallel modeJonathan Wakely2019-10-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tests that depend on debug mode can't be tested in parallel mode. * testsuite/17_intro/using_namespace_std_tr1_neg.cc: Skip test for parallel mode. * testsuite/20_util/hash/84998.cc: Likewise. * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: Likewise. * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: Likewise. * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: Likewise. * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise. * testsuite/25_algorithms/copy/86658.cc: Likewise. * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise. * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise. * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise. * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise. From-SVN: r276430
* Fix tests that fail in C++2a modeJonathan Wakely2019-06-062-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The GNU extension that allows using the wrong allocator type with a container is disabled for C++2a mode, because the standard now requires a diagnostic. Fix the tests that fail when -std=gnu++2a is used. Also remove some reundant tests that are duplicates of another test except for a target specifier of c++11. Those tests previously set -std=gnu++11 explicitly but that was replaced globally with a target specifier. These tests existed to verify that explicit instantiation worked for both C++98 and C++11 modes, but now do nothing because both copies of the test use -std=gnu++14 by default. Instead of duplicating the test we should be regularly running the whole testsuite with different -std options. * testsuite/23_containers/deque/requirements/explicit_instantiation/ 1_c++0x.cc: Remove redundant test. * testsuite/23_containers/deque/requirements/explicit_instantiation/ 2.cc: Use target selector instead of preprocessor condition. * testsuite/23_containers/deque/requirements/explicit_instantiation/ 3.cc: Do not run test for C++2a. * testsuite/23_containers/forward_list/requirements/ explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/forward_list/requirements/ explicit_instantiation/5.cc: Do not test allocator rebinding extension for C++2a. * testsuite/23_containers/list/requirements/explicit_instantiation/ 1_c++0x.cc: Remove redundant test. * testsuite/23_containers/list/requirements/explicit_instantiation/ 2.cc: Use target selector instead of preprocessor condition. * testsuite/23_containers/list/requirements/explicit_instantiation/ 3.cc: Do not run test for C++2a. * testsuite/23_containers/list/requirements/explicit_instantiation/ 5.cc: Do not test allocator rebinding extension for C++2a. * testsuite/23_containers/map/requirements/explicit_instantiation/ 1_c++0x.cc: Remove redundant test. * testsuite/23_containers/map/requirements/explicit_instantiation/ 2.cc: Adjust comment. * testsuite/23_containers/map/requirements/explicit_instantiation/ 3.cc: Do not run test for C++2a. * testsuite/23_containers/map/requirements/explicit_instantiation/ 5.cc: Do not test allocator rebinding extension for C++2a. * testsuite/23_containers/multimap/requirements/explicit_instantiation/ 1_c++0x.cc: Remove redundant test. * testsuite/23_containers/multimap/requirements/explicit_instantiation/ 3.cc: Do not run test for C++2a. * testsuite/23_containers/multimap/requirements/explicit_instantiation/ 5.cc: Do not test allocator rebinding extension for C++2a. * testsuite/23_containers/multiset/requirements/explicit_instantiation/ 3.cc: Do not run test for C++2a. * testsuite/23_containers/multiset/requirements/explicit_instantiation/ 5.cc: Do not test allocator rebinding extension for C++2a. * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc: Do not run test for C++2a. * testsuite/23_containers/set/requirements/explicit_instantiation/ 1_c++0x.cc: Remove redundant test. * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc: Do not test allocator rebinding extension for C++2a. * testsuite/23_containers/unordered_map/requirements/ explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/unordered_map/requirements/ explicit_instantiation/5.cc: Do not test allocator rebinding extension for C++2a. * testsuite/23_containers/unordered_multimap/requirements/ explicit_instantiation/3.cc: Do not run test for C++2a. * testsuite/23_containers/unordered_multimap/requirements/ explicit_instantiation/5.cc: Do not test allocator rebinding extension for C++2a. * testsuite/23_containers/unordered_multiset/requirements/ explicit_instantiation/3.cc: Do not run test for C++2a. * testsuite/23_containers/unordered_multiset/requirements/ explicit_instantiation/5.cc: Do not test allocator rebinding extension for C++2a. * testsuite/23_containers/unordered_set/requirements/ explicit_instantiation/3.cc: Do not run test for C++2a. * testsuite/23_containers/unordered_set/requirements/ explicit_instantiation/5.cc: Do not test allocator rebinding extension for C++2a. * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/ 2.cc: Remove redundant test. * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/ 3.cc: Do not run test for C++2a. * testsuite/23_containers/vector/requirements/explicit_instantiation/ 3.cc: Likewise. From-SVN: r272001
* Enforce allocator::value_type consistency for containers in C++2aJonathan Wakely2019-06-031-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In previous standards it is undefined for a container and its allocator to have a different value_type. Libstdc++ has traditionally allowed it as an extension, automatically rebinding the allocator to the container's value_type. Since GCC 8.1 that extension has been disabled for C++11 and later when __STRICT_ANSI__ is defined (i.e. for -std=c++11, -std=c++14, -std=c++17 and -std=c++2a). Since the acceptance of P1463R1 into the C++2a draft an incorrect allocator::value_type now requires a diagnostic. This patch implements that by enabling the static_assert for -std=gnu++2a as well. * doc/xml/manual/status_cxx2020.xml: Document P1463R1 status. * include/bits/forward_list.h [__cplusplus > 201703]: Enable allocator::value_type assertion for C++2a. * include/bits/hashtable.h: Likewise. * include/bits/stl_deque.h: Likewise. * include/bits/stl_list.h: Likewise. * include/bits/stl_map.h: Likewise. * include/bits/stl_multimap.h: Likewise. * include/bits/stl_multiset.h: Likewise. * include/bits/stl_set.h: Likewise. * include/bits/stl_vector.h: Likewise. * testsuite/23_containers/deque/48101-3_neg.cc: New test. * testsuite/23_containers/forward_list/48101-3_neg.cc: New test. * testsuite/23_containers/list/48101-3_neg.cc: New test. * testsuite/23_containers/map/48101-3_neg.cc: New test. * testsuite/23_containers/multimap/48101-3_neg.cc: New test. * testsuite/23_containers/multiset/48101-3_neg.cc: New test. * testsuite/23_containers/set/48101-3_neg.cc: New test. * testsuite/23_containers/unordered_map/48101-3_neg.cc: New test. * testsuite/23_containers/unordered_multimap/48101-3_neg.cc: New test. * testsuite/23_containers/unordered_multiset/48101-3_neg.cc: New test. * testsuite/23_containers/unordered_set/48101-3_neg.cc: New test. * testsuite/23_containers/vector/48101-3_neg.cc: New test. From-SVN: r271866
* PR libstdc++/85965 move is_invocable assertions againJonathan Wakely2019-05-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is another attempt to reduce how often the assertions are evaluated, so that code which doesn't try to use the function objects doesn't need them to be invocable. For _Rb_tree we access the _M_key_compare object directly, so can't put the assertions in an accessor function for it. However, every invocation of _M_key_compare is accompanied by a use of _S_key, so the assertions can be put in there. For _Hashtable there are member functions that are consistently used to obtain a hash code or test for equality, so the assertions can go in those members. PR libstdc++/85965 * include/bits/hashtable.h (_Hashtable::~_Hashtable()): Remove static assertions from the destructor. * include/bits/hashtable_policy.h (_Hash_code_base::_M_hash_code): Move static_assert for hash function to here. (_Hash_table_base::_M_equals): Move static_assert for equality predicate to here. * include/bits/stl_tree.h (_Rb_tree::_S_value(_Const_Link_type)): Remove. (_Rb_tree::_S_key(_Const_Link_type)): Move assertions here. Access the value directly instead of calling _S_value. (_Rb_tree::_S_value(_Const_Base_ptr)): Remove. (_Rb_tree::_S_key(_Const_Base_ptr)): Do downcast and forward to _S_key(_Const_Link_type). * testsuite/23_containers/set/85965.cc: Check construction, destruction, assignment and size() do not trigger the assertions. * testsuite/23_containers/unordered_set/85965.cc: Likewise. * testsuite/23_containers/map/48101_neg.cc: Call find and adjust expected errors. * testsuite/23_containers/multimap/48101_neg.cc: Likewise. * testsuite/23_containers/multiset/48101_neg.cc: Likewise. * testsuite/23_containers/set/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_map/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise. From-SVN: r271323
* Move from state of allocators (LWG2593)François Dumont2019-05-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2019-05-17 François Dumont <fdumont@gcc.gnu.org> Move from state of allocators (LWG2593) * include/bits/stl_deque.h (_Deque_base(_Deque_base&&, false_type)): Remove. (_Deque_base(_Deque_base&&, true_type)): Remove. (_Deque_base(_Deque_base&&)): Adapt. (_Deque_base::_M_move_impl()): Remove. * testsuite/util/testsuite_allocator.h (propagating_allocator(propagating_allocator&&)): Preserve move from state. * testsuite/23_containers/deque/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/forward_list/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/list/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/map/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/multimap/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/multiset/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/set/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/unordered_map/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/unordered_multimap/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/unordered_multiset/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/unordered_set/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/vector/allocator/move_assign.cc (test02): Adapt. * testsuite/23_containers/vector/bool/allocator/move_assign.cc (test02): Adapt. * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test02): Adapt. * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc (test02): Adapt. From-SVN: r271309
* Remove Profile Mode, deprecated since GCC 7.1Jonathan Wakely2019-05-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Profile Mode extension is not used by anybody, nor maintained by anybody. The containers do not support the full API specified in recent standards, and so enabling Profile Mode is not source compatible with much modern C++ code. The heuristics that would check the profile information and make useful suggestions never materialized, so it isn't useful. It should be removed. Remove Profile Mode, deprecated since 7.1.0 * doc/Makefile.am: Remove XML file for profile mode docs. * doc/Makefile.in: Regenerate. * doc/xml/authors.xml: Remove authors of profile mode docs. * doc/xml/manual/appendix_contributing.xml: Remove mention of profile mode. * doc/xml/manual/debug.xml: Likewise. * doc/xml/manual/evolution.xml: Document removal of profile mode. * doc/xml/manual/profile_mode.xml: Remove profile mode docs. * doc/xml/manual/spine.xml: Remove profile mode author credit. * doc/xml/manual/test.xml: Remove docs for dg-require-profile-mode directive. * doc/xml/manual/using.xml: Remove docs for profile mode headers and macro. * doc/html/*: Regenerate. * include/Makefile.am: Remove profile mode headers. * include/Makefile.in: Regenerate. * include/bits/c++config (std::__profile): Remove namespace. [_GLIBCXX_PROFILE]: Remove checks for macro. * include/profile/array: Remove. * include/profile/base.h: Remove. * include/profile/bitset: Remove. * include/profile/deque: Remove. * include/profile/forward_list: Remove. * include/profile/impl/profiler.h: Remove. * include/profile/impl/profiler_algos.h: Remove. * include/profile/impl/profiler_container_size.h: Remove. * include/profile/impl/profiler_hash_func.h: Remove. * include/profile/impl/profiler_hashtable_size.h: Remove. * include/profile/impl/profiler_list_to_slist.h: Remove. * include/profile/impl/profiler_list_to_vector.h: Remove. * include/profile/impl/profiler_map_to_unordered_map.h: Remove. * include/profile/impl/profiler_node.h: Remove. * include/profile/impl/profiler_state.h: Remove. * include/profile/impl/profiler_trace.h: Remove. * include/profile/impl/profiler_vector_size.h: Remove. * include/profile/impl/profiler_vector_to_list.h: Remove. * include/profile/iterator_tracker.h: Remove. * include/profile/list: Remove. * include/profile/map: Remove. * include/profile/map.h: Remove. * include/profile/multimap.h: Remove. * include/profile/multiset.h: Remove. * include/profile/ordered_base.h: Remove. * include/profile/set: Remove. * include/profile/set.h: Remove. * include/profile/unordered_base.h: Remove. * include/profile/unordered_map: Remove. * include/profile/unordered_set: Remove. * include/profile/vector: Remove. * scripts/run_doxygen: Do not process profile mode headers. * testsuite/23_containers/array/element_access/60497.cc: Don't use profile mode type. * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc: Remove dg-skip-if for profile mode. * testsuite/23_containers/forward_list/capacity/1.cc: Remove preprocessor check for profile mode. * testsuite/23_containers/list/capacity/29134.cc: Likewise. * testsuite/23_containers/map/modifiers/extract.cc: Remove dg-skip-if for profile mode. * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Likewise. * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise. * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise. * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise. * testsuite/23_containers/set/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_multimap/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_multiset/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_set/modifiers/extract.cc: Likewise. * testsuite/23_containers/vector/bool/capacity/29134.cc: Remove preprocessor check for profile mode. * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: Likewise. * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: Remove dg-skip-if for profile mode. * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise. * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise. * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise. * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise. * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise. * testsuite/Makefile.am: Remove profile_flags variable and * testsuite/Makefile.am: Remove profile_flags variable and check-profile target. * testsuite/Makefile.in: Regenerate. * testsuite/ext/profile/all.cc: Remove. * testsuite/ext/profile/mutex_extensions_neg.cc: Remove. * testsuite/ext/profile/profiler_algos.cc: Remove. * testsuite/ext/profile/replace_new.cc: Remove. * testsuite/ext/throw_allocator/deallocate_global.cc: Remove preprocessor check for profile mode. * testsuite/ext/throw_allocator/deallocate_local.cc: Likewise. * testsuite/lib/libstdc++.exp (check_v3_target_profile_mode): Remove. (check_v3_target_normal_mode): Do not check for profile mode macro. * testsuite/libstdc++-prettyprinters/80276.cc: Remove dg-skip-if for profile mode. * testsuite/libstdc++-prettyprinters/compat.cc: Likewise. * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise. * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise. * testsuite/libstdc++-prettyprinters/debug.cc: Likewise. * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise. * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. * testsuite/libstdc++-prettyprinters/whatis2.cc: Likewise. From-SVN: r271120
* PR libstdc++/85965 delay static assertions until types are completeJonathan Wakely2019-03-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The static assertions added for PR libstdc++/48101 were at class scope and so were evaluated too eagerly, when it might not be possible to determine whether the function objects are invocable with the key types. The problematic cases are where the key type is not known to be convertible to the argument type(s) of the function object until later, after a type has been completed. Specifically, if the key type is a pointer to a derived class and the function object's argument type is a pointer to a base class, then the derived-to-base conversion is only valid once the derived type is complete. By moving the static assertions to the destructor they will only be evaluated when the destructor is instantiated, at which point whether the key type can be passed to the function object should be knowable. The ideal place to do the checks would be only when the function objects are actually invoked, but that would mean adding the checks in numerous places, so the destructor is used instead. The tests need to be adjusted because the "required from here" line is now the location of the destructor, not the point of instantiation in the test file. For the map and multimap tests which check two specializations, the dg-error matching the assertion text matches both cases. Also check the diagnostic output for the template arguments, to ensure both specializations trigger the assertion. PR libstdc++/85965 * include/bits/hashtable.h (_Hashtable): Move static assertions to destructor so they are not evaluated until the _Key type is complete. * include/bits/stl_tree.h (_Rb_tree): Likewise. * testsuite/23_containers/set/85965.cc: New test. * testsuite/23_containers/unordered_set/85965.cc: New test. * testsuite/23_containers/map/48101_neg.cc: Replace "here" errors with regexp matching the corresponding _Rb_tree specialization. * testsuite/23_containers/multimap/48101_neg.cc: Likewise. * testsuite/23_containers/multiset/48101_neg.cc: Remove "here" error. * testsuite/23_containers/set/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_map/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise. From-SVN: r269949
* PR libstdc++/89477 constrain deduction guides for maps and setsJonathan Wakely2019-02-261-8/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Compare, Hash, and Pred template parameters should be constrained in the C++17 deduction guides for associative and unordered containers. The deduction guides for stack, queue and priority_queue are already constrained, but this patch makes them use the _RequireNotAllocator helper instead of reproducing the logic each time. PR libstdc++/89477 * include/bits/alloc_traits.h (_RequireNotAllocator): New helper for container deduction guides. * include/bits/hashtable.h (_RequireNotAllocatorOrIntegral): Likewise. * include/bits/stl_map.h (map): Use _RequireNotAllocator to constrain parameters in deduction guides. * include/bits/stl_multimap.h (multimap): Likewise. * include/bits/stl_multiset.h (multiset): Likewise. * include/bits/stl_queue.h (queue, priority_queue): Likewise. * include/bits/stl_set.h (set): Likewise. * include/bits/stl_stack.h (stack): Likewise. * include/bits/unordered_map.h (unordered_map, unordered_multimap): use _RequireNotAllocator and _RequireNotAllocatorOrIntegral to constrain parameters in deduction guides. * include/bits/unordered_set.h (unordered_set, unordered_multiset): Likewise. * testsuite/23_containers/map/cons/deduction.cc: Test additional deduction cases. * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. * testsuite/23_containers/set/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_multimap/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_multiset/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise. From-SVN: r269234
* Update copyright years.Jakub Jelinek2019-01-0169-69/+69
| | | | From-SVN: r267494
* Skip tests for GNU extensions when testing with strict modeJonathan Wakely2018-10-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tests for the implicit allocator rebinding extension will fail if the extension is disabled, so skip them. * testsuite/23_containers/array/requirements/explicit_instantiation/ 3.cc: Skip test when compiled with a -std=c++NN strict mode. * testsuite/23_containers/deque/requirements/explicit_instantiation/ 3.cc: Likewise. * testsuite/23_containers/forward_list/requirements/ explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/list/requirements/explicit_instantiation/ 3.cc: Likewise. * testsuite/23_containers/map/requirements/explicit_instantiation/ 3.cc: Likewise. * testsuite/23_containers/multimap/requirements/explicit_instantiation/ 3.cc: Likewise. * testsuite/23_containers/multiset/requirements/explicit_instantiation/ 3.cc: Likewise. * testsuite/23_containers/set/requirements/explicit_instantiation/ 3.cc: Likewise. * testsuite/23_containers/unordered_map/requirements/ explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/unordered_multimap/requirements/ explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/unordered_multiset/requirements/ explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/unordered_set/requirements/ explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/ 3.cc: Likewise. * testsuite/23_containers/vector/requirements/explicit_instantiation/ 3.cc: Likewise. From-SVN: r265334
* Fix testsuite failures due to extra errors in strict dialectsJonathan Wakely2018-10-191-0/+1
| | | | | | | | | | | | | | | | | | When __STRICT_ANSI__ is defined the incorrect allocators used in these tests also trigger and additional static assertion. Prune those extra errors so that the tests don't fail when built with strict dialects. * testsuite/23_containers/deque/48101_neg.cc: Prune additional errors printed when __STRICT_ANSI__ is defined. * testsuite/23_containers/forward_list/48101_neg.cc: Likewise. * testsuite/23_containers/list/48101_neg.cc: Likewise. * testsuite/23_containers/multiset/48101_neg.cc: Likewise. * testsuite/23_containers/set/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise. * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise. * testsuite/23_containers/vector/48101_neg.cc: Likewise. From-SVN: r265333
* Conditionally disable tests of non-standard extensionsJonathan Wakely2018-10-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These tests include uses of the extension to allow allocators with the wrong value_type in containers. Skip those parts of the tests when __STRICT_ANIS__ is defined. * testsuite/23_containers/forward_list/requirements/ explicit_instantiation/5.cc [__STRICT_ANSI__]: Don't test non-standard extension. * testsuite/23_containers/list/requirements/explicit_instantiation/ 5.cc [__STRICT_ANSI__]: Likewise. * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise. * testsuite/23_containers/multimap/requirements/explicit_instantiation/ 5.cc [__STRICT_ANSI__]: Likewise. * testsuite/23_containers/multiset/requirements/explicit_instantiation/ 5.cc [__STRICT_ANSI__]: Likewise. * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise. * testsuite/23_containers/unordered_map/requirements/debug_container.cc [__STRICT_ANSI__]: Likewise. * testsuite/23_containers/unordered_map/requirements/ explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise. * testsuite/23_containers/unordered_multimap/requirements/ explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise. * testsuite/23_containers/unordered_multiset/requirements/ explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise. * testsuite/23_containers/unordered_set/requirements/ explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise. From-SVN: r265332
* Remove duplicate testsJonathan Wakely2018-10-191-30/+0
| | | | | | | | | | | | | | | | | | | | | These tests originally existed to check the containers in C++11 mode, when the default was C++98 mode. Now that the default is C++14 (and we run most tests for all modes) it serves no purpose to have two copies of the tests when neither is explicitly using -std=gnu++98 anyway. * testsuite/23_containers/list/requirements/explicit_instantiation/ 5_c++0x.cc: Remove redundant test that is functionally identical to the 5.cc test. * testsuite/23_containers/map/requirements/explicit_instantiation/ 5_c++0x.cc: Likewise. * testsuite/23_containers/multimap/requirements/explicit_instantiation/ 5_c++0x.cc: Likewise. * testsuite/23_containers/multiset/requirements/explicit_instantiation/ 5_c++0x.cc: Likewise. * testsuite/23_containers/set/requirements/explicit_instantiation/ 5_c++0x.cc: Likewise. From-SVN: r265329
* PR libstdc++/87194 fix range insertion into maps and setsJonathan Wakely2018-09-031-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since C++11 range insertion and construction of maps and sets from a pair of iterators only requires that the iterator's value_type is convertible to the container's value_type (previously it had to be the same). This fixes the implementation to meet that relaxed requirement, by defining a pair of overloads that either insert or emplace, depending on the iterator's value_type. Instead of adding yet another overload of _M_insert_unique and _M_insert_equal, the overloads taking iterators are renamed to _M_insert_range_unique and _M_insert_range_equal. PR libstdc++/87194 * include/bits/stl_map.h (map::map(initializer_list<value_type>, const Compare&, const Alloc&)) (map::map(initializer_list<value_type>, const Alloc&)) (map::map(InputIterator, InputIterator, const Alloc&)) (map::map(InputIterator, InputIterator)) (map::map(InputIterator, InputIterator, const Compare&, const Alloc&)) (map::insert(InputIterator, InputIterator)): Call _M_insert_range_unique instead of _M_insert_unique. * include/bits/stl_multimap.h (multimap::multimap(initializer_list<value_type>, const C&, const A&)) (multimap::multimap(initializer_list<value_type>, const A&)) (multimap::multimap(InputIterator, InputIterator, const A&)) (multimap::multimap(InputIterator, InputIterator)) (multimap::multimap(InputIterator, InputIterator, const C&, const A&)) (multimap::insert(InputIterator, InputIterator)): Call _M_insert_range_equal instead of _M_insert_equal. * include/bits/stl_multiset.h (multiset::multiset(InputIterator, InputIterator)) (multiset::multiset(InputIterator, InputIterator, const C&, const A&)) (multiset::multiset(initializer_list<value_type>, const C&, const A&)) (multiset::multiset(initializer_list<value_type>, const A&)) (multiset::multiset(InputIterator, InputIterator, const A&)) (multiset::insert(InputIterator, InputIterator)): Call _M_insert_range_equal instead of _M_insert_equal. * include/bits/stl_set.h (set::set(InputIterator, InputIterator)) (set::set(InputIterator, InputIterator, const Compare&, const Alloc&)) (set::set(initializer_list<value_type>, const Compare&, const Alloc&)) (set::set(initializer_list<value_type>, const Alloc&)) (set::set(InputIterator, InputIterator, const Alloc&)) (set::insert(InputIterator, InputIterator)): Call _M_insert_range_unique instead of _M_insert_unique. * include/bits/stl_tree.h [__cplusplus >= 201103L] (_Rb_tree::__same_value_type): New alias template for SFINAE constraints. [__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_unique): Pair of constrained overloads that either insert or emplace, depending on iterator's value_type. [__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_equal): Likewise. [__cplusplus < 201103L] (_Rb_tree::_M_insert_range_unique) (_Rb_tree::_M_insert_range_equal): New functions replacing range versions of _M_insert_unique and _M_insert_equal. (_Rb_tree::_M_insert_unique(_InputIterator, _InputIterator)) (_Rb_tree::_M_insert_equal(_InputIterator, _InputIterator)): Remove. * testsuite/23_containers/map/modifiers/insert/87194.cc: New test. * testsuite/23_containers/multimap/modifiers/insert/87194.cc: New test. * testsuite/23_containers/multiset/modifiers/insert/87194.cc: New test. * testsuite/23_containers/set/modifiers/insert/87194.cc: New test. From-SVN: r264060
* Forward declare debug containers so std::pmr aliases workJonathan Wakely2018-08-241-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prior to this change, including a <debug/xxx> header when _GLIBCXX_DEBUG is also defined would fail to compile in C++17 or later. The <debug/xxx> header would include the standard <xxx> header which defined std::pmr::xxx as an alias for std::xxx. But in Debug Mode std::xxx refers to std::__debug::xxx which has not been defined yet (because it is in <debug/xxx> after the inclusion of <xxx>). This adds declarations of the debug containers before including the non-Debug Mode <xxx> header, so that the std::pmr::xxx aliases work. * include/debug/deque (std::__debug::deque): Declare. * include/debug/forward_list (std::__debug::forward_list): Declare. * include/debug/list (std::__debug::list): Declare. * include/debug/map (std::__debug::map): Declare. * include/debug/set (std::__debug::set): Declare. * include/debug/unordered_map (std::__debug::unordered_map): Declare. * include/debug/unordered_set (std::__debug::unordered_set): Declare. * include/debug/vector (std::__debug::vector): Declare. * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/list/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/map/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/set/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: New test. * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: Adjust dg-error lineno. * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: New test. From-SVN: r263839
* Define aliases for containers using polymorphic_allocatorJonathan Wakely2018-08-101-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These aliases are placed in the top-level header, e.g. <vector> not <bits/stl_vector.h>. This ensures that they refer to whichever of std::vector or __debug::vector or __profile::vector is in use when the header is included. * include/std/deque (std::pmr::deque): Declare alias. * include/std/forward_list (std::pmr::forward_list): Likewise. * include/std/list (std::pmr::list): Likewise. * include/std/map (std::pmr::map, std::pmr::multimap): Likewise. * include/std/regex (std::pmr::match_results, std::pmr::cmatch) (std::pmr::smatch, std::pmr::wcmatch, std::pmr::wsmatch): Likewise. * include/std/set (std::pmr::set, std::pmr::multiset): Likewise. * include/std/string (std::pmr::basic_string, std::pmr::string) (std::pmr::u16string, std::pmr::u32string, std::pmr::wstring): Likewise. * include/std/unordered_map (std::pmr::unordered_map) (std::pmr::unordered_multimap): Likewise. * include/std/unordered_set (std::pmr::unordered_set) (std::pmr::unordered_multiset): Likewise. * include/std/vector (std::pmr::vector): Likewise. * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: New test. * testsuite/23_containers/deque/types/pmr_typedefs.cc: New test. * testsuite/23_containers/forward_list/pmr_typedefs.cc: New test. * testsuite/23_containers/list/pmr_typedefs.cc: New test. * testsuite/23_containers/map/pmr_typedefs.cc: New test. * testsuite/23_containers/multimap/pmr_typedefs.cc: New test. * testsuite/23_containers/multiset/pmr_typedefs.cc: New test. * testsuite/23_containers/set/pmr_typedefs.cc: New test. * testsuite/23_containers/unordered_map/pmr_typedefs.cc: New test. * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: New test. * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: New test. * testsuite/23_containers/unordered_set/pmr_typedefs.cc: New test. * testsuite/23_containers/vector/pmr_typedefs.cc: New test. * testsuite/28_regex/match_results/pmr_typedefs.cc: New test. From-SVN: r263456
* P0458R2 Checking for Existence of an Element in Associative ContainersJonathan Wakely2018-07-041-0/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | * include/bits/stl_map.h (map::contains): Add for C++2a. * include/bits/stl_multimap.h (multimap::contains): Likewise. * include/bits/stl_multiset.h (multiset::contains): Likewise. * include/bits/stl_set.h (set::contains): Likewise. * include/bits/stl_tree.h (__has_is_transparent_t): Define alias. (_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr) (_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr) (_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t. * include/bits/unordered_map.h (unordered_map::contains) (unordered_multimap::contains): Add for C++2a. * include/bits/unordered_set.h (unordered_set::contains) (unordered_multiset::contains): Likewise. * testsuite/23_containers/map/operations/contains.cc: New. * testsuite/23_containers/multimap/operations/contains.cc: New. * testsuite/23_containers/multiset/operations/contains.cc: New. * testsuite/23_containers/set/operations/contains.cc: New. * testsuite/23_containers/unordered_map/operations/contains.cc: New. * testsuite/23_containers/unordered_multimap/operations/contains.cc: New. * testsuite/23_containers/unordered_multiset/operations/contains.cc: New. * testsuite/23_containers/unordered_set/operations/contains.cc: New. From-SVN: r262418
* 2018-05-18 François Dumont <fdumont@gcc.gnu.org>François Dumont2018-05-182-1/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * include/bits/stl_tree.h (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New. (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter. (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New. (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters. * include/debug/map.h (map(map&&, const_allocator_type&)): Add noexcept qualitication. * include/debug/multimap.h (multimap(multimap&&, const_allocator_type&)): Likewise. * include/debug/set.h (set(set&&, const_allocator_type&)): Likewise. * include/debug/multiset.h (multiset(multiset&&, const_allocator_type&)): Likewise. * testsuite/23_containers/map/cons/noexcept_default_construct.cc: Add checks. * testsuite/23_containers/map/cons/noexcept_move_construct.cc: Add checks. * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc: Add checks. * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc: Add checks. * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc: Add checks. * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc: Add checks. * testsuite/23_containers/set/cons/noexcept_default_construct.cc: Add checks. * testsuite/23_containers/set/cons/noexcept_move_construct.cc: Add checks. From-SVN: r260382
* Update copyright years.Jakub Jelinek2018-01-0366-66/+66
| | | | From-SVN: r256169
* PR libstdc++/48101 improve errors for invalid container specializationsJonathan Wakely2017-11-212-0/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR libstdc++/48101 * include/bits/allocator.h (allocator<const _Tp>) (allocator<volatile _Tp>, allocator<const volatile _Tp>): Add partial specializations. * include/bits/forward_list.h (forward_list): Add static assertions. * include/bits/hashtable.h (__cache_default): Use __is_nothrow_invocable instead of __is_noexcept_hash. (_Hashtable): Add static assertions. * include/bits/hashtable_policy.h (__is_noexcept_hash): Remove. * include/bits/stl_deque.h (deque): Add static assertions. * include/bits/stl_function.h (_Identity<const _Tp>): Add partial specialization. * include/bits/stl_list.h (list): Add static assertions. * include/bits/stl_map.h (map): Likewise. * include/bits/stl_multimap.h (multimap): Likewise. * include/bits/stl_multiset.h (multiset): Likewise. * include/bits/stl_set.h (set): Likewise. * include/bits/stl_tree.h (_Rb_tree): Likewise. * include/bits/stl_vector.h (vector): Likewise. * include/bits/unordered_map.h (unordered_map, unordered_multimap): Use typename instead of class in template-parameter-list and remove spaces. * include/bits/unordered_set.h (unordered_set, unordered_multiset): Likewise. * testsuite/23_containers/deque/48101-2_neg.cc: New test. * testsuite/23_containers/deque/48101_neg.cc: New test. * testsuite/23_containers/forward_list/48101-2_neg.cc: New test. * testsuite/23_containers/forward_list/48101_neg.cc: New test. * testsuite/23_containers/list/48101-2_neg.cc: New test. * testsuite/23_containers/list/48101_neg.cc: New test. * testsuite/23_containers/map/48101-2_neg.cc: New test. * testsuite/23_containers/map/48101_neg.cc: New test. * testsuite/23_containers/map/operations/31440.cc: Fix comparison object to have const-qualified call operator. * testsuite/23_containers/multimap/48101-2_neg.cc: New test. * testsuite/23_containers/multimap/48101_neg.cc: New test. * testsuite/23_containers/multiset/48101-2_neg.cc: New test. * testsuite/23_containers/multiset/48101_neg.cc: New test. * testsuite/23_containers/set/48101-2_neg.cc: New test. * testsuite/23_containers/set/48101_neg.cc: New test. * testsuite/23_containers/unordered_map/48101-2_neg.cc: New test. * testsuite/23_containers/unordered_map/48101_neg.cc: New test. * testsuite/23_containers/unordered_multimap/48101-2_neg.cc: New test. * testsuite/23_containers/unordered_multimap/48101_neg.cc: New test. * testsuite/23_containers/unordered_multiset/48101-2_neg.cc: New test. * testsuite/23_containers/unordered_multiset/48101_neg.cc: New test. * testsuite/23_containers/unordered_set/48101-2_neg.cc: New test. * testsuite/23_containers/unordered_set/48101_neg.cc: New test. * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust dg-error line number. * testsuite/23_containers/vector/48101-2_neg.cc: New test. * testsuite/23_containers/vector/48101_neg.cc: New test. From-SVN: r255035
* Deduction guides for associative containers, debug mode deduction guide fixes.Ville Voutilainen2017-10-261-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * include/bits/stl_iterator.h (__iter_key_t) (__iter_val_t, __iter_to_alloc_t): New. * include/bits/stl_map.h: Add deduction guides. * include/bits/stl_multimap.h: Likewise. * include/bits/stl_multiset.h: Likewise. * include/bits/stl_set.h: Likewise. * include/bits/unordered_map.h: Likewise. * include/bits/unordered_set.h: Likewise. * include/debug/deque: Likewise. * include/debug/forward_list: Likewise. * include/debug/list: Likewise. * include/debug/map.h: Likewise. * include/debug/multimap.h: Likewise. * include/debug/multiset.h: Likewise. * include/debug/set.h: Likewise. * include/debug/unordered_map: Likewise. * include/debug/unordered_set: Likewise. * include/debug/vector: Likewise. * testsuite/23_containers/map/cons/deduction.cc: New. * testsuite/23_containers/multimap/cons/deduction.cc: Likewise. * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. * testsuite/23_containers/set/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_multimap/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_multiset/cons/deduction.cc: Likewise. * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise. From-SVN: r254113
* libstdc++.exp (check_v3_target_normal_mode): Add c++config.h include.François Dumont2017-10-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2017-10-24 François Dumont <fdumont@gcc.gnu.org> * testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add c++config.h include. (check_v3_target_normal_namespace): New. * testsuite/lib/dg-options.exp (dg-require-normal-namespace): New. * testsuite/18_support/headers/limits/synopsis.cc: Add latter. * testsuite/20_util/from_chars/requirements.cc: Likewise. * testsuite/20_util/headers/functional/synopsis.cc: Likewise. * testsuite/20_util/headers/memory/synopsis.cc: Likewise. * testsuite/20_util/headers/utility/synopsis.cc: Likewise. * testsuite/20_util/to_chars/requirements.cc: Likewise. * testsuite/21_strings/headers/string/synopsis.cc: Likewise. * testsuite/22_locale/headers/locale/synopsis.cc: Likewise. * testsuite/23_containers/headers/bitset/synopsis.cc: Likewise. * testsuite/23_containers/headers/deque/synopsis.cc: Likewise. * testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise. * testsuite/23_containers/headers/list/synopsis.cc: Likewise. * testsuite/23_containers/headers/map/synopsis.cc: Likewise. * testsuite/23_containers/headers/queue/synopsis.cc: Likewise. * testsuite/23_containers/headers/set/synopsis.cc: Likewise. * testsuite/23_containers/headers/stack/synopsis.cc: Likewise. * testsuite/23_containers/headers/vector/synopsis.cc: Likewise. * testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise. * testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise. * testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise. * testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise. * testsuite/24_iterators/headers/iterator/synopsis.cc: Likewise. * testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: Likewise. * testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: Likewise. * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise. * testsuite/26_numerics/complex/abi_tag.cc: Likewise. * testsuite/26_numerics/headers/complex/synopsis.cc: Likewise. * testsuite/26_numerics/headers/valarray/synopsis.cc: Likewise. * testsuite/27_io/headers/fstream/synopsis.cc: Likewise. * testsuite/27_io/headers/ios/synopsis.cc: Likewise. * testsuite/27_io/headers/istream/synopsis.cc: Likewise. * testsuite/27_io/headers/ostream/synopsis.cc: Likewise. * testsuite/27_io/headers/sstream/synopsis.cc: Likewise. * testsuite/27_io/headers/streambuf/synopsis.cc: Likewise. From-SVN: r254060
* Skip tests that are incompatible with Profile ModeJonathan Wakely2017-01-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc: Skip test when -D_GLIBCXX_PROFILE mode is included in options. * testsuite/23_containers/map/modifiers/extract.cc: Likewise. * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Likewise. * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise. * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise. * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise. * testsuite/23_containers/set/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_map/modifiers/extract.cc: Likewise. * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:: Likewise. * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:: Likewise. * testsuite/23_containers/unordered_set/modifiers/extract.cc: Likewise. * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: Likewise. * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise. * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise. * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise. * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise. * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise. * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise. * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise. * testsuite/libstdc++-prettyprinters/debug.cc: Likewise. * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise. * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. From-SVN: r244464
* PR78134 fix return types of heterogeneous lookup functionsJonathan Wakely2017-01-111-5/+22
| | | | | | | | | | | | | | | | | | PR libstdc++/78134 * include/bits/stl_map.h (map::lower_bound, map::upper_bound) (map::equal_range): Fix return type of heterogeneous overloads. * include/bits/stl_multimap.h (multimap::lower_bound) (multimap::upper_bound, multimap::equal_range): Likewise. * include/bits/stl_multiset.h (multiset::lower_bound) (multiset::upper_bound, multiset::equal_range): Likewise. * include/bits/stl_set.h (set::lower_bound, set::upper_bound) (set::equal_range): Likewise. * testsuite/23_containers/map/operations/2.cc * testsuite/23_containers/multimap/operations/2.cc * testsuite/23_containers/multiset/operations/2.cc * testsuite/23_containers/set/operations/2.cc From-SVN: r244318
* Update copyright years.Jakub Jelinek2017-01-0164-64/+64
| | | | From-SVN: r243994
* 57619.C: Rename to 57619.cc.Paolo Carlini2016-10-1728-61/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2016-10-17 Paolo Carlini <paolo.carlini@oracle.com> * testsuite/unordered_map/insert/57619.C: Rename to 57619.cc. * testsuite/23_containers/unordered_multimap/insert/57619.C: Likewise. 2016-10-17 Paolo Carlini <paolo.carlini@oracle.com> * testsuite/array/capacity/empty.cc: Remove 'test' variables. * testsuite/array/capacity/max_size.cc: Likewise. * testsuite/array/capacity/size.cc: Likewise. * testsuite/array/comparison_operators/equal.cc: Likewise. * testsuite/array/comparison_operators/greater.cc: Likewise. * testsuite/array/comparison_operators/greater_or_equal.cc: Likewise. * testsuite/array/comparison_operators/less.cc: Likewise. * testsuite/array/comparison_operators/less_or_equal.cc: Likewise. * testsuite/array/comparison_operators/not_equal.cc: Likewise. * testsuite/array/element_access/54388.cc: Likewise. * testsuite/array/element_access/at_out_of_range.cc: Likewise. * testsuite/array/element_access/back.cc: Likewise. * testsuite/array/element_access/data.cc: Likewise. * testsuite/array/element_access/front.cc: Likewise. * testsuite/array/iterators/end_is_one_past.cc: Likewise. * testsuite/array/requirements/contiguous.cc: Likewise. * testsuite/array/requirements/fill.cc: Likewise. * testsuite/array/requirements/member_swap.cc: Likewise. * testsuite/array/requirements/zero_sized_arrays.cc: Likewise. * testsuite/array/specialized_algorithms/swap.cc: Likewise. * testsuite/array/tuple_interface/tuple_element.cc: Likewise. * testsuite/array/tuple_interface/tuple_element_cpp14.cc: Likewise. * testsuite/array/tuple_interface/tuple_size.cc: Likewise. * testsuite/bitset/all/1.cc: Likewise. * testsuite/bitset/cons/1.cc: Likewise. * testsuite/bitset/cons/16020.cc: Likewise. * testsuite/bitset/cons/2.cc: Likewise. * testsuite/bitset/cons/3.cc: Likewise. * testsuite/bitset/cons/50268.cc: Likewise. * testsuite/bitset/cons/6282.cc: Likewise. * testsuite/bitset/cons/dr1325-2.cc: Likewise. * testsuite/bitset/cons/dr396.cc: Likewise. * testsuite/bitset/ext/15361.cc: Likewise. * testsuite/bitset/input/1.cc: Likewise. * testsuite/bitset/operations/1.cc: Likewise. * testsuite/bitset/operations/13838.cc: Likewise. * testsuite/bitset/operations/2.cc: Likewise. * testsuite/bitset/test/1.cc: Likewise. * testsuite/bitset/to_string/1.cc: Likewise. * testsuite/bitset/to_string/dr396.cc: Likewise. * testsuite/bitset/to_ullong/1.cc: Likewise. * testsuite/bitset/to_ulong/1.cc: Likewise. * testsuite/deque/allocator/copy.cc: Likewise. * testsuite/deque/allocator/copy_assign.cc: Likewise. * testsuite/deque/allocator/ext_ptr.cc: Likewise. * testsuite/deque/allocator/minimal.cc: Likewise. * testsuite/deque/allocator/move.cc: Likewise. * testsuite/deque/allocator/move_assign.cc: Likewise. * testsuite/deque/allocator/swap.cc: Likewise. * testsuite/deque/capacity/29134-2.cc: Likewise. * testsuite/deque/capacity/29134.cc: Likewise. * testsuite/deque/capacity/moveable.cc: Likewise. * testsuite/deque/capacity/resize_size.cc: Likewise. * testsuite/deque/capacity/shrink_to_fit.cc: Likewise. * testsuite/deque/cons/1.cc: Likewise. * testsuite/deque/cons/2.cc: Likewise. * testsuite/deque/cons/assign/1.cc: Likewise. * testsuite/deque/cons/cons_size.cc: Likewise. * testsuite/deque/cons/moveable.cc: Likewise. * testsuite/deque/modifiers/erase/1.cc: Likewise. * testsuite/deque/modifiers/erase/2.cc: Likewise. * testsuite/deque/modifiers/erase/3.cc: Likewise. * testsuite/deque/modifiers/erase/moveable.cc: Likewise. * testsuite/deque/modifiers/moveable.cc: Likewise. * testsuite/deque/modifiers/push_back/49836.cc: Likewise. * testsuite/deque/modifiers/push_front/49836.cc: Likewise. * testsuite/deque/modifiers/swap/1.cc: Likewise. * testsuite/deque/modifiers/swap/2.cc: Likewise. * testsuite/deque/modifiers/swap/3.cc: Likewise. * testsuite/deque/operators/1.cc: Likewise. * testsuite/deque/operators/2.cc: Likewise. * testsuite/forward_list/allocator/copy.cc: Likewise. * testsuite/forward_list/allocator/copy_assign.cc: Likewise. * testsuite/forward_list/allocator/ext_ptr.cc: Likewise. * testsuite/forward_list/allocator/minimal.cc: Likewise. * testsuite/forward_list/allocator/move.cc: Likewise. * testsuite/forward_list/allocator/move_assign.cc: Likewise. * testsuite/forward_list/allocator/swap.cc: Likewise. * testsuite/forward_list/capacity/1.cc: Likewise. * testsuite/forward_list/capacity/resize_size.cc: Likewise. * testsuite/forward_list/comparable.cc: Likewise. * testsuite/forward_list/cons/1.cc: Likewise. * testsuite/forward_list/cons/2.cc: Likewise. * testsuite/forward_list/cons/3.cc: Likewise. * testsuite/forward_list/cons/4.cc: Likewise. * testsuite/forward_list/cons/5.cc: Likewise. * testsuite/forward_list/cons/6.cc: Likewise. * testsuite/forward_list/cons/7.cc: Likewise. * testsuite/forward_list/cons/8.cc: Likewise. * testsuite/forward_list/cons/9.cc: Likewise. * testsuite/forward_list/cons/cons_size.cc: Likewise. * testsuite/forward_list/cons/moveable.cc: Likewise. * testsuite/forward_list/debug/clear.cc: Likewise. * testsuite/forward_list/debug/construct4_neg.cc: Likewise. * testsuite/forward_list/debug/erase_after1_neg.cc: Likewise. * testsuite/forward_list/debug/move_assign_neg.cc: Likewise. * testsuite/forward_list/debug/move_constructor.cc: Likewise. * testsuite/forward_list/debug/move_neg.cc: Likewise. * testsuite/forward_list/debug/splice_after.cc: Likewise. * testsuite/forward_list/debug/swap.cc: Likewise. * testsuite/forward_list/modifiers/1.cc: Likewise. * testsuite/forward_list/modifiers/2.cc: Likewise. * testsuite/forward_list/modifiers/3.cc: Likewise. * testsuite/forward_list/modifiers/4.cc: Likewise. * testsuite/forward_list/modifiers/5.cc: Likewise. * testsuite/forward_list/modifiers/6.cc: Likewise. * testsuite/forward_list/operations/1.cc: Likewise. * testsuite/forward_list/operations/2.cc: Likewise. * testsuite/forward_list/operations/3.cc: Likewise. * testsuite/forward_list/operations/4.cc: Likewise. * testsuite/forward_list/operations/5.cc: Likewise. * testsuite/forward_list/operations/6.cc: Likewise. * testsuite/forward_list/operations/7.cc: Likewise. * testsuite/forward_list/operations/remove_freed.cc: Likewise. * testsuite/list/61347.cc: Likewise. * testsuite/list/allocator/copy.cc: Likewise. * testsuite/list/allocator/copy_assign.cc: Likewise. * testsuite/list/allocator/minimal.cc: Likewise. * testsuite/list/allocator/move.cc: Likewise. * testsuite/list/allocator/move_assign.cc: Likewise. * testsuite/list/allocator/swap.cc: Likewise. * testsuite/list/capacity/1.h: Likewise. * testsuite/list/capacity/29134.cc: Likewise. * testsuite/list/capacity/resize_size.cc: Likewise. * testsuite/list/cons/1.h: Likewise. * testsuite/list/cons/2.h: Likewise. * testsuite/list/cons/3.h: Likewise. * testsuite/list/cons/4.h: Likewise. * testsuite/list/cons/5.h: Likewise. * testsuite/list/cons/6.h: Likewise. * testsuite/list/cons/7.h: Likewise. * testsuite/list/cons/8.h: Likewise. * testsuite/list/cons/9.h: Likewise. * testsuite/list/cons/cons_size.cc: Likewise. * testsuite/list/cons/moveable.h: Likewise. * testsuite/list/debug/invalidation/1.cc: Likewise. * testsuite/list/debug/invalidation/2.cc: Likewise. * testsuite/list/debug/invalidation/3.cc: Likewise. * testsuite/list/debug/invalidation/4.cc: Likewise. * testsuite/list/modifiers/1.h: Likewise. * testsuite/list/modifiers/2.h: Likewise. * testsuite/list/modifiers/3.h: Likewise. * testsuite/list/modifiers/insert/25288.h: Likewise. * testsuite/list/modifiers/swap/1.h: Likewise. * testsuite/list/modifiers/swap/2.h: Likewise. * testsuite/list/modifiers/swap/3.h: Likewise. * testsuite/list/operations/1.h: Likewise. * testsuite/list/operations/2.h: Likewise. * testsuite/list/operations/3.h: Likewise. * testsuite/list/operations/4.h: Likewise. * testsuite/list/operations/42352.cc: Likewise. * testsuite/map/allocator/copy.cc: Likewise. * testsuite/map/allocator/copy_assign.cc: Likewise. * testsuite/map/allocator/init-list.cc: Likewise. * testsuite/map/allocator/minimal.cc: Likewise. * testsuite/map/allocator/move.cc: Likewise. * testsuite/map/allocator/move_assign.cc: Likewise. * testsuite/map/allocator/swap.cc: Likewise. * testsuite/map/capacity/29134.cc: Likewise. * testsuite/map/cons/moveable.cc: Likewise. * testsuite/map/debug/construct5_neg.cc: Likewise. * testsuite/map/debug/move_assign_neg.cc: Likewise. * testsuite/map/debug/move_neg.cc: Likewise. * testsuite/map/element_access/1.cc: Likewise. * testsuite/map/element_access/2.cc: Likewise. * testsuite/map/element_access/39901.cc: Likewise. * testsuite/map/init-list.cc: Likewise. * testsuite/map/modifiers/dr130.cc: Likewise. * testsuite/map/modifiers/emplace/1.cc: Likewise. * testsuite/map/modifiers/extract.cc: Likewise. * testsuite/map/modifiers/insert/1.cc: Likewise. * testsuite/map/modifiers/insert/16813.cc: Likewise. * testsuite/map/modifiers/insert/2.cc: Likewise. * testsuite/map/modifiers/insert/3.cc: Likewise. * testsuite/map/modifiers/insert/4.cc: Likewise. * testsuite/map/modifiers/insert/5.cc: Likewise. * testsuite/map/modifiers/insert_or_assign/1.cc: Likewise. * testsuite/map/modifiers/merge.cc: Likewise. * testsuite/map/modifiers/swap/1.cc: Likewise. * testsuite/map/modifiers/swap/2.cc: Likewise. * testsuite/map/modifiers/swap/3.cc: Likewise. * testsuite/map/modifiers/try_emplace/1.cc: Likewise. * testsuite/map/operations/1.cc: Likewise. * testsuite/map/operations/count.cc: Likewise. * testsuite/map/operators/1_neg.cc: Likewise. * testsuite/map/operators/2.cc: Likewise. * testsuite/multimap/allocator/copy.cc: Likewise. * testsuite/multimap/allocator/copy_assign.cc: Likewise. * testsuite/multimap/allocator/init-list.cc: Likewise. * testsuite/multimap/allocator/minimal.cc: Likewise. * testsuite/multimap/allocator/move.cc: Likewise. * testsuite/multimap/allocator/move_assign.cc: Likewise. * testsuite/multimap/allocator/swap.cc: Likewise. * testsuite/multimap/capacity/29134.cc: Likewise. * testsuite/multimap/cons/moveable.cc: Likewise. * testsuite/multimap/debug/construct5_neg.cc: Likewise. * testsuite/multimap/debug/move_assign_neg.cc: Likewise. * testsuite/multimap/debug/move_neg.cc: Likewise. * testsuite/multimap/init-list.cc: Likewise. * testsuite/multimap/modifiers/dr130.cc: Likewise. * testsuite/multimap/modifiers/emplace/1.cc: Likewise. * testsuite/multimap/modifiers/extract.cc: Likewise. * testsuite/multimap/modifiers/insert/1.cc: Likewise. * testsuite/multimap/modifiers/insert/2.cc: Likewise. * testsuite/multimap/modifiers/insert/22102.cc: Likewise. * testsuite/multimap/modifiers/insert/3.cc: Likewise. * testsuite/multimap/modifiers/insert/4.cc: Likewise. * testsuite/multimap/modifiers/merge.cc: Likewise. * testsuite/multimap/modifiers/swap/1.cc: Likewise. * testsuite/multimap/modifiers/swap/2.cc: Likewise. * testsuite/multimap/modifiers/swap/3.cc: Likewise. * testsuite/multimap/operations/1.cc: Likewise. * testsuite/multimap/operations/count.cc: Likewise. * testsuite/multiset/allocator/copy.cc: Likewise. * testsuite/multiset/allocator/copy_assign.cc: Likewise. * testsuite/multiset/allocator/init-list.cc: Likewise. * testsuite/multiset/allocator/minimal.cc: Likewise. * testsuite/multiset/allocator/move.cc: Likewise. * testsuite/multiset/allocator/move_assign.cc: Likewise. * testsuite/multiset/allocator/swap.cc: Likewise. * testsuite/multiset/capacity/29134.cc: Likewise. * testsuite/multiset/cons/moveable.cc: Likewise. * testsuite/multiset/debug/construct5_neg.cc: Likewise. * testsuite/multiset/debug/invalidation/2.cc: Likewise. * testsuite/multiset/debug/move_assign_neg.cc: Likewise. * testsuite/multiset/debug/move_neg.cc: Likewise. * testsuite/multiset/init-list.cc: Likewise. * testsuite/multiset/modifiers/dr130.cc: Likewise. * testsuite/multiset/modifiers/emplace/1.cc: Likewise. * testsuite/multiset/modifiers/extract.cc: Likewise. * testsuite/multiset/modifiers/insert/1.cc: Likewise. * testsuite/multiset/modifiers/insert/2.cc: Likewise. * testsuite/multiset/modifiers/insert/22102.cc: Likewise. * testsuite/multiset/modifiers/insert/3.cc: Likewise. * testsuite/multiset/modifiers/insert/4.cc: Likewise. * testsuite/multiset/modifiers/merge.cc: Likewise. * testsuite/multiset/modifiers/swap/1.cc: Likewise. * testsuite/multiset/modifiers/swap/2.cc: Likewise. * testsuite/multiset/modifiers/swap/3.cc: Likewise. * testsuite/multiset/operations/1.cc: Likewise. * testsuite/multiset/operations/count.cc: Likewise. * testsuite/priority_queue/moveable.cc: Likewise. * testsuite/queue/moveable.cc: Likewise. * testsuite/set/allocator/copy.cc: Likewise. * testsuite/set/allocator/copy_assign.cc: Likewise. * testsuite/set/allocator/init-list.cc: Likewise. * testsuite/set/allocator/minimal.cc: Likewise. * testsuite/set/allocator/move.cc: Likewise. * testsuite/set/allocator/move_assign.cc: Likewise. * testsuite/set/allocator/swap.cc: Likewise. * testsuite/set/capacity/29134.cc: Likewise. * testsuite/set/cons/moveable.cc: Likewise. * testsuite/set/debug/construct5_neg.cc: Likewise. * testsuite/set/debug/invalidation/2.cc: Likewise. * testsuite/set/debug/move_assign_neg.cc: Likewise. * testsuite/set/debug/move_neg.cc: Likewise. * testsuite/set/init-list.cc: Likewise. * testsuite/set/modifiers/17948.cc: Likewise. * testsuite/set/modifiers/dr130.cc: Likewise. * testsuite/set/modifiers/emplace/1.cc: Likewise. * testsuite/set/modifiers/extract.cc: Likewise. * testsuite/set/modifiers/insert/1.cc: Likewise. * testsuite/set/modifiers/insert/2.cc: Likewise. * testsuite/set/modifiers/insert/3.cc: Likewise. * testsuite/set/modifiers/merge.cc: Likewise. * testsuite/set/modifiers/swap/1.cc: Likewise. * testsuite/set/modifiers/swap/2.cc: Likewise. * testsuite/set/modifiers/swap/3.cc: Likewise. * testsuite/set/operations/1.cc: Likewise. * testsuite/set/operations/count.cc: Likewise. * testsuite/set/operators/1_neg.cc: Likewise. * testsuite/unordered_map/allocator/copy.cc: Likewise. * testsuite/unordered_map/allocator/copy_assign.cc: Likewise. * testsuite/unordered_map/allocator/minimal.cc: Likewise. * testsuite/unordered_map/allocator/move.cc: Likewise. * testsuite/unordered_map/allocator/move_assign.cc: Likewise. * testsuite/unordered_map/allocator/swap.cc: Likewise. * testsuite/unordered_map/cons/moveable.cc: Likewise. * testsuite/unordered_map/debug/construct5_neg.cc: Likewise. * testsuite/unordered_map/debug/move_assign_neg.cc: Likewise. * testsuite/unordered_map/debug/move_neg.cc: Likewise. * testsuite/unordered_map/dr761.cc: Likewise. * testsuite/unordered_map/erase/1.cc: Likewise. * testsuite/unordered_map/erase/24061-map.cc: Likewise. * testsuite/unordered_map/erase/54276.cc: Likewise. * testsuite/unordered_map/hash_policy/dr1189.cc: Likewise. * testsuite/unordered_map/init-list.cc: Likewise. * testsuite/unordered_map/insert/24061-map.cc: Likewise. * testsuite/unordered_map/insert/57619.C: Likewise. * testsuite/unordered_map/insert/array_syntax.cc: Likewise. * testsuite/unordered_map/insert/array_syntax_move.cc: Likewise. * testsuite/unordered_map/insert/map_range.cc: Likewise. * testsuite/unordered_map/insert/map_single.cc: Likewise. * testsuite/unordered_map/insert/map_single_move-1.cc: Likewise. * testsuite/unordered_map/insert/map_single_move-2.cc: Likewise. * testsuite/unordered_map/modifiers/61667.cc: Likewise. * testsuite/unordered_map/modifiers/emplace.cc: Likewise. * testsuite/unordered_map/modifiers/extract.cc: Likewise. * testsuite/unordered_map/modifiers/insert_or_assign.cc: Likewise. * testsuite/unordered_map/modifiers/merge.cc: Likewise. * testsuite/unordered_map/modifiers/reserve.cc: Likewise. * testsuite/unordered_map/modifiers/try_emplace.cc: Likewise. * testsuite/unordered_map/operations/count.cc: Likewise. * testsuite/unordered_map/operators/1.cc: Likewise. * testsuite/unordered_map/operators/2.cc: Likewise. * testsuite/unordered_multimap/allocator/copy.cc: Likewise. * testsuite/unordered_multimap/allocator/copy_assign.cc: Likewise. * testsuite/unordered_multimap/allocator/minimal.cc: Likewise. * testsuite/unordered_multimap/allocator/move.cc: Likewise. * testsuite/unordered_multimap/allocator/move_assign.cc: Likewise. * testsuite/unordered_multimap/allocator/swap.cc: Likewise. * testsuite/unordered_multimap/cons/moveable.cc: Likewise. * testsuite/unordered_multimap/debug/construct5_neg.cc: Likewise. * testsuite/unordered_multimap/debug/move_assign_neg.cc: Likewise. * testsuite/unordered_multimap/debug/move_neg.cc: Likewise. * testsuite/unordered_multimap/erase/1.cc: Likewise. * testsuite/unordered_multimap/erase/2.cc: Likewise. * testsuite/unordered_multimap/erase/24061-multimap.cc: Likewise. * testsuite/unordered_multimap/erase/51845-multimap.cc: Likewise. * testsuite/unordered_multimap/erase/54276.cc: Likewise. * testsuite/unordered_multimap/hash_policy/dr1189.cc: Likewise. * testsuite/unordered_multimap/init-list.cc: Likewise. * testsuite/unordered_multimap/insert/24061-multimap.cc: Likewise. * testsuite/unordered_multimap/insert/51866.cc: Likewise. * testsuite/unordered_multimap/insert/52476.cc: Likewise. * testsuite/unordered_multimap/insert/53115.cc: Likewise. * testsuite/unordered_multimap/insert/57619.C: Likewise. * testsuite/unordered_multimap/insert/hint.cc: Likewise. * testsuite/unordered_multimap/insert/multimap_range.cc: Likewise. * testsuite/unordered_multimap/insert/multimap_single.cc: Likewise. * testsuite/unordered_multimap/insert/multimap_single_move-1.cc: Likewise. * testsuite/unordered_multimap/insert/multimap_single_move-2.cc: Likewise. * testsuite/unordered_multimap/modifiers/emplace.cc: Likewise. * testsuite/unordered_multimap/modifiers/extract.cc: Likewise. * testsuite/unordered_multimap/modifiers/merge.cc: Likewise. * testsuite/unordered_multimap/modifiers/reserve.cc: Likewise. * testsuite/unordered_multimap/operations/count.cc: Likewise. * testsuite/unordered_multimap/operators/1.cc: Likewise. * testsuite/unordered_multimap/operators/2.cc: Likewise. * testsuite/unordered_multiset/allocator/copy.cc: Likewise. * testsuite/unordered_multiset/allocator/copy_assign.cc: Likewise. * testsuite/unordered_multiset/allocator/minimal.cc: Likewise. * testsuite/unordered_multiset/allocator/move.cc: Likewise. * testsuite/unordered_multiset/allocator/move_assign.cc: Likewise. * testsuite/unordered_multiset/allocator/swap.cc: Likewise. * testsuite/unordered_multiset/cons/copy.cc: Likewise. * testsuite/unordered_multiset/cons/moveable.cc: Likewise. * testsuite/unordered_multiset/debug/construct5_neg.cc: Likewise. * testsuite/unordered_multiset/debug/move_assign_neg.cc: Likewise. * testsuite/unordered_multiset/debug/move_neg.cc: Likewise. * testsuite/unordered_multiset/erase/1.cc: Likewise. * testsuite/unordered_multiset/erase/2.cc: Likewise. * testsuite/unordered_multiset/erase/24061-multiset.cc: Likewise. * testsuite/unordered_multiset/hash_policy/dr1189.cc: Likewise. * testsuite/unordered_multiset/init-list.cc: Likewise. * testsuite/unordered_multiset/insert/24061-multiset.cc: Likewise. * testsuite/unordered_multiset/insert/51866.cc: Likewise. * testsuite/unordered_multiset/insert/52476.cc: Likewise. * testsuite/unordered_multiset/insert/53115.cc: Likewise. * testsuite/unordered_multiset/insert/hash_policy.cc: Likewise. * testsuite/unordered_multiset/insert/multiset_range.cc: Likewise. * testsuite/unordered_multiset/insert/multiset_single.cc: Likewise. * testsuite/unordered_multiset/insert/multiset_single_move.cc: Likewise. * testsuite/unordered_multiset/modifiers/emplace.cc: Likewise. * testsuite/unordered_multiset/modifiers/extract.cc: Likewise. * testsuite/unordered_multiset/modifiers/merge.cc: Likewise. * testsuite/unordered_multiset/modifiers/reserve.cc: Likewise. * testsuite/unordered_multiset/operations/count.cc: Likewise. * testsuite/unordered_multiset/operators/1.cc: Likewise. * testsuite/unordered_set/allocator/copy.cc: Likewise. * testsuite/unordered_set/allocator/copy_assign.cc: Likewise. * testsuite/unordered_set/allocator/ext_ptr.cc: Likewise. * testsuite/unordered_set/allocator/minimal.cc: Likewise. * testsuite/unordered_set/allocator/move.cc: Likewise. * testsuite/unordered_set/allocator/move_assign.cc: Likewise. * testsuite/unordered_set/allocator/swap.cc: Likewise. * testsuite/unordered_set/buckets/swap.cc: Likewise. * testsuite/unordered_set/cons/moveable.cc: Likewise. * testsuite/unordered_set/debug/construct5_neg.cc: Likewise. * testsuite/unordered_set/debug/debug_functions.cc: Likewise. * testsuite/unordered_set/debug/move_assign_neg.cc: Likewise. * testsuite/unordered_set/debug/move_neg.cc: Likewise. * testsuite/unordered_set/erase/1.cc: Likewise. * testsuite/unordered_set/erase/24061-set.cc: Likewise. * testsuite/unordered_set/hash_policy/26132.cc: Likewise. * testsuite/unordered_set/hash_policy/71181.cc: Likewise. * testsuite/unordered_set/hash_policy/dr1189.cc: Likewise. * testsuite/unordered_set/hash_policy/load_factor.cc: Likewise. * testsuite/unordered_set/hash_policy/power2_rehash.cc: Likewise. * testsuite/unordered_set/hash_policy/prime_rehash.cc: Likewise. * testsuite/unordered_set/hash_policy/rehash.cc: Likewise. * testsuite/unordered_set/init-list.cc: Likewise. * testsuite/unordered_set/insert/24061-set.cc: Likewise. * testsuite/unordered_set/insert/hash_policy.cc: Likewise. * testsuite/unordered_set/insert/move_range.cc: Likewise. * testsuite/unordered_set/insert/set_range.cc: Likewise. * testsuite/unordered_set/insert/set_single.cc: Likewise. * testsuite/unordered_set/insert/set_single_move.cc: Likewise. * testsuite/unordered_set/max_load_factor/robustness.cc: Likewise. * testsuite/unordered_set/modifiers/emplace.cc: Likewise. * testsuite/unordered_set/modifiers/extract.cc: Likewise. * testsuite/unordered_set/modifiers/merge.cc: Likewise. * testsuite/unordered_set/modifiers/reserve.cc: Likewise. * testsuite/unordered_set/modifiers/swap.cc: Likewise. * testsuite/unordered_set/operations/count.cc: Likewise. * testsuite/unordered_set/operators/1.cc: Likewise. * testsuite/vector/allocator/copy.cc: Likewise. * testsuite/vector/allocator/copy_assign.cc: Likewise. * testsuite/vector/allocator/ext_ptr.cc: Likewise. * testsuite/vector/allocator/minimal.cc: Likewise. * testsuite/vector/allocator/move.cc: Likewise. * testsuite/vector/allocator/move_assign.cc: Likewise. * testsuite/vector/allocator/swap.cc: Likewise. * testsuite/vector/bool/6886.cc: Likewise. * testsuite/vector/bool/72847.cc: Likewise. * testsuite/vector/bool/allocator/copy.cc: Likewise. * testsuite/vector/bool/allocator/copy_assign.cc: Likewise. * testsuite/vector/bool/allocator/ext_ptr.cc: Likewise. * testsuite/vector/bool/allocator/move.cc: Likewise. * testsuite/vector/bool/allocator/move_assign.cc: Likewise. * testsuite/vector/bool/allocator/swap.cc: Likewise. * testsuite/vector/bool/capacity/1.cc: Likewise. * testsuite/vector/bool/capacity/29134.cc: Likewise. * testsuite/vector/bool/capacity/shrink_to_fit.cc: Likewise. * testsuite/vector/bool/cons/1.cc: Likewise. * testsuite/vector/bool/cons/2.cc: Likewise. * testsuite/vector/bool/modifiers/erase/1.cc: Likewise. * testsuite/vector/bool/modifiers/insert/1.cc: Likewise. * testsuite/vector/bool/modifiers/insert/31370.cc: Likewise. * testsuite/vector/bool/modifiers/swap/1.cc: Likewise. * testsuite/vector/bool/modifiers/swap/2.cc: Likewise. * testsuite/vector/bool/swap.cc: Likewise. * testsuite/vector/capacity/1.cc: Likewise. * testsuite/vector/capacity/2.cc: Likewise. * testsuite/vector/capacity/29134-2.cc: Likewise. * testsuite/vector/capacity/29134.cc: Likewise. * testsuite/vector/capacity/44190.cc: Likewise. * testsuite/vector/capacity/8230.cc: Likewise. * testsuite/vector/capacity/reserve/moveable.cc: Likewise. * testsuite/vector/capacity/reserve/moveable2.cc: Likewise. * testsuite/vector/capacity/resize/1.cc: Likewise. * testsuite/vector/capacity/resize/moveable.cc: Likewise. * testsuite/vector/capacity/resize/moveable2.cc: Likewise. * testsuite/vector/capacity/resize/resize_size.cc: Likewise. * testsuite/vector/capacity/shrink_to_fit.cc: Likewise. * testsuite/vector/capacity/shrink_to_fit2.cc: Likewise. * testsuite/vector/cons/3.cc: Likewise. * testsuite/vector/cons/4.cc: Likewise. * testsuite/vector/cons/cons_size.cc: Likewise. * testsuite/vector/cons/moveable.cc: Likewise. * testsuite/vector/data_access/1.cc: Likewise. * testsuite/vector/debug/debug_functions.cc: Likewise. * testsuite/vector/debug/move_assign_neg.cc: Likewise. * testsuite/vector/debug/move_neg.cc: Likewise. * testsuite/vector/debug/multithreaded_swap.cc: Likewise. * testsuite/vector/element_access/1.cc: Likewise. * testsuite/vector/ext_pointer/citerators.cc: Likewise. * testsuite/vector/ext_pointer/data_access.cc: Likewise. * testsuite/vector/ext_pointer/modifiers/element.cc: Likewise. * testsuite/vector/ext_pointer/modifiers/erase.cc: Likewise. * testsuite/vector/ext_pointer/modifiers/insert.cc: Likewise. * testsuite/vector/ext_pointer/resize.cc: Likewise. * testsuite/vector/modifiers/1.cc: Likewise. * testsuite/vector/modifiers/2.cc: Likewise. * testsuite/vector/modifiers/emplace/self_emplace.cc: Likewise. * testsuite/vector/modifiers/erase/1.cc: Likewise. * testsuite/vector/modifiers/erase/moveable.cc: Likewise. * testsuite/vector/modifiers/insert/1.cc: Likewise. * testsuite/vector/modifiers/insert/self_insert.cc: Likewise. * testsuite/vector/modifiers/moveable.cc: Likewise. * testsuite/vector/modifiers/moveable2.cc: Likewise. * testsuite/vector/modifiers/push_back/49836.cc: Likewise. * testsuite/vector/modifiers/swap/1.cc: Likewise. * testsuite/vector/modifiers/swap/2.cc: Likewise. * testsuite/vector/modifiers/swap/3.cc: Likewise. * testsuite/vector/zero_sized_allocations.cc: Likewise. From-SVN: r241241
* 77864 Fix noexcept conditions for map/set default constructorsJonathan Wakely2016-10-051-0/+32
| | | | | | | | | | | | | | | | | | | PR libstdc++/77864 * include/bits/stl_map.h (map::map()): Use nothrow constructibility of comparison function in conditional noexcept. * include/bits/stl_multimap.h (multimap::multimap()): Likewise. * include/bits/stl_multiset.h (multiset::multiset()): Likewise. * include/bits/stl_set.h (set::set()): Likewise. * testsuite/23_containers/map/cons/noexcept_default_construct.cc: New test. * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc: Likewise. * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc: Likewise. * testsuite/23_containers/set/cons/noexcept_default_construct.cc: Likewise. From-SVN: r240780