gcc/libstdc++-v3/testsuite/util
Jonathan Wakely c7dde4a90a Share all recursive_directory_iterator state [LWG 2708]
Implement the proposed resolution of LWG 2708 by moving the _M_options
and _M_pending members out of the recursive_directory_iterator into the
shared _Dir_stack object. Because _Dir_stack is an opaque type, the
member functions that access the _M_options and _M_pending variables
cannot be inline. Move them into the library.

As a drive-by fix, add noexcept to the non-throwing member functions of
recursive_directory_iterator.

	* config/abi/pre/gnu.ver: Export new symbols.
	* include/bits/fs_dir.h (recursive_directory_iterator::options())
	(recursive_directory_iterator::recursion_pending())
	(recursive_directory_iterator::disable_recursion_pending()): Remove
	inline definitions. Make noexcept.
	(recursive_directory_iterator::depth())
	(recursive_directory_iterator::operator*())
	(recursive_directory_iterator::operator->()): Make noexcept.
	(recursive_directory_iterator::_M_options)
	(recursive_directory_iterator::_M_pending): Remove data members.
	* src/c++17/fs_path.cc (_Dir_stack): Add constructor and data members.
	(recursive_directory_iterator::recursive_directory_iterator): Remove
	ctor-initializer. Use new constructor for _Dir_stack.
	(recursive_directory_iterator::options())
	(recursive_directory_iterator::recursion_pending())
	(recursive_directory_iterator::disable_recursion_pending()): Add
	non-inline definitions.
	(recursive_directory_iterator::depth()): Make noexcept.
	(recursive_directory_iterator::increment(error_code&))
	(recursive_directory_iterator::pop(error_code&)): Adjust to new
	location of options and recursion_pending members.
	* testsuite/27_io/filesystem/iterators/recursion_pending.cc: New test.
	* testsuite/util/testsuite_fs.h (__gnu_test::scoped_file): Add
	user-declared move constructor and assignment operator, to make the
	type move-only.

From-SVN: r270173
2019-04-05 17:56:23 +01:00
..
common_type Update copyright years. 2019-01-01 13:31:55 +01:00
debug Update copyright years. 2019-01-01 13:31:55 +01:00
exception Update copyright years. 2019-01-01 13:31:55 +01:00
hash_fn Update copyright years. 2019-01-01 13:31:55 +01:00
io Update copyright years. 2019-01-01 13:31:55 +01:00
native_type Update copyright years. 2019-01-01 13:31:55 +01:00
performance Update copyright years. 2019-01-01 13:31:55 +01:00
pstl Integrate C++17 parallel algorithms 2019-03-21 23:48:49 +00:00
regression Update copyright years. 2019-01-01 13:31:55 +01:00
statistic Update copyright years. 2019-01-01 13:31:55 +01:00
thread Update copyright years. 2019-01-01 13:31:55 +01:00
replacement_memory_operators.h Fix tests that fail in C++2a mode 2019-01-29 00:47:32 +00:00
specfun_testcase.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_abi.cc P0482R5 char8_t: Standard library support 2019-02-19 02:54:42 +00:00
testsuite_abi.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_abi_check.cc Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_allocator.cc Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_allocator.h Fix test memory_resource to work without sized deallocation 2019-03-01 13:50:41 +00:00
testsuite_api.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_character.cc Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_character.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_common_types.h P0482R5 char8_t: Updates to existing standard library tests 2019-02-22 01:16:08 +00:00
testsuite_container_traits.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_containergen.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_containers.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_counter_type.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_error.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_fs.h Share all recursive_directory_iterator state [LWG 2708] 2019-04-05 17:56:23 +01:00
testsuite_greedy_ops.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_hooks.cc Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_hooks.h PR libstdc++/88740 Print assertion messages to stderr 2019-01-22 16:08:18 +00:00
testsuite_io.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_iterators.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_new_operators.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_performance.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_random.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_regex.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_rng.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_rvalref.h Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_shared.cc Update copyright years. 2019-01-01 13:31:55 +01:00
testsuite_tr1.h Update copyright years. 2019-01-01 13:31:55 +01:00