Commit Graph

567 Commits

Author SHA1 Message Date
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