Jonathan Wakely
046a84762b
PR libstdc++/80893 Fix null dereference in vector<bool>
...
PR libstdc++/80893
* include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid
null pointer dereference when size is zero.
* testsuite/23_containers/vector/bool/80893.cc: New.
* testsuite/util/testsuite_allocator.h (PointerBase::PointerBase):
Add non-explicit constructor from nullptr.
(PointerBase::derived() const): Add const-qualified overload.
From-SVN: r248734
2017-05-31 13:41:45 +01:00
Jonathan Wakely
85c05b5eec
Fix order and types of members in C++17 insert_return_type structs
...
PR libstdc++/80761
* include/bits/node_handle.h (_Node_insert_return): Reorder members.
(tuple_size, tuple_element): Remove partial specializations.
* include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use
const_iterator for std::set.
* testsuite/23_containers/map/modifiers/extract.cc: New.
* testsuite/23_containers/set/modifiers/extract.cc: New.
* testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
* testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
From-SVN: r248062
2017-05-15 14:47:40 +01:00
Jonathan Wakely
b26f45f069
PR libstdc++/80553 don't allow destroying non-destructible types
...
PR libstdc++/80553
* include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static
assertions to ensure type is destructible.
(destroy_at, destroy, destroy_n): Move from stl_uninitialized.h.
* include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n):
Move to stl_construct.h.
* testsuite/20_util/specialized_algorithms/memory_management_tools/
destroy_neg.cc: New test.
* testsuite/23_containers/vector/cons/destructible_neg.cc: New test.
From-SVN: r247379
2017-04-28 13:56:53 +01:00
Jonathan Wakely
9425300b41
Improve tests for vector and deque move-assignment
...
* testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
comment. Ensure first test works because allocator type propagates and
not because is_always_equal is true.
* testsuite/23_containers/vector/52591.cc: Likewise. Restore original
testcase that instantiates the move-assignment operator.
From-SVN: r247284
2017-04-26 20:25:30 +01:00
Jonathan Wakely
01e3c2296a
Fix Debug Mode test failures
...
* testsuite/23_containers/array/tuple_interface/
tuple_element_debug_neg.cc: Adjust dg-error.
* testsuite/23_containers/list/operations/78389.cc: Fix less-than to
define a valid strict weak ordering.
* testsuite/23_containers/priority_queue/67085.cc: Disable test for
Debug Mode, due to debug checks making extra copies of predicate.
* testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
Likewise.
From-SVN: r246426
2017-03-23 19:40:41 +00:00
Jonathan Wakely
af181c91a9
Add deduction guides for C++17 (P0433R2, partial)
...
* include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
guides for C++17.
* include/bits/std_function.h (function): Likewise.
* include/bits/stl_pair.h (pair): Likewise.
* include/debug/array (__gnu_debug::array): Likewise.
* include/std/array (array): Likewise.
* include/std/functional (make_default_searcher)
(make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
Remove generator functions.
* include/std/tuple (tuple): Add deduction guides.
* include/std/valarray (valarray): Likewise.
* testsuite/20_util/function_objects/searchers.cc: Adjust to use
class template argument deduction instead of generator functions.
* testsuite/20_util/function/cons/deduction.cc: New test.
* testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
* testsuite/20_util/optional/cons/deduction.cc: ... here.
* testsuite/20_util/pair/cons/deduction.cc: New test.
* testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
* testsuite/20_util/tuple/cons/deduction.cc: New test.
* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
* testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
* testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
* testsuite/23_containers/array/cons/deduction.cc: New test.
* testsuite/23_containers/array/cons/deduction_neg.cc: New test.
* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
Adjust dg-error.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.
* testsuite/26_numerics/valarray/deduction.cc: New test.
* testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
* testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
* testsuite/30_threads/unique_lock/cons/deduction.cc: New test.
From-SVN: r246389
2017-03-22 15:58:35 +00:00
Ville Voutilainen
648c989484
re PR libstdc++/80034 (unqualified calls to std::distance in std::list::sort)
...
PR libstdc++/80034
* include/bits/list.tcc (merge(list&&)): Use const for the size_t
in the catch-block.
(merge(list&&, _StrictWeakOrdering)): Likewise.
* testsuite/23_containers/list/operations/80034.cc: New.
From-SVN: r246107
2017-03-13 21:41:50 +02:00
Jonathan Wakely
881191e865
Fix libstdc++ testsuite failures in C++98 and C++11 mode
...
* testsuite/23_containers/list/operations/78389.cc: Fix for C++11
mode.
* testsuite/23_containers/priority_queue/requirements/constructible.cc:
Mark as unsupported in C++98 mode.
* testsuite/23_containers/queue/requirements/constructible.cc:
Likewise.
* testsuite/23_containers/stack/requirements/constructible.cc:
Likewise.
* testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode.
From-SVN: r244950
2017-01-26 19:39:53 +00:00
Jonathan Wakely
437f43cc78
PR67085 pass comparison functions by reference in heap algorithms
...
PR libstdc++/67085
* include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add
converting constructors from _Iter_less_iter.
(_Iter_comp_val, _Val_comp_iter): Add converting constructors from
_Iter_comp_iter.
(__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor.
(__val_comp_iter(_Iter_comp_iter<C>): Likewise.
* include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap)
(__make_heap, __sort_heap): Change _Compare parameters to references.
(__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap)
(__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison
functions as lvalues.
(is_heap): Call __is_heap_until directly to avoid copying __comp.
* testsuite/23_containers/priority_queue/67085.cc: Adjust test to
count copies during construction with empty sequence.
From-SVN: r244656
2017-01-19 23:07:52 +00:00
Jonathan Wakely
9ade9945a0
Fix unsafe moves inside loops
...
PR libstdc++/67085
* include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE.
(__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops.
* testsuite/23_containers/priority_queue/67085.cc: Adjust expected
number of copies.
* testsuite/25_algorithms/make_heap/movable.cc: New test.
From-SVN: r244650
2017-01-19 20:29:07 +00:00
Jonathan Wakely
45b48129d5
PR67085 move comparison functions in heap operations
...
PR libstdc++/67085
* include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap)
(pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use
_GLIBCXX_MOVE when passing comparison function to other functions.
(is_heap_until, is_heap): Use std::move when passing comparison
function.
* testsuite/23_containers/priority_queue/67085.cc: New test.
From-SVN: r244648
2017-01-19 18:26:41 +00:00
Ville Voutilainen
53426b63b3
PR libstdc++/78389 fix backwards size adjustments.
...
PR libstdc++/78389
* include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments.
(merge(list&&, _StrictWeakOrdering)): Likewise.
* testsuite/23_containers/list/operations/78389.cc: Add
better test for the sizes.
From-SVN: r244490
2017-01-16 13:36:33 +02:00
Jonathan Wakely
ac4664f9da
Skip tests that are incompatible with Profile Mode
...
* 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
2017-01-14 11:55:22 +00:00
Jonathan Wakely
90aa73309e
Define cxx11-abi effective target for libstdc++ tests
...
PR libstdc++/79075
* testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove
redundant option from cxxflags.
(check_effective_target_cxx11-abi): Define.
* testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi
effective target.
* testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise.
* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/char/minimal.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise.
* testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/char/noexcept.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
Likewise.
* testsuite/23_containers/list/61347.cc: Likewise.
* testsuite/27_io/basic_fstream/cons/base.cc: Likewise.
* testsuite/27_io/ios_base/failure/cxx11.cc: Likewise.
From-SVN: r244440
2017-01-13 14:57:33 +00:00
Ville Voutilainen
e5dcfacf43
re PR libstdc++/78389 (list::merge and list::sort are not exception safe)
...
PR libstdc++/78389
* include/bits/list.tcc (merge(list&&)):
Adjust list sizes if the comparator throws.
(merge(list&&, _StrictWeakOrdering)): Likewise.
(sort()): Splice elements back from the scratch buffers
if the comparator throws.
(sort(_StrictWeakOrdering)): Likewise.
* testsuite/23_containers/list/operations/78389.cc: New.
From-SVN: r244439
2017-01-13 16:46:25 +02:00
Jonathan Wakely
45cac8baeb
Mark test as XFAIL for C++17 mode
...
* testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark
XFAIL for C++17 until node reinsertion supports fancy pointers.
From-SVN: r244436
2017-01-13 13:01:48 +00:00
Jonathan Wakely
a1f009a65f
PR77528 partially revert r244278 and define default constructors
...
PR libstdc++/77528
* include/bits/stl_queue.h (queue, priority_queue): Remove default
member-initializers and define default constructors as templates with
constraints.
* include/bits/stl_stack.h (stack): Likewise.
* testsuite/23_containers/priority_queue/requirements/constructible.cc:
New.
* testsuite/23_containers/priority_queue/requirements/
explicit_instantiation/1.cc: Test more instantiations.
* testsuite/23_containers/priority_queue/requirements/
explicit_instantiation/1_c++98.cc: Likewise.
* testsuite/23_containers/queue/requirements/constructible.cc: New.
* testsuite/23_containers/stack/requirements/constructible.cc: New.
From-SVN: r244374
2017-01-12 17:28:36 +00:00
Jonathan Wakely
b744bf4e18
PR78134 fix return types of heterogeneous lookup functions
...
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
2017-01-11 14:44:15 +00:00
Jonathan Wakely
b091b8dc0b
PR78273 fix count to work with partitioning function
...
PR libstdc++/78273
* include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume
the heterogeneous comparison can only find one match.
* include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise.
* testsuite/23_containers/map/operations/2.cc: Test count works with
comparison function that just partitions rather than sorting.
* testsuite/23_containers/set/operations/2.cc: Likewise.
From-SVN: r244317
2017-01-11 14:44:04 +00:00
Jonathan Wakely
d2e1d4b713
PR77528 add default constructors for container adaptors
...
PR libstdc++/77528
* include/bits/stl_queue.h (queue::c): Add default member initializer.
(queue::queue()): Add constructor and define as defaulted.
(queue::queue(_Sequence&&)): Remove default argument.
(priority_queue::c, priority_queue::comp): Add default member
initializers.
(priority_queue::priority_queue()): Add constructor and define as
defaulted.
(priority_queue::priority_queue(const _Compare&, _Sequence&&)):
Remove default argument for first parameter.
* include/bits/stl_stack.h (stack::c): Add default member initializer.
(stack::stack()): Add constructor and define as defaulted.
(stack::stack(const _Sequence&)): Remove default argument.
* testsuite/23_containers/priority_queue/requirements/
explicit_instantiation/1.cc: Test explicit instantiation with
non-DefaultConstructible sequence.
* testsuite/23_containers/priority_queue/77528.cc: New test.
* testsuite/23_containers/priority_queue/requirements/
explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc.
* testsuite/23_containers/queue/77528.cc: New test.
* testsuite/23_containers/queue/requirements/explicit_instantiation/
1.cc: Test explicit instantiation with non-DefaultConstructible
sequence.
* testsuite/23_containers/queue/requirements/explicit_instantiation/
1_c++0x.cc: Replace with 1_c++98.cc.
* testsuite/23_containers/stack/77528.cc: New test.
* testsuite/23_containers/stack/requirements/explicit_instantiation/
1.cc: Test explicit instantiation with non-DefaultConstructible
sequence.
* testsuite/23_containers/stack/requirements/explicit_instantiation/
1_c++0x.cc: Replace with 1_c++98.cc.
From-SVN: r244278
2017-01-10 17:30:20 +00:00
Jakub Jelinek
cbe34bb5ed
Update copyright years.
...
From-SVN: r243994
2017-01-01 13:07:43 +01:00
Jonathan Wakely
36b8852641
Add assertion to _Rb_tree::erase to check for end iterators
...
* include/bits/stl_tree.h (_Rb_tree::_M_erase_aux(const_iterator)):
Add assertion for undefined argument.
(_Rb_tree::_M_erase_aux(const_iterator, const_iterator)): Call
_M_erase_aux directly instead of through erase.
(_Rb_tree::_M_erase_aux(const Key&)): Likewise.
* testsuite/23_containers/map/modifiers/erase/end_neg.cc: New test.
From-SVN: r243757
2016-12-16 18:13:09 +00:00
Jonathan Wakely
1d752b4fee
Delete std::swap for debug mode array
...
* include/debug/array (swap): Add deleted overload.
* include/bits/stl_pair.h (swap): Remove redundant inline keyword
from deleted overload.
* include/bits/unique_ptr.h (swap): Likewise.
* include/std/array (swap): Likewise.
* include/std/optional (swap): Likewise.
* include/std/tuple (swap): Likewise.
* include/std/variant (swap): Likewise.
* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
Adjust dg-error line numbers.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/
tuple_element_debug_neg.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.
From-SVN: r243437
2016-12-08 13:25:03 +00:00
Jonathan Wakely
1f153a1d2a
Replace dynamic exception specifications in testsuite
...
* testsuite/util/testsuite_hooks.h (THROW): Define.
* testsuite/util/replacement_memory_operators.h: Include
testsuite_hooks.h and use THROW macro.
* testsuite/util/testsuite_tr1.h: Likewise.
* testsuite/20_util/allocator/1.cc: Use THROW macro.
* testsuite/22_locale/locale/cons/12352.cc: Likewise.
* testsuite/23_containers/vector/zero_sized_allocations.cc: Likewise.
* testsuite/30_threads/lock_guard/cons/1.cc: Replace dynamic exception
specification with noexcept-specifier.
* testsuite/ext/pool_allocator/allocate_chunk.cc: Include
testsuite_hooks.h and use THROW macro.
* testsuite/ext/profile/replace_new.cc: Likewise.
From-SVN: r243353
2016-12-07 15:22:51 +00:00
Ville Voutilainen
a2863bde75
Implement LWG 2766,
...
Swapping non-swappable types and LWG 2749,
swappable traits for variants.
* include/bits/move.h (swap(_Tp&, _Tp&)): Constrain
with __is_tuple_like.
* include/bits/stl_pair.h (swap(pair<_T1, _T2>&, pair<_T1, _T2>&)):
Add a deleted overload.
* include/bits/unique_ptr.h
(swap(unique_ptr<_Tp, _Dp>&, unique_ptr<_Tp, _Dp>&)): Likewise.
* include/std/array
(swap(array<_Tp, _Nm>&, array<_Tp, _Nm>&)): Likewise.
* include/std/optional
(swap(optional<_Tp>&, optional<_Tp>&)): Likewise.
* include/std/tuple (__is_tuple_like_impl, __is_tuple_like):
Move to type_traits.
(swap(tuple<_Elements...>&, tuple<_Elements...>&)): Add a deleted
overload.
* include/std/type_traits (__is_tuple_like_impl, __is_tuple_like):
New.
(swap(_Tp&, _Tp&)): Constrain with __is_tuple_like.
* include/std/utility (__is_tuple_like_impl): Move to type_traits.
* include/std/variant
(swap(variant<_Types...>&, variant<_Types...>&)):
Add a deleted overload.
* testsuite/20_util/optional/swap/2.cc: Add tests for disabled
swaps.
* testsuite/20_util/pair/swap_cxx17.cc: New.
* testsuite/20_util/tuple/swap_cxx17.cc: Likewise.
* testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc:
Likewise.
* testsuite/20_util/variant/compile.cc: Add tests for disabled
swaps.
* testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
New.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.
From-SVN: r243120
2016-12-01 18:23:21 +02:00
David Edelsohn
57e27acf28
re PR libstdc++/68838 (AIX 32 bit wchar_t testsuite failures)
...
PR libstdc++/68838
* testsuite/lib/libstdc++.exp (DEFAULT_CXXFLAGS): Add -Wl,-bmaxdata on AIX.
* testsuite/23_containers/vector/profile/vector.cc: Remove
dg-additional-options.
From-SVN: r242967
2016-11-29 12:50:27 -05:00
Paolo Carlini
a9260b7eb6
57619.C: Rename to 57619.cc.
...
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
2016-10-17 13:32:32 +00:00
Jonathan Wakely
594ef205ae
Implement P0084R2, Emplace return type, for C++17
...
* doc/xml/manual/status_cxx2017.xml: Update status.
* doc/html/*: Regenerate.
* include/bits/deque.tcc (deque::emplace_front, deque::emplace_back):
Return a reference in C++17 mode.
* include/bits/forward_list.h (forward_list::emplace_front): Likewise.
* include/bits/stl_bvector.h (vector<bool>::emplace_back): Likewise.
* include/bits/stl_deque.h (deque::emplace_front, deque::emplace_back):
Likewise.
* include/bits/stl_list.h (list::emplace_front, list::emplace_back):
Likewise.
* include/bits/stl_queue.h (queue::emplace): Likewise.
* include/bits/stl_stack.h (stack::emplace): Likewise.
* include/bits/stl_vector.h (vector::emplace_back): Likewise.
* include/bits/vector.tcc (vector::emplace_back): Likewise.
* include/debug/deque (__gnu_debug::deque::emplace_front)
(__gnu_debug::deque::emplace_back): Likewise.
* include/debug/vector (__gnu_debug::vector::emplace_back): Likewise.
* testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc:
New.
* testsuite/23_containers/forward_list/modifiers/
emplace_cxx17_return.cc: New.
* testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc: New.
* testsuite/23_containers/queue/members/emplace_cxx17_return.cc: New.
* testsuite/23_containers/stack/members/emplace_cxx17_return.cc: New.
* testsuite/23_containers/vector/bool/emplace_cxx17_return.cc: New.
* testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc:
New.
From-SVN: r241234
2016-10-17 13:00:38 +01:00
Jonathan Wakely
92805612f4
PR 70101 fix allocator-extended ctors for std::priority_queue
...
PR libstdc++/70101
* include/bits/stl_queue.h (priority_queue): Fix allocator-extended
constructors.
* testsuite/23_containers/priority_queue/allocator.cc: New test.
From-SVN: r240781
2016-10-05 13:01:57 +01:00
Jonathan Wakely
a2a64b499a
77864 Fix noexcept conditions for map/set default constructors
...
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
2016-10-05 13:01:51 +01:00
François Dumont
d8bbd665a1
debug.cc: Include debug/vector.
...
2016-09-25 François Dumont <fdumont@gcc.gnu.org>
* src/c++11/debug.cc: Include debug/vector. Include cctype. Remove
functional.
(get_safe_base_mutex): Get mutex based on address lowest non nil bits.
* testsuite/23_containers/vector/debug/mutex_association.cc: New.
From-SVN: r240479
2016-09-25 20:26:02 +00:00
Jonathan Wakely
2dbe56bdfb
Implement C++17 node extraction and insertion (P0083R5)
...
* doc/xml/manual/status_cxx2017.xml: Document status.
* doc/html/*: Regenerate.
* include/Makefile.am: Add bits/node_handle.h and reorder.
* include/Makefile.in: Regenerate.
* include/bits/hashtable.h (_Hashtable::node_type)
(_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
(_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
(_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
(_Hash_merge_helper): Define primary template.
* include/bits/node_handle.h: New header.
* include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
friend.
(map::node_type, map::insert_return_type, map::extract, map::merge)
(map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
Define new members.
(_Rb_tree_merge_helper): Specialize for map.
* include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
as friend.
(multimap::node_type, multimap::extract, multimap::merge)
(multimap::insert(node_type&&))
(multimap::insert(const_iterator, node_type&&)): Define.
(_Rb_tree_merge_helper): Specialize for multimap.
* include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
as friend.
(multiset::node_type, multiset::extract, multiset::merge)
(multiset::insert(node_type&&))
(multiset::insert(const_iterator, node_type&&)): Define.
* include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
friend.
(set::node_type, set::insert_return_type, set::extract, set::merge)
(set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
Define.
(_Rb_tree_merge_helper): Specialize for set.
* include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
(_Rb_tree::node_type, _Rb_tree::insert_return_type)
(_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
(_Rb_tree::_M_reinsert_node_hint_unique)
(_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
(_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
(_Rb_tree_merge_helper): Specialize for multiset.
* include/bits/unordered_map.h (unordered_map): Declare
unordered_map<> and unordered_multimap<> as friends.
(unordered_map::node_type, unordered_map::insert_return_type)
(unordered_map::extract, unordered_map::merge)
(unordered_map::insert(node_type&&))
(unordered_map::insert(const_iterator, node_type&&))
(unordered_multimap): Declare _Hash_merge_helper as friend.
(unordered_multimap::node_type, unordered_multimap::extract)
(unordered_multimap::merge, unordered_multimap::insert(node_type&&))
(unordered_multimap::insert(const_iterator, node_type&&)): Define.
(_Hash_merge_helper): Specialize for unordered maps and multimaps.
* include/bits/unordered_set.h (unordered_set, unordered_multiset):
Declare _Hash_merge_helper as friend.
(unordered_set::node_type, unordered_set::insert_return_type)
(unordered_set::extract, unordered_set::merge)
(unordered_set::insert(node_type&&))
(unordered_set::insert(const_iterator, node_type&&)): Define.
(unordered_multiset::node_type, unordered_multiset::extract)
(unordered_multiset::merge, unordered_multiset::insert(node_type&&))
(unordered_multiset::insert(const_iterator, node_type&&)): Define.
(_Hash_merge_helper): Specialize for unordered sets and multisets.
* include/debug/map.h (map): Add using declarations or forwarding
functions for new members.
* include/debug/map.h (multimap): Likewise.
* include/debug/map.h (multiset): Likewise.
* include/debug/map.h (set): Likewise.
* include/debug/unordered_map (unordered_map, unordered_multimap):
Likewise.
* include/debug/unordered_set( unordered_set, unordered_multiset):
Likewise.
* python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
helper function.
(get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
(StdNodeHandlePrinter): Define printer for node handles.
(build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
* testsuite/23_containers/map/modifiers/extract.cc: New.
* testsuite/23_containers/map/modifiers/merge.cc: New.
* testsuite/23_containers/multimap/modifiers/extract.cc: New.
* testsuite/23_containers/multimap/modifiers/merge.cc: New.
* testsuite/23_containers/multiset/modifiers/extract.cc: New.
* testsuite/23_containers/multiset/modifiers/merge.cc: New.
* testsuite/23_containers/set/modifiers/extract.cc: New.
* testsuite/23_containers/set/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
* testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
New.
* testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
New.
* testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
* testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
dg-error lineno.
* testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
From-SVN: r240363
2016-09-22 14:58:49 +01:00
Jonathan Wakely
0273c10e7b
Fix testsuite to not increment bool
...
* testsuite/23_containers/vector/debug/insert6_neg.cc: Remove
-Wno-deprecated.
* testsuite/util/debug/checks.h (generate_unique<bool>): Specialize.
From-SVN: r240157
2016-09-15 11:18:38 +01:00
Marek Polacek
20a1e5b8c8
typeck.c (cp_build_unary_op): Diagnose incrementing boolean expressions.
...
* typeck.c (cp_build_unary_op): Diagnose incrementing boolean
expressions. Tweak an error message.
* c-c++-common/gomp/atomic-12.c: Use -Wno-deprecated.
* c-c++-common/gomp/atomic-13.c: Likewise.
* c-c++-common/gomp/atomic-14.c: Likewise.
* g++.dg/cpp1y/lambda-init11.C: Remove invalid code.
* g++.dg/cpp1z/bool-increment1.C: New test.
* c-c++-common/pr60439.c: Add dg-warning.
* g++.dg/expr/bitfield4.C: Likewise.
* g++.dg/expr/bitfield5.C: Likewise.
* g++.dg/expr/bitfield6.C: Likewise.
* g++.dg/expr/bool1.C: Likewise.
* g++.dg/expr/bool3.C: Likewise.
* g++.dg/expr/lval3.C: Likewise.
* g++.dg/expr/lval4.C: Likewise.
* g++.old-deja/g++.jason/bool5.C: Likewise.
* g++.dg/expr/bitfield3.C: Adjust dg-error.
* g++.dg/other/error18.C: Likewise.
* g++.dg/gomp/atomic-14.C: Likewise.
libgomp/
* testsuite/libgomp.c++/atomic-3.C: Use -Wno-deprecated.
libstdc++-v3/
* testsuite/23_containers/vector/debug/insert6_neg.cc: Use
-Wno-deprecated.
From-SVN: r240141
2016-09-14 17:46:59 +00:00
Christophe Lyon
13cddbc115
Fix dg-require before dg-run directives in testsuite.
...
libstdc++-v3/ChangeLog:
2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
Move dg-do directive before dg-skip.
* testsuite/21_strings/debug/iterator_self_move_assign_neg.cc:
Move dg-do directive before dg-require.
* testsuite/21_strings/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/57779_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/60587_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/assign1_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/assign2_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/assign3_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/insert5_neg.cc: Likewise.
* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Likewise.
* testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
Likewise.
* testsuite/25_algorithms/pop_heap/empty2_neg.cc: Likewise.
* testsuite/25_algorithms/pop_heap/empty_neg.cc: Likewise.
* testsuite/27_io/objects/char/12048-5.cc: Likewise.
* testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
* testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
gcc/testsuite/ChangeLog:
2016-09-14 Christophe Lyon <christophe.lyon@linaro.org>
* g++.dg/cpp0x/lambda/lambda-mangle.C: Move dg-do directive before
dg-require.
* g++.dg/ext/builtin_alloca.C: Likewise.
* g++.dg/template/spec35.C: Likewise.
* gcc.dg/builtins-68.c: Likewise.
* gcc.misc-tests/gcov-13.c: Likewise.
* gcc.misc-tests/gcov-14.c: Likewise.
From-SVN: r240135
2016-09-14 15:37:23 +02:00
Matthew Wahab
684211e11b
[libstdc++-v3] Fix dg-require before dg-run directives in testsuite.
...
* testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc:
Move dg-do directive before dg-require.
* testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: Likewise.
* testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc:
Likewise.
* testsuite/22_locale/codecvt/utf8.cc: Likewise.
* testsuite/22_locale/locale/cons/unicode.cc: Likewise.
* testsuite/23_containers/deque/debug/assign1_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/assign2_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/assign3_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/insert5_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/deque/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/deque/debug/shrink_to_fit.cc: Likewise.
* testsuite/23_containers/forward_list/debug/60499.cc: Likewise.
* testsuite/23_containers/forward_list/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after2_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after3_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after4_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after5_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after6_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after7_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after8_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/erase_after9_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/insert_after1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/insert_after2_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/insert_after3_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/insert_after4_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/forward_list/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/forward_list/debug/splice_after1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/splice_after2_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/splice_after3_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/splice_after4_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/splice_after5_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/splice_after6_neg.cc: Likewise.
* testsuite/23_containers/forward_list/debug/splice_after7_neg.cc: Likewise.
* testsuite/23_containers/list/debug/assign1_neg.cc: Likewise.
* testsuite/23_containers/list/debug/assign2_neg.cc: Likewise.
* testsuite/23_containers/list/debug/assign3_neg.cc: Likewise.
* testsuite/23_containers/list/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/list/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/list/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/list/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/list/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/list/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/list/debug/insert5_neg.cc: Likewise.
* testsuite/23_containers/list/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/list/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/map/debug/60499.cc: Likewise.
* testsuite/23_containers/map/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/map/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/map/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/map/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/map/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/map/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/map/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/map/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/60499.cc: Likewise.
* testsuite/23_containers/multimap/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/multimap/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/multimap/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/60499.cc: Likewise.
* testsuite/23_containers/multiset/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/multiset/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/multiset/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/set/debug/60499.cc: Likewise.
* testsuite/23_containers/set/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/set/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/set/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/set/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/set/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/set/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/set/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/set/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/60499.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/begin1_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/begin2_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/bucket_size_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/cbegin_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/cend_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/end1_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/end2_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/invalid_local_iterator_compare_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/invalid_local_iterator_range_neg.cc: Likewise.
* testsuite/23_containers/unordered_map/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/max_load_factor_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/use_erased_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/use_invalid_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_map/debug/use_invalid_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/60499.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/begin1_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/begin2_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/bucket_size_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/cbegin_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/cend_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/construct1_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/construct2_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/construct3_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/end1_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/end2_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_compare_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/invalid_local_iterator_range_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/max_load_factor_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/use_erased_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/use_invalid_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/debug/use_invalid_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/60499.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/begin1_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/begin2_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/bucket_size_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/cbegin_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/cend_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/construct1_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/construct2_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/construct3_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/end1_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/end2_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_compare_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/invalid_local_iterator_range_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/max_load_factor_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/use_erased_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/use_invalid_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/debug/use_invalid_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/60499.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/begin1_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/begin2_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/bucket_size_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/cbegin_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/cend_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/construct1_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/construct2_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/construct3_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/end1_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/end2_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/insert1_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/insert2_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/insert3_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/debug/invalid_local_iterator_compare_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/invalid_local_iterator_range_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/max_load_factor_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/use_erased_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/use_invalid_iterator_neg.cc:
Likewise.
* testsuite/23_containers/unordered_set/debug/use_invalid_local_iterator_neg.cc:
Likewise.
* testsuite/23_containers/vector/debug/52433.cc: Likewise.
* testsuite/23_containers/vector/debug/60499.cc: Likewise.
* testsuite/23_containers/vector/debug/bool/shrink_to_fit.cc: Likewise.
* testsuite/23_containers/vector/debug/iterator_self_move_assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/debug/self_move_assign_neg.cc: Likewise.
* testsuite/23_containers/vector/debug/shrink_to_fit.cc: Likewise.
* testsuite/25_algorithms/pop_heap/complexity.cc: Likewise.
* testsuite/25_algorithms/push_heap/complexity.cc: Likewise.
* testsuite/25_algorithms/sort_heap/complexity.cc: Likewise.
* testsuite/29_atomics/atomic/60658.cc: Likewise.
* testsuite/29_atomics/atomic/60695.cc: Likewise.
* testsuite/29_atomics/atomic/62259.cc: Likewise.
* testsuite/29_atomics/atomic/64658.cc: Likewise.
* testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
* testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
* testsuite/29_atomics/atomic/operators/pointer_partial_void.cc: Likewise.
From-SVN: r240090
2016-09-12 09:03:50 +00:00
Jonathan Wakely
e46d22a821
Move comparison object in map/set move assignment
...
* include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move
comparison object.
* testsuite/23_containers/set/move_comparison.cc: New test.
From-SVN: r239897
2016-08-31 17:57:14 +01:00
Jonathan Wakely
52066eae5d
Use effective-target instead of -std options
...
* testsuite/*: Use { target c++11 } or { target c++14 } instead of
using -std in dg-options.
From-SVN: r239777
2016-08-26 12:41:37 +01:00
Jonathan Wakely
5ea387db6c
libstdc++/77334 move assign RB trees of non-copyable types
...
PR libstdc++/77334
* include/bits/stl_tree.h (_Rb_tree::_M_move_assign): New functions.
(_Rb_tree::operator=(_Rb_tree&&)): Dispatch to _M_move_assign.
* testsuite/23_containers/map/77334.cc: New test.
From-SVN: r239698
2016-08-23 14:15:12 +01:00
Jonathan Wakely
71c54f8ea2
Simplify dg-options for tests using pthreads
...
* testsuite/21_strings/basic_string/pthread18185.cc: Use -pthread for
*-*-solaris* instead of -pthreads.
* testsuite/21_strings/basic_string/pthread4.cc : Likewise.
* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
* testsuite/23_containers/list/pthread1.cc: Likewise.
* testsuite/23_containers/list/pthread5.cc: Likewise.
* testsuite/23_containers/map/pthread6.cc: Likewise.
* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
* testsuite/30_threads/shared_mutex/*: Likewise.
* testsuite/ext/rope/pthread7-rope.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/
default_weaktoshared.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/
mutex_weaktoshared.cc: Likewise.
* testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. Use
dg-require-effective-target instead of using -std option.
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
Likewise.
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
* testsuite/23_containers/vector/debug/multithreaded_swap.cc:
Likewise.
* testsuite/30_threads/async/*: Likewise.
* testsuite/30_threads/call_once/*: Likewise.
* testsuite/30_threads/condition_variable/*: Likewise.
* testsuite/30_threads/condition_variable_any/*: Likewise.
* testsuite/30_threads/future/*: Likewise.
* testsuite/30_threads/lock/*: Likewise.
* testsuite/30_threads/mutex/*: Likewise.
* testsuite/30_threads/packaged_task/*: Likewise.
* testsuite/30_threads/promise/*: Likewise.
* testsuite/30_threads/recursive_mutex/*: Likewise.
* testsuite/30_threads/recursive_timed_mutex/*: Likewise.
* testsuite/30_threads/shared_future/*: Likewise.
* testsuite/30_threads/shared_lock/*: Likewise.
* testsuite/30_threads/shared_timed_mutex/*: Likewise.
* testsuite/30_threads/this_thread/*: Likewise.
* testsuite/30_threads/thread/*: Likewise.
* testsuite/30_threads/timed_mutex/*: Likewise.
* testsuite/30_threads/try_lock/*: Likewise.
* testsuite/30_threads/unique_lock/*: Likewise.
From-SVN: r239624
2016-08-19 17:36:07 +01:00
Jonathan Wakely
32917686b0
PR 72847 Prevent double-free in std::vector<bool>
...
PR libstdc++/72847
* include/bits/stl_bvector.h (_Bvector_base::_M_deallocate): Zero
pointers to start and end of storage.
* testsuite/23_containers/vector/bool/72847.cc: New test.
* include/bits/vector.tcc (vector<bool>::_M_reallocate): Only update
_M_finish after deallocating.
(vector<bool>::_M_fill_insert): Likewise.
(vector<bool>::_M_insert_range): Likewise.
(vector<bool>::_M_insert_aux): Likewise.
From-SVN: r239497
2016-08-16 12:33:16 +01:00
Jonathan Wakely
9839ff60d0
Remove ignored "xfail" from dg-do compile directives
...
* testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
ignored "xfail" from { dg-do compile { xfail selector } } directive.
* testsuite/23_containers/unordered_multimap/requirements/53339.cc:
Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++11.cc: Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++98.cc: Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c.cc: Likewise.
From-SVN: r238954
2016-08-01 15:13:06 +01:00
Jonathan Wakely
ee62805728
Fix DR 438 std::list test to pass in C++98 mode
...
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Adjust dg-prune-output pattern for error in C++98 mode.
From-SVN: r238928
2016-07-31 20:21:59 +01:00
Jonathan Wakely
f245e3a0ee
Move dg-error directives to relevant lines
...
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Move
dg-error to relevant line.
* testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Likewise.
* testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
Likewise.
* testsuite/26_numerics/random/linear_congruential_engine/
requirements/non_uint_neg.cc: Likewise.
* testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc:
Likewise. Also test for std::atomic_address.
From-SVN: r238923
2016-07-31 17:51:08 +01:00
Jonathan Wakely
1a2196e484
Fix DR 438 container tests to pass in C++98 mode
...
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
Adjust dg-prune-output pattern for error in C++98 mode.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
From-SVN: r238837
2016-07-28 22:00:45 +01:00
Jonathan Wakely
e539b4ff2f
Fix std::vector test to pass in C++98 mode
...
* testsuite/23_containers/vector/check_construct_destroy.cc: Account
for different construct/destroy counts in C++98 mode.
From-SVN: r238836
2016-07-28 22:00:39 +01:00
Jonathan Wakely
8cab3d18f0
Move allocator in std::string and RB tree move constructors
...
PR libstdc++/71964
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
(basic_string::_Alloc_hider(pointer, _Alloc&&)): Add constructor.
* include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&)): Move allocator.
* testsuite/21_strings/basic_string/allocator/71964.cc: New test.
* testsuite/23_containers/set/allocator/71964.cc: New test.
From-SVN: r238647
2016-07-22 16:03:11 +01:00
Jonathan Wakely
509b778f6c
Define missing delete operators in libstdc++ testsuite
...
* testsuite/23_containers/vector/zero_sized_allocations.cc:
Define sized deallocation function.
* testsuite/util/testsuite_new_operators.h:
(operator delete(void*, const std::nothrow_t&)): Define nothrow
deallocation function.
From-SVN: r238610
2016-07-21 20:38:57 +01:00
Jonathan Wakely
22620c1452
Remove memory leaks in libstdc++ testsuite
...
* testsuite/18_support/new_delete_placement.cc: Don't allocate (and
leak) memory for arguments to placement delete.
* testsuite/20_util/addressof/1.cc: Don't leak memory.
* testsuite/22_locale/locale/global_locale_objects/3.cc: Likewise.
* testsuite/23_containers/unordered_multimap/insert/55028-debug.cc:
Likewise.
From-SVN: r238607
2016-07-21 20:38:32 +01:00
Jonathan Wakely
1b24fb4cd1
Add tests and docs for LWG 2212 support
...
* testsuite/20_util/pair/astuple/astuple.cc: Only include <utility>.
* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
Only include <array>.
* testsuite/23_containers/array/tuple_interface/tuple_size.cc:
Likewise.
* doc/xml/manual/intro.xml; Document LWG 2212 support.
* doc/html*: Regenerate.
From-SVN: r238244
2016-07-12 15:00:26 +01:00