gcc/libstdc++-v3/testsuite
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
..
17_intro Use effective-target instead of -std options 2016-08-26 12:41:37 +01:00
18_support Use effective-target instead of -std options 2016-08-26 12:41:37 +01:00
19_diagnostics Use effective-target instead of -std options 2016-08-26 12:41:37 +01:00
20_util Fix tests on old arm platforms for optional. 2016-09-22 14:01:29 +03:00
21_strings Fix dg-require before dg-run directives in testsuite. 2016-09-14 15:37:23 +02:00
22_locale [libstdc++-v3] Fix dg-require before dg-run directives in testsuite. 2016-09-12 09:03:50 +00:00
23_containers Implement C++17 node extraction and insertion (P0083R5) 2016-09-22 14:58:49 +01:00
24_iterators Use effective-target instead of -std options 2016-08-26 12:41:37 +01:00
25_algorithms Fix dg-require before dg-run directives in testsuite. 2016-09-14 15:37:23 +02:00
26_numerics Use effective-target instead of -std options 2016-08-26 12:41:37 +01:00
27_io Fix dg-require before dg-run directives in testsuite. 2016-09-14 15:37:23 +02:00
28_regex re PR libstdc++/77356 (regex error for a ECMAScript syntax string) 2016-08-27 02:03:23 +00:00
29_atomics [libstdc++-v3] Fix dg-require before dg-run directives in testsuite. 2016-09-12 09:03:50 +00:00
30_threads Use effective-target instead of -std options 2016-08-26 12:41:37 +01:00
abi
backward
config
data
decimal Use effective-target instead of -std options 2016-08-26 12:41:37 +01:00
experimental Use effective-target instead of -std options 2016-08-26 12:41:37 +01:00
ext Fix dg-require before dg-run directives in testsuite. 2016-09-14 15:37:23 +02:00
lib Make libstdc++ tests FAIL on Python errors 2016-09-19 16:59:04 +01:00
libstdc++-abi
libstdc++-dg
libstdc++-prettyprinters Implement C++17 node extraction and insertion (P0083R5) 2016-09-22 14:58:49 +01:00
libstdc++-xmethods Use effective-target instead of -std options 2016-08-26 12:41:37 +01:00
performance Use effective-target instead of -std options 2016-08-26 12:41:37 +01:00
special_functions
tr1 Use effective-target instead of -std options 2016-08-26 12:41:37 +01:00
tr2 Use effective-target instead of -std options 2016-08-26 12:41:37 +01:00
util Fix testsuite to not increment bool 2016-09-15 11:18:38 +01:00
Makefile.am
Makefile.in