[libcxx] r338093 - Implement <filesystem>

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 26 20:27:18 PDT 2018


So this broke *all the tests*. Fix incoming shortly.


On Thu, Jul 26, 2018 at 9:11 PM Eric Fiselier via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> Author: ericwf
> Date: Thu Jul 26 20:07:09 2018
> New Revision: 338093
>
> URL: http://llvm.org/viewvc/llvm-project?rev=338093&view=rev
> Log:
> Implement <filesystem>
>
> This patch implements the <filesystem> header and uses that
> to provide <experimental/filesystem>.
>
> Unlike other standard headers, the symbols needed for <filesystem>
> have not yet been placed in libc++.so. Instead they live in the
> new libc++fs.a library. Users of filesystem are required to link this
> library. (Also note that libc++experimental no longer contains the
> definition of <experimental/filesystem>, which now requires linking
> libc++fs).
>
> The reason for keeping <filesystem> out of the dylib for now is that
> it's still somewhat experimental, and the possibility of requiring an
> ABI breaking change is very real. In the future the symbols will likely
> be moved into the dylib, or the dylib will be made to link libc++fs
> automagically).
>
> Note that moving the symbols out of libc++experimental may break user
> builds
> until they update to -lc++fs. This should be OK, because the experimental
> library provides no stability guarantees. However, I plan on looking into
> ways we can force libc++experimental to automagically link libc++fs.
>
> In order to use a single implementation and set of tests for <filesystem>,
> it
> has been placed in a special `__fs` namespace. This namespace is inline in
> C++17 onward, but not before that. As such implementation is available
> in C++11 onward, but no filesystem namespace is present "directly", and
> as such name conflicts shouldn't occur in C++11 or C++14.
>
> Added:
>     libcxx/trunk/include/filesystem
>     libcxx/trunk/src/filesystem/
>     libcxx/trunk/src/filesystem/directory_iterator.cpp
>       - copied, changed from r338006,
> libcxx/trunk/src/experimental/filesystem/directory_iterator.cpp
>     libcxx/trunk/src/filesystem/filesystem_common.h
>       - copied, changed from r338006,
> libcxx/trunk/src/experimental/filesystem/filesystem_common.h
>     libcxx/trunk/src/filesystem/int128_builtins.cpp
>       - copied, changed from r338006,
> libcxx/trunk/src/experimental/filesystem/int128_builtins.cpp
>     libcxx/trunk/src/filesystem/operations.cpp
>       - copied, changed from r338006,
> libcxx/trunk/src/experimental/filesystem/operations.cpp
>     libcxx/trunk/test/libcxx/input.output/filesystems/
>
> libcxx/trunk/test/libcxx/input.output/filesystems/class.directory_entry/
>
> libcxx/trunk/test/libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/
>
> libcxx/trunk/test/libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/last_write_time.sh.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/libcxx/experimental/filesystem/class.directory_entry/directory_entry.mods/last_write_time.sh.cpp
>     libcxx/trunk/test/libcxx/input.output/filesystems/class.path/
>     libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.itr/
>
> libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.itr/iterator_db.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/libcxx/experimental/filesystem/class.path/path.itr/iterator_db.pass.cpp
>
> libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.itr/reverse_iterator_produces_diagnostic.fail.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/libcxx/experimental/filesystem/class.path/path.itr/reverse_iterator_produces_diagnostic.fail.cpp
>     libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.req/
>
> libcxx/trunk/test/libcxx/input.output/filesystems/class.path/path.req/is_pathable.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/libcxx/experimental/filesystem/class.path/path.req/is_pathable.pass.cpp
>
> libcxx/trunk/test/libcxx/input.output/filesystems/convert_file_time.sh.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/libcxx/experimental/filesystem/convert_file_time.sh.cpp
>     libcxx/trunk/test/libcxx/input.output/filesystems/lit.local.cfg
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/lit.local.cfg
>     libcxx/trunk/test/libcxx/input.output/filesystems/version.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/libcxx/experimental/filesystem/version.pass.cpp
>
> libcxx/trunk/test/std/input.output/file.streams/fstreams/filebuf.members/open_path.pass.cpp
>
> libcxx/trunk/test/std/input.output/file.streams/fstreams/fstream.cons/path.pass.cpp
>
> libcxx/trunk/test/std/input.output/file.streams/fstreams/fstream.members/open_path.pass.cpp
>
> libcxx/trunk/test/std/input.output/file.streams/fstreams/ifstream.cons/path.pass.cpp
>
> libcxx/trunk/test/std/input.output/file.streams/fstreams/ifstream.members/open_path.pass.cpp
>
> libcxx/trunk/test/std/input.output/file.streams/fstreams/ofstream.cons/path.pass.cpp
>
> libcxx/trunk/test/std/input.output/file.streams/fstreams/ofstream.members/open_path.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/
>     libcxx/trunk/test/std/input.output/filesystems/Inputs/
>     libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/bad_symlink
>  (contents, props changed)
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/bad_symlink
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/dir1/
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/afile3
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/afile3
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/dir3/
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/dir3/file5
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/dir3/file5
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/file4
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/file4
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/symlink_to_dir3
>  (contents, props changed)
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/symlink_to_dir3
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/dir1/file1
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/dir1/file1
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/dir1/file2
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/dir1/file2
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/empty_file
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/empty_file
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/non_empty_file
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/non_empty_file
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/symlink_to_dir
>  (contents, props changed)
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/symlink_to_dir
>
> libcxx/trunk/test/std/input.output/filesystems/Inputs/static_test_env/symlink_to_empty_file
>  (contents, props changed)
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/symlink_to_empty_file
>     libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/copy.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy_assign.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/copy_assign.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/default.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default_const.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/default_const.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/move.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move_assign.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/move_assign.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/path.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/path.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/assign.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.mods/assign.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/refresh.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.mods/refresh.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/replace_filename.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.mods/replace_filename.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/comparisons.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/comparisons.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_size.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/file_size.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/last_write_time.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/last_write_time.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/path.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/path.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/status.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/status.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/copy.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/ctor.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/ctor.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/default_ctor.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/default_ctor.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/increment.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/increment.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/move.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.nonmembers/
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.directory_iterator/types.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/types.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/class.file_status/
>
> libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.cons.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.file_status/file_status.cons.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.mods.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.file_status/file_status.mods.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.file_status/file_status.obs.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.file_status/file_status.obs.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/class.filesystem_error/
>
> libcxx/trunk/test/std/input.output/filesystems/class.filesystem_error/filesystem_error.members.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.filesystem_error/filesystem_error.members.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/class.path/
>     libcxx/trunk/test/std/input.output/filesystems/class.path/path.itr/
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.append.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.append.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/braced_init.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.assign/braced_init.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/copy.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.assign/copy.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/move.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.assign/move.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.assign/source.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.assign/source.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.compare.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.concat.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.concat.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/copy.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.construct/copy.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/default.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.construct/default.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/move.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.construct/move.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.construct/source.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.construct/source.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.decompose/
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.decompose/empty.fail.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.decompose/empty.fail.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.decompose/path.decompose.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.decompose/path.decompose.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.gen/
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_normal.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.gen/lexically_normal.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.generic.obs/named_overloads.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.generic.obs/named_overloads.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/clear.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/clear.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/make_preferred.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/make_preferred.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/remove_filename.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/remove_filename.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_extension.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/replace_extension.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_filename.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/replace_filename.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.modifiers/swap.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/swap.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/c_str.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/c_str.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/named_overloads.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/named_overloads.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/native.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/native.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/operator_string.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/operator_string.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.native.obs/string_alloc.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/string_alloc.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.query/
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.member/path.query/tested_in_path_decompose.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.query/tested_in_path_decompose.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/append_op.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/append_op.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/comparison_ops_tested_elsewhere.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/comparison_ops_tested_elsewhere.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/hash_value_tested_elswhere.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/hash_value_tested_elswhere.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.factory.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/path.factory.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/
> path.io.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/
> path.io.unicode_bug.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/
> path.io.unicode_bug.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/swap.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.path/synop.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/synop.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/
>
> libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/
>
> libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.nonmembers/
>
> libcxx/trunk/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/fs.enum/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.enum/check_bitmask_types.hpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/check_bitmask_types.hpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.copy_options.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/enum.copy_options.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.directory_options.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/enum.directory_options.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.file_type.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/enum.file_type.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.path.format.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/enum.path.format.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.perm_options.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/enum.perm_options.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.enum/enum.perms.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/enum.perms.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/fs.error.report/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.error.report/tested_elsewhere.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.error.report/tested_elsewhere.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/fs.filesystem.synopsis/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.filesystem.synopsis/file_time_type.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.filesystem.synopsis/file_time_type.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.absolute/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.absolute/absolute.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.absolute/absolute.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.canonical/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.canonical/canonical.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.canonical/canonical.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy/copy.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy/copy.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_symlink/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directories/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory_symlink/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_hard_link/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_symlink/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.current_path/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.current_path/current_path.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.current_path/current_path.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.exists/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.exists/exists.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.exists/exists.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.file_size/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.file_size/file_size.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.file_size/file_size.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.hard_lk_ct/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_other/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_other/is_other.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_other/is_other.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.permissions/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.permissions/permissions.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.permissions/permissions.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.proximate/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.proximate/proximate.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.proximate/proximate.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.read_symlink/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.relative/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.relative/relative.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.relative/relative.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove/remove.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove/remove.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove_all/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.rename/rename.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.resize_file/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.space/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.space/space.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.space/space.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.status/status.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status_known/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.status_known/status_known.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.status_known/status_known.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/fs.req.macros/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.req.macros/feature_macro.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/fs.req.namespace/
>
> libcxx/trunk/test/std/input.output/filesystems/fs.req.namespace/namespace.fail.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.assign/braced_init.pass.cpp
>
> libcxx/trunk/test/std/input.output/filesystems/fs.req.namespace/namespace.pass.cpp
>       - copied, changed from r338006,
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.assign/braced_init.pass.cpp
>     libcxx/trunk/test/std/input.output/filesystems/lit.local.cfg
>       - copied, changed from r338006,
> libcxx/trunk/test/libcxx/experimental/filesystem/lit.local.cfg
> Removed:
>     libcxx/trunk/src/experimental/filesystem/directory_iterator.cpp
>     libcxx/trunk/src/experimental/filesystem/filesystem_common.h
>     libcxx/trunk/src/experimental/filesystem/int128_builtins.cpp
>     libcxx/trunk/src/experimental/filesystem/operations.cpp
>
> libcxx/trunk/test/libcxx/experimental/filesystem/class.directory_entry/directory_entry.mods/last_write_time.sh.cpp
>
> libcxx/trunk/test/libcxx/experimental/filesystem/class.path/path.itr/iterator_db.pass.cpp
>
> libcxx/trunk/test/libcxx/experimental/filesystem/class.path/path.itr/reverse_iterator_produces_diagnostic.fail.cpp
>
> libcxx/trunk/test/libcxx/experimental/filesystem/class.path/path.req/is_pathable.pass.cpp
>
> libcxx/trunk/test/libcxx/experimental/filesystem/convert_file_time.sh.cpp
>     libcxx/trunk/test/libcxx/experimental/filesystem/lit.local.cfg
>
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/bad_symlink
>
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/afile3
>
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/dir3/file5
>
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/file4
>
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/symlink_to_dir3
>
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/dir1/file1
>
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/dir1/file2
>
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/empty_file
>
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/non_empty_file
>
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/symlink_to_dir
>
> libcxx/trunk/test/std/experimental/filesystem/Inputs/static_test_env/symlink_to_empty_file
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/copy.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/copy_assign.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/default.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/default_const.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/move.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/move_assign.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.cons/path.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.mods/assign.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.mods/refresh.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.mods/replace_filename.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/comparisons.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/file_size.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/last_write_time.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/path.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/status.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/copy.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/ctor.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/default_ctor.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/increment.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/move.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.directory_iterator/types.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.file_status/file_status.cons.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.file_status/file_status.mods.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.file_status/file_status.obs.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.filesystem_error/filesystem_error.members.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.append.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.assign/braced_init.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.assign/copy.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.assign/move.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.assign/source.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.compare.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.concat.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.construct/copy.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.construct/default.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.construct/move.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.construct/source.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.decompose/empty.fail.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.decompose/path.decompose.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.gen/lexically_normal.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.generic.obs/named_overloads.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/clear.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/make_preferred.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/remove_filename.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/replace_extension.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/replace_filename.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.modifiers/swap.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/c_str.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/named_overloads.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/native.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/operator_string.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.native.obs/string_alloc.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.member/path.query/tested_in_path_decompose.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/append_op.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/comparison_ops_tested_elsewhere.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/hash_value_tested_elswhere.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/path.factory.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/
> path.io.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/
> path.io.unicode_bug.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.path/path.nonmember/swap.pass.cpp
>     libcxx/trunk/test/std/experimental/filesystem/class.path/synop.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/check_bitmask_types.hpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/enum.copy_options.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/enum.directory_options.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/enum.file_type.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/enum.path.format.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/enum.perm_options.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.enum/enum.perms.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.error.report/tested_elsewhere.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.filesystem.synopsis/file_time_type.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.absolute/absolute.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.canonical/canonical.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy/copy.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.current_path/current_path.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.exists/exists.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.file_size/file_size.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_other/is_other.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.permissions/permissions.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.proximate/proximate.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.relative/relative.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove/remove.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.rename/rename.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.space/space.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.status/status.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.status_known/status_known.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp
>
> libcxx/trunk/test/std/experimental/filesystem/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp
>     libcxx/trunk/test/std/experimental/filesystem/lit.local.cfg
> Modified:
>     libcxx/trunk/CMakeLists.txt
>     libcxx/trunk/docs/BuildingLibcxx.rst
>     libcxx/trunk/docs/UsingLibcxx.rst
>     libcxx/trunk/include/__config
>     libcxx/trunk/include/experimental/__config
>     libcxx/trunk/include/experimental/filesystem
>     libcxx/trunk/include/fstream
>     libcxx/trunk/include/module.modulemap
>     libcxx/trunk/lib/CMakeLists.txt
>     libcxx/trunk/test/libcxx/double_include.sh.cpp
>     libcxx/trunk/test/libcxx/experimental/filesystem/version.pass.cpp
>     libcxx/trunk/test/support/filesystem_include.hpp
>     libcxx/trunk/utils/libcxx/test/config.py
>     libcxx/trunk/www/cxx1z_status.html
>
> Modified: libcxx/trunk/CMakeLists.txt
> URL:
> http://llvm.org/viewvc/llvm-project/libcxx/trunk/CMakeLists.txt?rev=338093&r1=338092&r2=338093&view=diff
>
> ==============================================================================
> --- libcxx/trunk/CMakeLists.txt (original)
> +++ libcxx/trunk/CMakeLists.txt Thu Jul 26 20:07:09 2018
> @@ -107,6 +107,10 @@ option(LIBCXX_INSTALL_SUPPORT_HEADERS "I
>  cmake_dependent_option(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY
>          "Install libc++experimental.a" ON
>          "LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY;LIBCXX_INSTALL_LIBRARY" OFF)
> +cmake_dependent_option(LIBCXX_INSTALL_FILESYSTEM_LIBRARY
> +        "Install libc++fs.a" ON
> +        "LIBCXX_ENABLE_FILESYSTEM_LIBRARY;LIBCXX_INSTALL_LIBRARY" OFF)
> +
>  if (FUCHSIA)
>    set(DEFAULT_ABI_VERSION 2)
>  else()
>
> Modified: libcxx/trunk/docs/BuildingLibcxx.rst
> URL:
> http://llvm.org/viewvc/llvm-project/libcxx/trunk/docs/BuildingLibcxx.rst?rev=338093&r1=338092&r2=338093&view=diff
>
> ==============================================================================
> --- libcxx/trunk/docs/BuildingLibcxx.rst (original)
> +++ libcxx/trunk/docs/BuildingLibcxx.rst Thu Jul 26 20:07:09 2018
> @@ -242,11 +242,15 @@ libc++experimental Specific Options
>
>  .. option:: LIBCXX_ENABLE_FILESYSTEM:BOOL
>
> -  **Default**: ``LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY``
> +  **Default**: ``ON``
>
> -  Build filesystem as part of libc++experimental.a. This allows filesystem
> -  to be disabled without turning off the entire experimental library.
> +  Build filesystem as a standalone library libc++fs.a.
>
> +.. option:: LIBCXX_INSTALL_FILESYSTEM_LIBRARY:BOOL
> +
> +  **Default**: ``LIBCXX_ENABLE_FILESYSTEM AND LIBCXX_INSTALL_LIBRARY``
> +
> +  Install libc++fs.a alongside libc++.
>
>  .. _ABI Library Specific Options:
>
>
> Modified: libcxx/trunk/docs/UsingLibcxx.rst
> URL:
> http://llvm.org/viewvc/llvm-project/libcxx/trunk/docs/UsingLibcxx.rst?rev=338093&r1=338092&r2=338093&view=diff
>
> ==============================================================================
> --- libcxx/trunk/docs/UsingLibcxx.rst (original)
> +++ libcxx/trunk/docs/UsingLibcxx.rst Thu Jul 26 20:07:09 2018
> @@ -49,6 +49,24 @@ An example of using ``LD_LIBRARY_PATH``:
>    $ export LD_LIBRARY_PATH=<libcxx-install-prefix>/lib
>    $ ./a.out # Searches for libc++ along LD_LIBRARY_PATH
>
> +
> +Using ``<filesystem>`` and libc++fs
> +====================================
> +
> +Libc++ provides the implementation of the filesystem library in a separate
> +library. Users of ``<filesystem>`` and ``<experimental/filesystem>`` are
> +required to link ``-lc++fs``.
> +
> +.. note::
> +  Prior to libc++ 7.0, users of ``<experimental/filesystem>`` were
> required
> +  to link libc++experimental.
> +
> +.. warning::
> +  The Filesystem library is still experimental in nature. As such normal
> +  guarantees about ABI stability and backwards compatibility do not yet
> apply
> +  to it. In the future, this restriction will be removed.
> +
> +
>  Using libc++experimental and ``<experimental/...>``
>  =====================================================
>
> @@ -65,6 +83,9 @@ installed. For information on building l
>  :ref:`Building Libc++ <build instructions>` and
>  :ref:`libc++experimental CMake Options <libc++experimental options>`.
>
> +Note that as of libc++ 7.0 using the ``<experimental/filesystem>``
> requires linking
> +libc++fs instead of libc++experimental.
> +
>  Also see the `Experimental Library Implementation Status <
> http://libcxx.llvm.org/ts1z_status.html>`__
>  page.
>
>
> Modified: libcxx/trunk/include/__config
> URL:
> http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/__config?rev=338093&r1=338092&r2=338093&view=diff
>
> ==============================================================================
> --- libcxx/trunk/include/__config (original)
> +++ libcxx/trunk/include/__config Thu Jul 26 20:07:09 2018
> @@ -43,6 +43,18 @@
>  #  endif
>  #endif
>
> +#ifndef _LIBCPP_STD_VER
> +#  if  __cplusplus <= 201103L
> +#    define _LIBCPP_STD_VER 11
> +#  elif __cplusplus <= 201402L
> +#    define _LIBCPP_STD_VER 14
> +#  elif __cplusplus <= 201703L
> +#    define _LIBCPP_STD_VER 17
> +#  else
> +#    define _LIBCPP_STD_VER 18  // current year, or date of c++2a
> ratification
> +#  endif
> +#endif  // _LIBCPP_STD_VER
> +
>  #if defined(__ELF__)
>  #  define _LIBCPP_OBJECT_FORMAT_ELF   1
>  #elif defined(__MACH__)
> @@ -462,6 +474,19 @@ namespace std {
>    }
>  }
>
> +#if _LIBCPP_STD_VER >= 17
> +#define _LIBCPP_BEGIN_NAMESPACE_FILESYSTEM \
> +  _LIBCPP_BEGIN_NAMESPACE_STD inline namespace __fs { namespace
> filesystem {
> +#else
> +#define _LIBCPP_BEGIN_NAMESPACE_FILESYSTEM \
> +  _LIBCPP_BEGIN_NAMESPACE_STD namespace __fs { namespace filesystem {
> +#endif
> +
> +#define _LIBCPP_END_NAMESPACE_FILESYSTEM \
> +  _LIBCPP_END_NAMESPACE_STD } }
> +
> +#define _VSTD_FS _VSTD::__fs::filesystem
> +
>  #if !defined(_LIBCPP_HAS_NO_ASAN) && !__has_feature(address_sanitizer)
>  #define _LIBCPP_HAS_NO_ASAN
>  #endif
> @@ -959,18 +984,6 @@ template <unsigned> struct __static_asse
>  #define _LIBCPP_WCTYPE_IS_MASK
>  #endif
>
> -#ifndef _LIBCPP_STD_VER
> -#  if  __cplusplus <= 201103L
> -#    define _LIBCPP_STD_VER 11
> -#  elif __cplusplus <= 201402L
> -#    define _LIBCPP_STD_VER 14
> -#  elif __cplusplus <= 201703L
> -#    define _LIBCPP_STD_VER 17
> -#  else
> -#    define _LIBCPP_STD_VER 18  // current year, or date of c++2a
> ratification
> -#  endif
> -#endif  // _LIBCPP_STD_VER
> -
>  #if _LIBCPP_STD_VER > 11
>  #  define _LIBCPP_DEPRECATED [[deprecated]]
>  #else
>
> Modified: libcxx/trunk/include/experimental/__config
> URL:
> http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/experimental/__config?rev=338093&r1=338092&r2=338093&view=diff
>
> ==============================================================================
> --- libcxx/trunk/include/experimental/__config (original)
> +++ libcxx/trunk/include/experimental/__config Thu Jul 26 20:07:09 2018
> @@ -52,8 +52,6 @@
>
>  #define _VSTD_CORO _VSTD_EXPERIMENTAL::coroutines_v1
>
> -#define _VSTD_FS ::std::experimental::filesystem::v1
> -
>  #define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_SIMD \
>      _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace parallelism_v2 {
>
>
> Modified: libcxx/trunk/include/experimental/filesystem
> URL:
> http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/experimental/filesystem?rev=338093&r1=338092&r2=338093&view=diff
>
> ==============================================================================
> --- libcxx/trunk/include/experimental/filesystem (original)
> +++ libcxx/trunk/include/experimental/filesystem Thu Jul 26 20:07:09 2018
> @@ -231,21 +231,7 @@
>  */
>
>  #include <experimental/__config>
> -#include <cstddef>
> -#include <cstdlib>
> -#include <chrono>
> -#include <iterator>
> -#include <iosfwd>
> -#include <locale>
> -#include <memory>
> -#include <stack>
> -#include <string>
> -#include <system_error>
> -#include <utility>
> -#include <iomanip> // for quoted
> -#include <string_view>
> -
> -#include <__debug>
> +#include <filesystem>
>
>  #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
>  #pragma GCC system_header
> @@ -260,2453 +246,7 @@ _LIBCPP_PUSH_MACROS
>
>  _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_FILESYSTEM
>
> -struct _FilesystemClock {
> -#if !defined(_LIBCPP_HAS_NO_INT128)
> -  typedef __int128_t rep;
> -  typedef nano period;
> -#else
> -  typedef long long rep;
> -  typedef nano period;
> -#endif
> -
> -  typedef chrono::duration<rep, period> duration;
> -  typedef chrono::time_point<_FilesystemClock> time_point;
> -
> -  static _LIBCPP_CONSTEXPR_AFTER_CXX11 const bool is_steady = false;
> -
> -  _LIBCPP_FUNC_VIS static time_point now() noexcept;
> -
> -  _LIBCPP_INLINE_VISIBILITY
> -  static time_t to_time_t(const time_point& __t) noexcept {
> -    typedef chrono::duration<rep> __secs;
> -    return time_t(
> -        chrono::duration_cast<__secs>(__t.time_since_epoch()).count());
> -  }
> -
> -  _LIBCPP_INLINE_VISIBILITY
> -  static time_point from_time_t(time_t __t) noexcept {
> -    typedef chrono::duration<rep> __secs;
> -    return time_point(__secs(__t));
> -  }
> -};
> -
> -typedef chrono::time_point<_FilesystemClock> file_time_type;
> -
> -struct _LIBCPP_TYPE_VIS space_info
> -{
> -  uintmax_t capacity;
> -  uintmax_t free;
> -  uintmax_t available;
> -};
> -
> -enum class _LIBCPP_ENUM_VIS file_type : signed char
> -{
> -    none       = 0,
> -    not_found  = -1,
> -    regular    = 1,
> -    directory  = 2,
> -    symlink    = 3,
> -    block      = 4,
> -    character  = 5,
> -    fifo       = 6,
> -    socket     = 7,
> -    unknown    = 8
> -};
> -
> -enum class _LIBCPP_ENUM_VIS perms : unsigned
> -{
> -    none         = 0,
> -
> -    owner_read   = 0400,
> -    owner_write  = 0200,
> -    owner_exec   = 0100,
> -    owner_all    = 0700,
> -
> -    group_read   = 040,
> -    group_write  = 020,
> -    group_exec   = 010,
> -    group_all    = 070,
> -
> -    others_read  = 04,
> -    others_write = 02,
> -    others_exec  = 01,
> -    others_all   = 07,
> -
> -    all          = 0777,
> -
> -    set_uid      = 04000,
> -    set_gid      = 02000,
> -    sticky_bit   = 01000,
> -    mask         = 07777,
> -    unknown      = 0xFFFF,
> -};
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline constexpr perms operator&(perms _LHS, perms _RHS)
> -{ return static_cast<perms>(static_cast<unsigned>(_LHS) &
> static_cast<unsigned>(_RHS)); }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline constexpr perms operator|(perms _LHS, perms _RHS)
> -{ return static_cast<perms>(static_cast<unsigned>(_LHS) |
> static_cast<unsigned>(_RHS)); }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline constexpr perms operator^(perms _LHS, perms _RHS)
> -{ return static_cast<perms>(static_cast<unsigned>(_LHS) ^
> static_cast<unsigned>(_RHS)); }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline constexpr perms operator~(perms _LHS)
> -{ return static_cast<perms>(~static_cast<unsigned>(_LHS)); }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline perms& operator&=(perms& _LHS, perms _RHS)
> -{ return _LHS = _LHS & _RHS; }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline perms& operator|=(perms& _LHS, perms _RHS)
> -{ return _LHS = _LHS | _RHS; }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline perms& operator^=(perms& _LHS, perms _RHS)
> -{ return _LHS = _LHS ^ _RHS; }
> -
> -enum class _LIBCPP_ENUM_VIS perm_options : unsigned char {
> -  replace  = 1,
> -  add      = 2,
> -  remove   = 4,
> -  nofollow = 8
> -};
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline constexpr perm_options operator&(perm_options _LHS, perm_options
> _RHS)
> -{ return static_cast<perm_options>(static_cast<unsigned>(_LHS) &
> static_cast<unsigned>(_RHS)); }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline constexpr perm_options operator|(perm_options _LHS, perm_options
> _RHS)
> -{ return static_cast<perm_options>(static_cast<unsigned>(_LHS) |
> static_cast<unsigned>(_RHS)); }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline constexpr perm_options operator^(perm_options _LHS, perm_options
> _RHS)
> -{ return static_cast<perm_options>(static_cast<unsigned>(_LHS) ^
> static_cast<unsigned>(_RHS)); }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline constexpr perm_options operator~(perm_options _LHS)
> -{ return static_cast<perm_options>(~static_cast<unsigned>(_LHS)); }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline perm_options& operator&=(perm_options& _LHS, perm_options _RHS)
> -{ return _LHS = _LHS & _RHS; }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline perm_options& operator|=(perm_options& _LHS, perm_options _RHS)
> -{ return _LHS = _LHS | _RHS; }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline perm_options& operator^=(perm_options& _LHS, perm_options _RHS)
> -{ return _LHS = _LHS ^ _RHS; }
> -
> -enum class _LIBCPP_ENUM_VIS copy_options : unsigned short
> -{
> -    none               = 0,
> -    skip_existing      = 1,
> -    overwrite_existing = 2,
> -    update_existing    = 4,
> -    recursive          = 8,
> -    copy_symlinks      = 16,
> -    skip_symlinks      = 32,
> -    directories_only   = 64,
> -    create_symlinks    = 128,
> -    create_hard_links  = 256,
> -    __in_recursive_copy = 512,
> -};
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline constexpr copy_options operator&(copy_options _LHS, copy_options
> _RHS)
> -{ return static_cast<copy_options>(static_cast<unsigned short>(_LHS) &
> static_cast<unsigned short>(_RHS)); }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline constexpr copy_options operator|(copy_options _LHS, copy_options
> _RHS)
> -{ return static_cast<copy_options>(static_cast<unsigned short>(_LHS) |
> static_cast<unsigned short>(_RHS)); }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline constexpr copy_options operator^(copy_options _LHS, copy_options
> _RHS)
> -{ return static_cast<copy_options>(static_cast<unsigned short>(_LHS) ^
> static_cast<unsigned short>(_RHS)); }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline constexpr copy_options operator~(copy_options _LHS)
> -{ return static_cast<copy_options>(~static_cast<unsigned short>(_LHS)); }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline copy_options& operator&=(copy_options& _LHS, copy_options _RHS)
> -{ return _LHS = _LHS & _RHS; }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline copy_options& operator|=(copy_options& _LHS, copy_options _RHS)
> -{ return _LHS = _LHS | _RHS; }
> -
> -_LIBCPP_INLINE_VISIBILITY
> -inline copy_options& operator^=(copy_options& _LHS, copy_options _RHS)
> -{ return _LHS = _LHS ^ _RHS; }
> -
> -
> -enum class _LIBCPP_ENUM_VIS directory_options : unsigned char
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180726/3c3bd2ad/attachment-0001.html>


More information about the cfe-commits mailing list