From f36202620b428c45a1c8d91743727c9313424fb2 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Sat, 28 Jul 2018 11:07:56 +0000 Subject: Vendor import of libc++ trunk r338150: https://llvm.org/svn/llvm-project/libcxx/trunk@338150 --- CMakeLists.txt | 82 +- CREDITS.TXT | 2 +- NOTES.TXT | 1 + appveyor-reqs-install.cmd | 2 +- benchmarks/CMakeLists.txt | 3 +- benchmarks/ContainerBenchmarks.hpp | 2 +- benchmarks/GenerateInput.hpp | 6 +- benchmarks/algorithms.bench.cpp | 4 +- benchmarks/filesystem.bench.cpp | 59 +- benchmarks/string.bench.cpp | 25 +- benchmarks/stringstream.bench.cpp | 4 +- benchmarks/unordered_set_operations.bench.cpp | 4 +- benchmarks/util_smartptr.bench.cpp | 4 +- benchmarks/vector_operations.bench.cpp | 4 +- cmake/Modules/CheckLibcxxAtomic.cmake | 9 +- cmake/Modules/HandleCompilerRT.cmake | 3 + cmake/Modules/HandleLibCXXABI.cmake | 43 +- cmake/Modules/HandleOutOfTreeLLVM.cmake | 7 +- docs/BuildingLibcxx.rst | 10 +- docs/DesignDocs/AvailabilityMarkup.rst | 2 +- docs/DesignDocs/CapturingConfigInfo.rst | 2 +- docs/DesignDocs/FileTimeType.rst | 494 ++ docs/DesignDocs/ThreadingSupportAPI.rst | 4 + docs/DesignDocs/VisibilityMacros.rst | 26 +- docs/Makefile.sphinx | 2 +- docs/UsingLibcxx.rst | 21 + docs/conf.py | 4 +- docs/index.rst | 1 + fuzzing/fuzz_test.cpp | 195 + fuzzing/fuzzing.cpp | 70 +- include/CMakeLists.txt | 282 +- include/__bsd_locale_fallbacks.h | 22 +- include/__config | 940 ++-- include/__config_site.in | 1 + include/__errc | 218 + include/__functional_03 | 56 +- include/__functional_base | 14 +- include/__hash_table | 16 +- include/__libcpp_version | 2 +- include/__locale | 174 +- include/__mutex_base | 6 +- include/__nullptr | 16 +- include/__sso_allocator | 4 +- include/__string | 10 +- include/__threading_support | 281 +- include/__tree | 19 +- include/algorithm | 508 +- include/any | 6 +- include/array | 181 +- include/atomic | 9 +- include/chrono | 497 +- include/cmath | 12 +- include/codecvt | 36 +- include/compare | 679 +++ include/complex | 21 +- include/deque | 29 +- include/exception | 4 +- include/experimental/__config | 12 +- include/experimental/algorithm | 17 +- include/experimental/any | 583 +- include/experimental/chrono | 50 +- include/experimental/coroutine | 98 +- include/experimental/dynarray | 17 +- include/experimental/filesystem | 2051 +------ include/experimental/functional | 8 +- include/experimental/memory_resource | 26 +- include/experimental/numeric | 110 +- include/experimental/optional | 913 +-- include/experimental/propagate_const | 3 +- include/experimental/ratio | 68 +- include/experimental/simd | 1285 +++++ include/experimental/string_view | 809 +-- include/experimental/system_error | 54 +- include/experimental/tuple | 73 +- include/experimental/type_traits | 375 -- include/filesystem | 2682 +++++++++ include/forward_list | 41 +- include/fstream | 348 +- include/functional | 156 +- include/future | 12 +- include/initializer_list | 10 +- include/ios | 39 +- include/istream | 324 +- include/iterator | 113 +- include/list | 69 +- include/locale | 191 +- include/map | 125 +- include/math.h | 66 +- include/memory | 86 +- include/module.modulemap | 53 +- include/mutex | 6 +- include/new | 53 +- include/numeric | 38 +- include/optional | 19 +- include/ostream | 8 +- include/queue | 68 +- include/random | 2 +- include/ratio | 30 +- include/regex | 18 +- include/set | 8 +- include/span | 608 ++ include/stack | 24 +- include/stdexcept | 16 +- include/stdio.h | 7 - include/streambuf | 17 +- include/string | 472 +- include/string_view | 4 +- include/support/android/locale_bionic.h | 37 + include/support/win32/locale_win32.h | 8 + include/support/xlocale/__posix_l_fallback.h | 78 +- include/support/xlocale/__strtonum_fallback.h | 24 +- include/system_error | 244 +- include/tgmath.h | 16 +- include/thread | 2 +- include/tuple | 39 +- include/type_traits | 709 +-- include/typeinfo | 8 +- include/unordered_map | 112 +- include/utility | 25 +- include/valarray | 133 +- include/variant | 30 +- include/vector | 141 +- include/version | 25 + lib/CMakeLists.txt | 75 +- lib/abi/5.0/x86_64-apple-darwin16.abilist | 2378 ++++++++ lib/abi/5.0/x86_64-unknown-linux-gnu.abilist | 1883 +++++++ lib/abi/6.0/x86_64-apple-darwin16.abilist | 2378 ++++++++ lib/abi/6.0/x86_64-unknown-linux-gnu.abilist | 1883 +++++++ lib/abi/CHANGELOG.TXT | 18 + lib/abi/CMakeLists.txt | 28 +- lib/abi/x86_64-apple-darwin.v1.abilist | 2378 ++++++++ lib/abi/x86_64-apple-darwin.v2.abilist | 2418 ++++++++ lib/abi/x86_64-apple-darwin16.abilist | 2378 -------- lib/abi/x86_64-unknown-linux-gnu.abilist | 1883 ------- lib/abi/x86_64-unknown-linux-gnu.v1.abilist | 1883 +++++++ src/any.cpp | 14 +- src/chrono.cpp | 41 +- src/experimental/filesystem/directory_iterator.cpp | 342 -- .../filesystem/filesystem_time_helper.h | 173 - src/experimental/filesystem/operations.cpp | 808 --- src/experimental/filesystem/path.cpp | 448 -- src/experimental/memory_resource.cpp | 19 +- src/filesystem/directory_iterator.cpp | 396 ++ src/filesystem/filesystem_common.h | 429 ++ src/filesystem/int128_builtins.cpp | 55 + src/filesystem/operations.cpp | 1686 ++++++ src/include/apple_availability.h | 52 + src/include/config_elast.h | 4 +- src/locale.cpp | 5 +- src/optional.cpp | 16 +- src/support/runtime/exception_libcxxabi.ipp | 2 +- src/support/runtime/exception_msvc.ipp | 28 +- src/support/runtime/exception_pointer_msvc.ipp | 34 +- src/support/win32/locale_win32.cpp | 4 +- src/support/win32/support.cpp | 2 +- src/support/win32/thread_win32.cpp | 276 + src/typeinfo.cpp | 5 +- test/CMakeLists.txt | 13 +- .../libcxx/atomics/atomics.flag/init_bool.pass.cpp | 13 + .../sequences/array/array.zero/db_back.pass.cpp | 49 + .../sequences/array/array.zero/db_front.pass.cpp | 49 + .../array/array.zero/db_indexing.pass.cpp | 53 + .../db_sequence_container_iterators.pass.cpp | 57 + test/libcxx/depr/depr.c.headers/math_h.sh.cpp | 23 + test/libcxx/double_include.sh.cpp | 13 +- .../experimental/any/size_and_alignment.pass.cpp | 23 - test/libcxx/experimental/any/small_type.pass.cpp | 114 - test/libcxx/experimental/any/version.pass.cpp | 20 - .../class.path/path.itr/iterator_db.pass.cpp | 74 - .../reverse_iterator_produces_diagnostic.fail.cpp | 31 - .../class.path/path.member/path.append.pass.cpp | 70 - .../class.path/path.req/is_pathable.pass.cpp | 106 - .../filesystem/convert_file_time.sh.cpp | 200 - test/libcxx/experimental/filesystem/lit.local.cfg | 3 - .../experimental/filesystem/version.pass.cpp | 2 - .../construct_piecewise_pair.pass.cpp | 12 +- test/libcxx/experimental/optional/version.pass.cpp | 20 - .../ratio/header.ratio.synop/includes.pass.cpp | 23 - .../experimental/utilities/ratio/version.pass.cpp | 20 - .../header.system_error.synop/includes.pass.cpp | 21 - .../utilities/syserror/version.pass.cpp | 20 - .../time/header.chrono.synop/includes.pass.cpp | 21 - .../experimental/utilities/time/version.pass.cpp | 20 - .../tuple/header.tuple.synop/includes.pass.cpp | 20 - .../experimental/utilities/tuple/version.pass.cpp | 20 - .../fstreams/filebuf/traits_mismatch.fail.cpp | 24 + .../fstreams/fstream.cons/wchar_pointer.pass.cpp | 46 + .../fstream.members/open_wchar_pointer.pass.cpp | 52 + .../file.streams/fstreams/ifstream.cons/test.dat | 1 + .../fstreams/ifstream.cons/wchar_pointer.pass.cpp | 42 + .../ifstream.members/open_wchar_pointer.pass.cpp | 48 + .../fstreams/ifstream.members/test.dat | 1 + .../fstreams/ofstream.cons/wchar_pointer.pass.cpp | 60 + .../ofstream.members/open_wchar_pointer.pass.cpp | 60 + .../file.streams/fstreams/traits_mismatch.fail.cpp | 30 + .../directory_entry.mods/last_write_time.sh.cpp | 93 + .../class.path/path.itr/iterator_db.pass.cpp | 75 + .../reverse_iterator_produces_diagnostic.fail.cpp | 29 + .../class.path/path.req/is_pathable.pass.cpp | 104 + .../filesystems/convert_file_time.sh.cpp | 307 + test/libcxx/input.output/filesystems/lit.local.cfg | 3 + .../input.output/filesystems/version.pass.cpp | 20 + .../input.streams/traits_mismatch.fail.cpp | 29 + .../output.streams/traits_mismatch.fail.cpp | 29 + .../string.streams/traits_mismatch.fail.cpp | 26 + test/libcxx/iterators/failed.pass.cpp | 32 + test/libcxx/language.support/cmp/version.pass.cpp | 20 + .../support.limits/version.pass.cpp | 20 + test/libcxx/memory/is_allocator.pass.cpp | 42 + test/libcxx/min_max_macros.sh.cpp | 16 - test/libcxx/numerics/complex.number/__sqr.pass.cpp | 81 + .../string.modifiers/clear_and_shrink_db1.pass.cpp | 48 + .../futures/futures.promise/set_exception.pass.cpp | 16 +- .../set_exception_at_thread_exit.pass.cpp | 16 +- test/libcxx/type_traits/is_floating_point.pass.cpp | 24 + .../diagnose_reference_binding.fail.cpp | 40 - .../diagnose_reference_binding.pass.cpp | 71 - .../PR20855_tuple_ref_binding_diagnostics.fail.cpp | 85 + .../pairs/pairs.pair/assign_tuple_like.pass.cpp | 104 + test/lit.site.cfg.in | 4 + .../alg.copy/copy.pass.cpp | 19 +- .../alg.copy/copy_backward.pass.cpp | 21 +- .../alg.copy/copy_if.pass.cpp | 19 +- .../alg.copy/copy_n.pass.cpp | 19 +- .../alg.fill/fill.pass.cpp | 18 +- .../alg.fill/fill_n.pass.cpp | 20 +- .../alg.generate/generate.pass.cpp | 22 +- .../alg.generate/generate_n.pass.cpp | 29 +- .../alg.partitions/is_partitioned.pass.cpp | 19 +- .../alg.partitions/partition_copy.pass.cpp | 26 +- .../alg.partitions/partition_point.pass.cpp | 21 +- .../alg.remove/remove.pass.cpp | 18 +- .../alg.remove/remove_copy.pass.cpp | 21 +- .../alg.remove/remove_copy_if.pass.cpp | 23 +- .../alg.remove/remove_if.pass.cpp | 20 +- .../alg.replace/replace.pass.cpp | 19 +- .../alg.replace/replace_copy.pass.cpp | 23 +- .../alg.replace/replace_copy_if.pass.cpp | 25 +- .../alg.replace/replace_if.pass.cpp | 21 +- .../alg.reverse/reverse_copy.pass.cpp | 20 +- .../alg.rotate/rotate_copy.pass.cpp | 23 +- .../alg.transform/binary_transform.pass.cpp | 25 +- .../alg.transform/unary_transform.pass.cpp | 26 +- .../alg.unique/unique.pass.cpp | 19 +- .../alg.unique/unique_copy.pass.cpp | 21 +- .../alg.unique/unique_copy_pred.pass.cpp | 22 +- .../alg.unique/unique_pred.pass.cpp | 19 +- .../alg.adjacent.find/adjacent_find.pass.cpp | 18 +- .../alg.adjacent.find/adjacent_find_pred.pass.cpp | 21 +- .../alg.nonmodifying/alg.all_of/all_of.pass.cpp | 19 +- .../alg.nonmodifying/alg.any_of/any_of.pass.cpp | 19 +- .../alg.nonmodifying/alg.count/count.pass.cpp | 17 +- .../alg.nonmodifying/alg.count/count_if.pass.cpp | 20 +- .../alg.nonmodifying/alg.equal/equal.pass.cpp | 30 +- .../alg.nonmodifying/alg.equal/equal_pred.pass.cpp | 36 +- .../alg.find.end/find_end.pass.cpp | 26 +- .../alg.find.end/find_end_pred.pass.cpp | 28 +- .../alg.find.first.of/find_first_of.pass.cpp | 26 +- .../alg.find.first.of/find_first_of_pred.pass.cpp | 26 +- .../alg.nonmodifying/alg.find/find.pass.cpp | 17 +- .../alg.nonmodifying/alg.find/find_if.pass.cpp | 22 +- .../alg.nonmodifying/alg.find/find_if_not.pass.cpp | 21 +- .../alg.foreach/for_each_n.pass.cpp | 21 +- .../alg.nonmodifying/alg.foreach/test.pass.cpp | 18 +- .../alg.is_permutation/is_permutation.pass.cpp | 21 +- .../is_permutation_pred.pass.cpp | 45 +- .../alg.nonmodifying/alg.none_of/none_of.pass.cpp | 17 +- .../alg.nonmodifying/alg.search/search.pass.cpp | 55 +- .../alg.nonmodifying/alg.search/search_n.pass.cpp | 17 +- .../alg.search/search_n_pred.pass.cpp | 19 +- .../alg.search/search_pred.pass.cpp | 20 +- .../alg.nonmodifying/mismatch/mismatch.pass.cpp | 44 +- .../mismatch/mismatch_pred.pass.cpp | 48 +- .../binary.search/binary_search.pass.cpp | 22 +- .../binary.search/binary_search_comp.pass.cpp | 22 +- .../equal.range/equal_range.pass.cpp | 20 +- .../equal.range/equal_range_comp.pass.cpp | 22 +- .../lower.bound/lower_bound.pass.cpp | 22 +- .../lower.bound/lower_bound_comp.pass.cpp | 25 +- .../upper.bound/upper_bound.pass.cpp | 19 +- .../upper.bound/upper_bound_comp.pass.cpp | 21 +- .../alg.heap.operations/is.heap/is_heap.pass.cpp | 17 +- .../is.heap/is_heap_comp.pass.cpp | 17 +- .../is.heap/is_heap_until.pass.cpp | 17 +- .../is.heap/is_heap_until_comp.pass.cpp | 17 +- .../lexicographical_compare.pass.cpp | 18 +- .../lexicographical_compare_comp.pass.cpp | 19 +- .../alg.sorting/alg.merge/merge.pass.cpp | 24 +- .../alg.sorting/alg.merge/merge_comp.pass.cpp | 25 +- .../alg.set.operations/includes/includes.pass.cpp | 19 +- .../includes/includes_comp.pass.cpp | 21 +- .../set.intersection/set_intersection.pass.cpp | 25 +- .../set_intersection_comp.pass.cpp | 26 +- .../alg.sort/is.sorted/is_sorted.pass.cpp | 13 + .../alg.sort/is.sorted/is_sorted_comp.pass.cpp | 13 + .../alg.sort/is.sorted/is_sorted_until.pass.cpp | 13 + .../is.sorted/is_sorted_until_comp.pass.cpp | 13 + .../atomics.lockfree/isalwayslockfree.pass.cpp | 2 + .../associative/map/map.cons/move.pass.cpp | 4 +- .../map/map.ops/count_transparent.pass.cpp | 50 + .../map/map.ops/equal_range_transparent.pass.cpp | 60 + .../multimap/multimap.cons/move.pass.cpp | 4 +- .../multimap.ops/count_transparent.pass.cpp | 50 + .../multimap.ops/equal_range_transparent.pass.cpp | 60 + .../multiset/count_transparent.pass.cpp | 51 + .../multiset/equal_range_transparent.pass.cpp | 60 + .../associative/multiset/insert_cv.pass.cpp | 78 +- .../multiset/multiset.cons/move.pass.cpp | 4 +- .../associative/set/count_transparent.pass.cpp | 51 + .../set/equal_range_transparent.pass.cpp | 60 + .../containers/associative/set/insert_cv.pass.cpp | 87 +- .../associative/set/set.cons/move.pass.cpp | 4 +- .../priority.queue/priqueue.cons/deduct.fail.cpp | 58 + .../priority.queue/priqueue.cons/deduct.pass.cpp | 123 + .../queue/queue.cons/deduct.fail.cpp | 46 + .../queue/queue.cons/deduct.pass.cpp | 91 + .../queue/queue.defn/emplace.pass.cpp | 23 +- .../stack/stack.cons/deduct.fail.cpp | 53 + .../stack/stack.cons/deduct.pass.cpp | 94 + .../stack/stack.defn/emplace.pass.cpp | 23 +- .../allocator_move.pass.cpp | 106 + .../sequences/array/array.cons/deduct.fail.cpp | 37 + .../sequences/array/array.cons/deduct.pass.cpp | 65 + .../sequences/array/array.cons/default.pass.cpp | 17 + .../array/array.cons/implicit_copy.pass.cpp | 93 + .../sequences/array/array.data/data.pass.cpp | 30 +- .../sequences/array/array.data/data_const.pass.cpp | 19 + .../sequences/array/array.fill/fill.fail.cpp | 29 + .../sequences/array/array.swap/swap.fail.cpp | 30 + test/std/containers/sequences/array/at.pass.cpp | 20 + test/std/containers/sequences/array/begin.pass.cpp | 10 + .../containers/sequences/array/compare.fail.cpp | 71 + .../containers/sequences/array/compare.pass.cpp | 63 + test/std/containers/sequences/array/empty.fail.cpp | 5 +- .../containers/sequences/array/front_back.pass.cpp | 33 +- .../containers/sequences/array/indexing.pass.cpp | 29 +- .../sequences/array/size_and_alignment.pass.cpp | 71 + .../sequences/deque/deque.cons/deduct.fail.cpp | 42 + .../sequences/deque/deque.cons/deduct.pass.cpp | 98 + .../sequences/deque/deque.cons/move.pass.cpp | 4 +- .../forwardlist/forwardlist.cons/deduct.fail.cpp | 42 + .../forwardlist/forwardlist.cons/deduct.pass.cpp | 103 + .../sequences/list/list.cons/deduct.fail.cpp | 42 + .../sequences/list/list.cons/deduct.pass.cpp | 103 + .../sequences/list/list.ops/sort_comp.pass.cpp | 41 + .../containers/sequences/vector.bool/move.pass.cpp | 31 + .../containers/sequences/vector/iterators.pass.cpp | 4 + .../sequences/vector/vector.cons/deduct.fail.cpp | 40 + .../sequences/vector/vector.cons/deduct.pass.cpp | 116 + .../sequences/vector/vector.cons/move.pass.cpp | 33 + test/std/containers/test_compare.h | 4 +- .../insert_const_lvalue.pass.cpp | 15 +- .../insert_hint_const_lvalue.pass.cpp | 79 +- .../insert_const_lvalue.pass.cpp | 77 +- .../insert_hint_const_lvalue.pass.cpp | 80 +- .../unord.multiset/insert_const_lvalue.pass.cpp | 70 +- .../insert_hint_const_lvalue.pass.cpp | 69 +- .../unord/unord.set/insert_const_lvalue.pass.cpp | 76 +- .../unord.set/insert_hint_const_lvalue.pass.cpp | 67 +- .../views/span.comparison/op.eq.pass.cpp | 168 + .../views/span.comparison/op.ge.pass.cpp | 153 + .../views/span.comparison/op.gt.pass.cpp | 154 + .../views/span.comparison/op.le.pass.cpp | 153 + .../views/span.comparison/op.lt.pass.cpp | 154 + .../views/span.comparison/op.ne.pass.cpp | 168 + test/std/containers/views/span.cons/array.fail.cpp | 72 + test/std/containers/views/span.cons/array.pass.cpp | 123 + .../std/containers/views/span.cons/assign.pass.cpp | 293 + .../containers/views/span.cons/container.fail.cpp | 117 + .../containers/views/span.cons/container.pass.cpp | 118 + test/std/containers/views/span.cons/copy.pass.cpp | 71 + .../std/containers/views/span.cons/deduct.pass.cpp | 87 + .../containers/views/span.cons/default.fail.cpp | 32 + .../containers/views/span.cons/default.pass.cpp | 82 + .../containers/views/span.cons/ptr_len.fail.cpp | 63 + .../containers/views/span.cons/ptr_len.pass.cpp | 113 + .../containers/views/span.cons/ptr_ptr.fail.cpp | 63 + .../containers/views/span.cons/ptr_ptr.pass.cpp | 113 + test/std/containers/views/span.cons/span.fail.cpp | 104 + test/std/containers/views/span.cons/span.pass.cpp | 142 + .../containers/views/span.cons/stdarray.pass.cpp | 114 + test/std/containers/views/span.elem/data.pass.cpp | 121 + .../std/containers/views/span.elem/op_idx.pass.cpp | 119 + .../containers/views/span.iterators/begin.pass.cpp | 116 + .../containers/views/span.iterators/end.pass.cpp | 118 + .../views/span.iterators/rbegin.pass.cpp | 117 + .../containers/views/span.iterators/rend.pass.cpp | 118 + .../views/span.objectrep/as_bytes.pass.cpp | 78 + .../span.objectrep/as_writeable_bytes.fail.cpp | 48 + .../span.objectrep/as_writeable_bytes.pass.cpp | 78 + test/std/containers/views/span.obs/empty.pass.cpp | 73 + test/std/containers/views/span.obs/size.pass.cpp | 91 + .../containers/views/span.obs/size_bytes.pass.cpp | 92 + test/std/containers/views/span.sub/first.pass.cpp | 136 + test/std/containers/views/span.sub/last.pass.cpp | 136 + .../std/containers/views/span.sub/subspan.pass.cpp | 210 + test/std/containers/views/types.pass.cpp | 107 + test/std/depr/depr.c.headers/stddef_h.pass.cpp | 10 + .../depr.strstreambuf.cons/cp_size_cp.pass.cpp | 5 +- .../depr.strstreambuf.cons/scp_size_scp.pass.cpp | 5 +- .../depr.strstreambuf.cons/ucp_size_ucp.pass.cpp | 5 +- .../algorithms/alg.random.sample/sample.fail.cpp | 41 - .../algorithms/alg.random.sample/sample.pass.cpp | 150 - .../alg.random.sample/sample.stable.pass.cpp | 53 - .../any/any.class/any.assign/copy.pass.cpp | 199 - .../any/any.class/any.assign/move.pass.cpp | 104 - .../any/any.class/any.assign/value.pass.cpp | 179 - .../any.assign/value_non_copyable_assign.fail.cpp | 38 - .../any/any.class/any.cons/copy.pass.cpp | 102 - .../any/any.class/any.cons/default.pass.cpp | 38 - .../any/any.class/any.cons/move.pass.cpp | 104 - .../any.class/any.cons/non_copyable_value.fail.cpp | 36 - .../any/any.class/any.cons/value.pass.cpp | 118 - .../any/any.class/any.modifiers/clear.pass.cpp | 65 - .../any/any.class/any.modifiers/swap.pass.cpp | 103 - .../any/any.class/any.observers/empty.pass.cpp | 64 - .../any/any.class/any.observers/type.pass.cpp | 41 - .../any/any.class/nothing_to_do.pass.cpp | 12 - .../any.cast/any_cast_pointer.pass.cpp | 146 - .../any.cast/any_cast_reference.pass.cpp | 312 -- .../any.cast/const_correctness.fail.cpp | 38 - .../any.cast/not_copy_constructible.fail.cpp | 45 - .../any.cast/reference_types.fail.cpp | 37 - .../experimental/any/any.nonmembers/swap.pass.cpp | 41 - .../filesystem/Inputs/static_test_env/bad_symlink | 1 - .../Inputs/static_test_env/dir1/dir2/afile3 | 0 .../Inputs/static_test_env/dir1/dir2/dir3/file5 | 0 .../Inputs/static_test_env/dir1/dir2/file4 | 0 .../static_test_env/dir1/dir2/symlink_to_dir3 | 1 - .../filesystem/Inputs/static_test_env/dir1/file1 | 0 .../filesystem/Inputs/static_test_env/dir1/file2 | 1 - .../filesystem/Inputs/static_test_env/empty_file | 0 .../Inputs/static_test_env/non_empty_file | 1 - .../Inputs/static_test_env/symlink_to_dir | 1 - .../Inputs/static_test_env/symlink_to_empty_file | 1 - .../directory_entry.cons.pass.cpp | 97 - .../directory_entry.mods.pass.cpp | 113 - .../directory_entry.obs/comparisons.pass.cpp | 82 - .../directory_entry.obs/path.pass.cpp | 89 - .../directory_entry.obs/status.pass.cpp | 51 - .../directory_entry.obs/symlink_status.pass.cpp | 50 - .../directory_iterator.members/copy.pass.cpp | 59 - .../copy_assign.pass.cpp | 98 - .../directory_iterator.members/ctor.pass.cpp | 254 - .../default_ctor.pass.cpp | 36 - .../directory_iterator.members/increment.pass.cpp | 117 - .../directory_iterator.members/move.pass.cpp | 62 - .../move_assign.pass.cpp | 116 - .../begin_end.pass.cpp | 61 - .../class.directory_iterator/types.pass.cpp | 38 - .../class.file_status/file_status.cons.pass.cpp | 61 - .../class.file_status/file_status.mods.pass.cpp | 50 - .../class.file_status/file_status.obs.pass.cpp | 46 - .../filesystem_error.members.pass.cpp | 103 - .../class.path/path.itr/iterator.pass.cpp | 106 - .../class.path/path.member/path.append.pass.cpp | 324 -- .../path.member/path.assign/braced_init.pass.cpp | 32 - .../path.member/path.assign/copy.pass.cpp | 37 - .../path.member/path.assign/move.pass.cpp | 43 - .../path.member/path.assign/source.pass.cpp | 242 - .../class.path/path.member/path.compare.pass.cpp | 132 - .../class.path/path.member/path.concat.pass.cpp | 389 -- .../path.member/path.construct/copy.pass.cpp | 35 - .../path.member/path.construct/default.pass.cpp | 31 - .../path.member/path.construct/move.pass.cpp | 41 - .../path.member/path.construct/source.pass.cpp | 122 - .../path.member/path.decompose/empty.fail.cpp | 28 - .../path.decompose/path.decompose.pass.cpp | 197 - .../path.generic.obs/generic_string_alloc.pass.cpp | 57 - .../path.generic.obs/named_overloads.pass.cpp | 63 - .../path.member/path.modifiers/clear.pass.cpp | 45 - .../path.modifiers/make_preferred.pass.cpp | 55 - .../path.modifiers/remove_filename.pass.cpp | 80 - .../path.modifiers/replace_extension.pass.cpp | 73 - .../path.modifiers/replace_filename.pass.cpp | 69 - .../path.member/path.modifiers/swap.pass.cpp | 81 - .../path.member/path.native.obs/c_str.pass.cpp | 43 - .../path.native.obs/named_overloads.pass.cpp | 63 - .../path.member/path.native.obs/native.pass.cpp | 40 - .../path.native.obs/operator_string.pass.cpp | 47 - .../path.native.obs/string_alloc.pass.cpp | 138 - .../path.query/tested_in_path_decompose.pass.cpp | 32 - .../class.path/path.nonmember/append_op.pass.cpp | 33 - .../comparison_ops_tested_elsewhere.pass.cpp | 14 - .../hash_value_tested_elswhere.pass.cpp | 14 - .../path.nonmember/path.factory.pass.cpp | 53 - .../class.path/path.nonmember/path.io.pass.cpp | 65 - .../path.nonmember/path.io.unicode_bug.pass.cpp | 69 - .../class.path/path.nonmember/swap.pass.cpp | 50 - .../filesystem/class.path/synop.pass.cpp | 39 - .../rec.dir.itr.members/copy.pass.cpp | 79 - .../rec.dir.itr.members/copy_assign.pass.cpp | 158 - .../rec.dir.itr.members/ctor.pass.cpp | 246 - .../rec.dir.itr.members/depth.pass.cpp | 66 - .../disable_recursion_pending.pass.cpp | 43 - .../rec.dir.itr.members/increment.pass.cpp | 486 -- .../rec.dir.itr.members/move.pass.cpp | 80 - .../rec.dir.itr.members/move_assign.pass.cpp | 169 - .../rec.dir.itr.members/pop.pass.cpp | 93 - .../rec.dir.itr.members/recursion_pending.pass.cpp | 162 - .../rec.dir.itr.nonmembers/begin_end.pass.cpp | 61 - .../filesystem/fs.enum/check_bitmask_types.hpp | 75 - .../filesystem/fs.enum/enum.copy_options.pass.cpp | 64 - .../fs.enum/enum.directory_options.pass.cpp | 46 - .../filesystem/fs.enum/enum.file_type.pass.cpp | 48 - .../filesystem/fs.enum/enum.perms.pass.cpp | 68 - .../fs.error.report/tested_elsewhere.pass.cpp | 12 - .../fs.filesystem.synopsis/file_time_type.pass.cpp | 31 - .../fs.op.funcs/fs.op.absolute/absolute.pass.cpp | 117 - .../fs.op.funcs/fs.op.canonical/canonical.pass.cpp | 120 - .../fs.op.funcs/fs.op.copy/copy.pass.cpp | 316 -- .../fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp | 188 - .../fs.op.copy_symlink/copy_symlink.pass.cpp | 109 - .../create_directories.pass.cpp | 70 - .../create_directory.pass.cpp | 104 - .../create_directory_with_attributes.pass.cpp | 104 - .../create_directory_symlink.pass.cpp | 66 - .../create_hard_link.pass.cpp | 75 - .../fs.op.create_symlink/create_symlink.pass.cpp | 77 - .../fs.op.current_path/current_path.pass.cpp | 93 - .../fs.op.equivalent/equivalent.pass.cpp | 112 - .../fs.op.funcs/fs.op.exists/exists.pass.cpp | 97 - .../fs.op.funcs/fs.op.file_size/file_size.pass.cpp | 79 - .../fs.op.hard_lk_ct/hard_link_count.pass.cpp | 99 - .../fs.op.is_block_file/is_block_file.pass.cpp | 84 - .../fs.op.is_char_file/is_character_file.pass.cpp | 84 - .../fs.op.is_directory/is_directory.pass.cpp | 91 - .../fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp | 109 - .../fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp | 84 - .../fs.op.funcs/fs.op.is_other/is_other.pass.cpp | 84 - .../fs.op.is_regular_file/is_regular_file.pass.cpp | 87 - .../fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp | 84 - .../fs.op.is_symlink/is_symlink.pass.cpp | 105 - .../fs.op.last_write_time/last_write_time.pass.cpp | 424 -- .../fs.op.permissions/permissions.pass.cpp | 160 - .../fs.op.read_symlink/read_symlink.pass.cpp | 101 - .../fs.op.funcs/fs.op.remove/remove.pass.cpp | 98 - .../fs.op.remove_all/remove_all.pass.cpp | 142 - .../fs.op.funcs/fs.op.rename/rename.pass.cpp | 126 - .../fs.op.resize_file/resize_file.pass.cpp | 110 - .../fs.op.funcs/fs.op.space/space.pass.cpp | 128 - .../fs.op.funcs/fs.op.status/status.pass.cpp | 166 - .../fs.op.status_known/status_known.pass.cpp | 59 - .../fs.op.symlink_status/symlink_status.pass.cpp | 192 - .../fs.op.system_complete/system_complete.pass.cpp | 58 - .../temp_directory_path.pass.cpp | 121 - .../fs.req.macros/feature_macro.pass.cpp | 9 +- test/std/experimental/filesystem/lit.local.cfg | 3 - .../coroutine.handle.noop/noop_coroutine.pass.cpp | 75 + .../construct_pair_const_lvalue_pair.pass.cpp | 30 +- .../construct_pair_rvalue.pass.cpp | 29 +- .../construct_pair_values.pass.cpp | 33 +- .../construct_piecewise_pair.pass.cpp | 43 +- .../construct_piecewise_pair_evil.pass.cpp | 142 + .../construct_types.pass.cpp | 41 +- test/std/experimental/nothing_to_do.pass.cpp | 2 - .../numeric.ops.overview/nothing_to_do.pass.cpp | 15 - .../numeric/numeric.ops/nothing_to_do.pass.cpp | 15 - .../numeric.ops/numeric.ops.gcd/gcd.bool1.fail.cpp | 25 - .../numeric.ops/numeric.ops.gcd/gcd.bool2.fail.cpp | 25 - .../numeric.ops/numeric.ops.gcd/gcd.bool3.fail.cpp | 25 - .../numeric.ops/numeric.ops.gcd/gcd.bool4.fail.cpp | 25 - .../numeric.ops.gcd/gcd.not_integral1.fail.cpp | 24 - .../numeric.ops.gcd/gcd.not_integral2.fail.cpp | 24 - .../numeric.ops/numeric.ops.gcd/gcd.pass.cpp | 139 - .../numeric.ops/numeric.ops.lcm/lcm.bool1.fail.cpp | 25 - .../numeric.ops/numeric.ops.lcm/lcm.bool2.fail.cpp | 25 - .../numeric.ops/numeric.ops.lcm/lcm.bool3.fail.cpp | 25 - .../numeric.ops/numeric.ops.lcm/lcm.bool4.fail.cpp | 25 - .../numeric.ops.lcm/lcm.not_integral1.fail.cpp | 24 - .../numeric.ops.lcm/lcm.not_integral2.fail.cpp | 24 - .../numeric.ops/numeric.ops.lcm/lcm.pass.cpp | 139 - .../optional.bad_optional_access/default.pass.cpp | 29 - .../optional.bad_optional_access/derive.pass.cpp | 31 - .../optional/optional.comp_with_t/equal.pass.cpp | 53 - .../optional/optional.comp_with_t/greater.pass.cpp | 55 - .../optional.comp_with_t/greater_equal.pass.cpp | 55 - .../optional.comp_with_t/less_equal.pass.cpp | 55 - .../optional.comp_with_t/less_than.pass.cpp | 55 - .../optional.comp_with_t/not_equal.pass.cpp | 53 - .../optional.defs/tested_elsewhere.pass.cpp | 12 - .../optional.general/nothing_to_do.pass.cpp | 12 - .../optional/optional.hash/hash.pass.cpp | 46 - .../optional/optional.inplace/in_place_t.pass.cpp | 36 - .../optional/optional.nullops/equal.pass.cpp | 39 - .../optional/optional.nullops/greater.pass.cpp | 39 - .../optional.nullops/greater_equal.pass.cpp | 39 - .../optional/optional.nullops/less_equal.pass.cpp | 43 - .../optional/optional.nullops/less_than.pass.cpp | 39 - .../optional/optional.nullops/not_equal.pass.cpp | 39 - .../optional/optional.nullopt/nullopt_t.pass.cpp | 38 - .../optional.object.assign/assign_value.pass.cpp | 80 - .../optional.object.assign/copy.pass.cpp | 101 - .../optional.object.assign/emplace.pass.cpp | 153 - .../emplace_initializer_list.pass.cpp | 126 - .../optional.object.assign/move.pass.cpp | 114 - .../optional.object.assign/nullopt_t.pass.cpp | 62 - .../optional.object.ctor/const_T.pass.cpp | 116 - .../optional.object.ctor/copy.pass.cpp | 139 - .../optional.object.ctor/default.pass.cpp | 62 - .../optional.object.ctor/in_place_t.pass.cpp | 144 - .../optional.object.ctor/initializer_list.pass.cpp | 118 - .../optional.object.ctor/move.pass.cpp | 149 - .../optional.object.ctor/nullopt_t.pass.cpp | 63 - .../optional.object.ctor/rvalue_T.pass.cpp | 110 - .../optional.object.dtor/dtor.pass.cpp | 54 - .../optional.object.observe/bool.pass.cpp | 31 - .../optional.object.observe/dereference.pass.cpp | 44 - .../dereference_const.pass.cpp | 52 - .../optional.object.observe/op_arrow.pass.cpp | 43 - .../op_arrow_const.pass.cpp | 65 - .../optional.object.observe/value.pass.cpp | 59 - .../optional.object.observe/value_const.fail.cpp | 33 - .../optional.object.observe/value_const.pass.cpp | 64 - .../optional.object.observe/value_or.pass.cpp | 66 - .../value_or_const.pass.cpp | 77 - .../optional.object.swap/swap.pass.cpp | 313 -- .../optional.object/optional_const_void.fail.cpp | 22 - .../optional_not_destructible.fail.cpp | 28 - .../optional_not_noexcept_destructible.fail.cpp | 27 - .../optional.object/optional_void.fail.cpp | 22 - .../optional/optional.object/types.pass.cpp | 38 - .../optional/optional.relops/equal.pass.cpp | 74 - .../optional.relops/greater_equal.pass.cpp | 70 - .../optional/optional.relops/greater_than.pass.cpp | 70 - .../optional/optional.relops/less_equal.pass.cpp | 70 - .../optional/optional.relops/less_than.pass.cpp | 70 - .../optional/optional.relops/not_equal.pass.cpp | 74 - .../optional.specalg/make_optional.pass.cpp | 51 - .../optional/optional.specalg/swap.pass.cpp | 303 - .../optional_const_in_place_t.fail.cpp | 25 - .../optional_const_lvalue_ref.fail.cpp | 23 - .../optional.syn/optional_const_nullopt_t.fail.cpp | 25 - .../optional.syn/optional_in_place_t.fail.cpp | 25 - .../optional_includes_initializer_list.pass.cpp | 23 - .../optional.syn/optional_lvalue_ref.fail.cpp | 23 - .../optional.syn/optional_nullopt_t.fail.cpp | 25 - .../optional.syn/optional_rvalue_ref.fail.cpp | 23 - .../simd/simd.casts/simd_cast.pass.cpp | 40 + .../simd/simd.casts/static_simd_cast.pass.cpp | 38 + .../experimental/simd/simd.cons/broadcast.pass.cpp | 58 + .../experimental/simd/simd.cons/generator.pass.cpp | 46 + .../simd/simd.traits/abi_for_size.pass.cpp | 30 + .../simd/simd.traits/is_abi_tag.pass.cpp | 115 + .../experimental/simd/simd.traits/is_simd.pass.cpp | 133 + .../simd/simd.traits/is_simd_flag_type.pass.cpp | 55 + .../simd/simd.traits/is_simd_mask.pass.cpp | 133 + test/std/experimental/string.view/lit.local.cfg | 3 - .../string.view/nothing_to_do.pass.cpp | 12 - .../string.view/string.view.access/at.pass.cpp | 63 - .../string.view/string.view.access/back.pass.cpp | 50 - .../string.view/string.view.access/data.pass.cpp | 50 - .../string.view/string.view.access/front.pass.cpp | 50 - .../string.view/string.view.access/index.pass.cpp | 53 - .../string.view.capacity/capacity.pass.cpp | 89 - .../opeq.string_view.pointer.pass.cpp | 69 - .../opeq.string_view.string.pass.cpp | 50 - .../opeq.string_view.string_view.pass.cpp | 62 - .../opge.string_view.pointer.pass.cpp | 72 - .../opge.string_view.string.pass.cpp | 50 - .../opge.string_view.string_view.pass.cpp | 65 - .../opgt.string_view.pointer.pass.cpp | 72 - .../opgt.string_view.string.pass.cpp | 50 - .../opgt.string_view.string_view.pass.cpp | 65 - .../ople.string_view.pointer.pass.cpp | 72 - .../ople.string_view.string.pass.cpp | 50 - .../ople.string_view.string_view.pass.cpp | 65 - .../oplt.string_view.pointer.pass.cpp | 72 - .../oplt.string_view.string.pass.cpp | 50 - .../oplt.string_view.string_view.pass.cpp | 65 - .../opne.string_view.pointer.pass.cpp | 70 - .../opne.string_view.string.pass.cpp | 49 - .../opne.string_view.string_view.pass.cpp | 62 - .../string.view/string.view.cons/default.pass.cpp | 48 - .../string.view.cons/from_literal.pass.cpp | 65 - .../string.view.cons/from_ptr_len.pass.cpp | 83 - .../string.view.cons/from_string.pass.cpp | 56 - .../string.view.cons/from_string1.fail.cpp | 32 - .../string.view.cons/from_string2.fail.cpp | 32 - .../string.view.find/find_char_size.pass.cpp | 85 - .../find_first_not_of_char_size.pass.cpp | 85 - .../find_first_not_of_pointer_size.pass.cpp | 166 - .../find_first_not_of_pointer_size_size.pass.cpp | 393 -- .../find_first_not_of_string_view_size.pass.cpp | 148 - .../find_first_of_char_size.pass.cpp | 83 - .../find_first_of_pointer_size.pass.cpp | 166 - .../find_first_of_pointer_size_size.pass.cpp | 393 -- .../find_first_of_string_view_size.pass.cpp | 148 - .../find_last_not_of_char_size.pass.cpp | 83 - .../find_last_not_of_pointer_size.pass.cpp | 166 - .../find_last_not_of_pointer_size_size.pass.cpp | 393 -- .../find_last_not_of_string_view_size.pass.cpp | 148 - .../find_last_of_char_size.pass.cpp | 83 - .../find_last_of_pointer_size.pass.cpp | 166 - .../find_last_of_pointer_size_size.pass.cpp | 393 -- .../find_last_of_string_view_size.pass.cpp | 148 - .../string.view.find/find_pointer_size.pass.cpp | 172 - .../find_pointer_size_size.pass.cpp | 394 -- .../find_string_view_size.pass.cpp | 165 - .../string.view.find/rfind_char_size.pass.cpp | 84 - .../string.view.find/rfind_pointer_size.pass.cpp | 172 - .../rfind_pointer_size_size.pass.cpp | 393 -- .../rfind_string_view_size.pass.cpp | 165 - .../string.view.hash/string_view.pass.cpp | 55 - .../string.view.io/stream_insert.pass.cpp | 58 - .../string.view.iterators/begin.pass.cpp | 79 - .../string.view/string.view.iterators/end.pass.cpp | 88 - .../string.view.iterators/rbegin.pass.cpp | 61 - .../string.view.iterators/rend.pass.cpp | 69 - .../string.view.modifiers/clear.pass.cpp | 67 - .../string.view.modifiers/remove_prefix.pass.cpp | 78 - .../string.view.modifiers/remove_suffix.pass.cpp | 78 - .../string.view.modifiers/swap.pass.cpp | 76 - .../string.view/string.view.nonmem/quoted.pass.cpp | 214 - .../string.view.ops/basic_string.pass.cpp | 65 - .../string.view.ops/compare.pointer.pass.cpp | 127 - .../string.view.ops/compare.pointer_size.pass.cpp | 453 -- .../string.view.ops/compare.size_size_sv.pass.cpp | 403 -- .../compare.size_size_sv_pointer_size.pass.cpp | 1356 ----- .../compare.size_size_sv_size_size.pass.cpp | 5849 -------------------- .../string.view.ops/compare.sv.pass.cpp | 122 - .../string.view/string.view.ops/copy.pass.cpp | 101 - .../string.view/string.view.ops/substr.pass.cpp | 119 - .../string.view/string.view.ops/to_string.pass.cpp | 76 - .../string.view.synop/nothing_to_do.pass.cpp | 12 - .../string.view.template/nothing_to_do.pass.cpp | 12 - .../meta/meta.logical/conjunction.pass.cpp | 68 - .../meta/meta.logical/disjunction.pass.cpp | 68 - .../utilities/meta/meta.logical/negation.pass.cpp | 41 - .../meta/meta.type.synop/includes.pass.cpp | 21 - .../meta/meta.type.synop/meta.rel.pass.cpp | 62 - .../meta/meta.type.synop/meta.unary.cat.pass.cpp | 178 - .../meta/meta.type.synop/meta.unary.comp.pass.cpp | 99 - .../meta/meta.type.synop/meta.unary.prop.pass.cpp | 492 -- .../meta.type.synop/meta.unary.prop.query.pass.cpp | 62 - .../ratio/header.ratio.synop/includes.pass.cpp | 22 - .../header.ratio.synop/ratio_equal_v.pass.cpp | 47 - .../ratio_greater_equal_v.pass.cpp | 61 - .../header.ratio.synop/ratio_greater_v.pass.cpp | 57 - .../header.ratio.synop/ratio_less_equal_v.pass.cpp | 57 - .../ratio/header.ratio.synop/ratio_less_v.pass.cpp | 57 - .../header.ratio.synop/ratio_not_equal_v.pass.cpp | 47 - .../utilities/ratio/nothing_to_do.pass.cpp | 13 - .../header.system_error.synop/includes.pass.cpp | 21 - .../is_error_code_enum_v.pass.cpp | 37 - .../is_error_condition_enum.pass.cpp | 38 - .../time/header.chrono.synop/includes.pass.cpp | 19 - .../treat_as_floating_point_v.pass.cpp | 49 - .../tuple/header.tuple.synop/includes.pass.cpp | 20 - .../utilities/tuple/tuple.apply/arg_type.pass.cpp | 187 - .../tuple/tuple.apply/constexpr_types.pass.cpp | 118 - .../tuple/tuple.apply/extended_types.pass.cpp | 427 -- .../tuple/tuple.apply/large_arity.pass.cpp | 146 - .../tuple/tuple.apply/ref_qualifiers.pass.cpp | 53 - .../tuple/tuple.apply/return_type.pass.cpp | 70 - .../utilities/tuple/tuple.apply/types.pass.cpp | 431 -- .../utilities/tuple/tuple_size_v.fail.cpp | 25 - .../utilities/tuple/tuple_size_v.pass.cpp | 45 - .../utilities/tuple/tuple_size_v_2.fail.cpp | 25 - .../utilities/tuple/tuple_size_v_3.fail.cpp | 25 - .../fstreams/filebuf.members/open_path.pass.cpp | 56 + .../fstreams/filebuf.virtuals/pbackfail.pass.cpp | 20 +- .../fstreams/filebuf.virtuals/seekoff.pass.cpp | 8 +- .../fstreams/fstream.cons/path.pass.cpp | 49 + .../fstreams/fstream.members/open_path.pass.cpp | 52 + .../fstreams/ifstream.cons/path.pass.cpp | 53 + .../fstreams/ifstream.members/open_path.pass.cpp | 48 + .../fstreams/ofstream.cons/path.pass.cpp | 69 + .../fstreams/ofstream.members/open_path.pass.cpp | 62 + .../filesystems/Inputs/static_test_env/bad_symlink | 1 + .../Inputs/static_test_env/dir1/dir2/afile3 | 0 .../Inputs/static_test_env/dir1/dir2/dir3/file5 | 0 .../Inputs/static_test_env/dir1/dir2/file4 | 0 .../static_test_env/dir1/dir2/symlink_to_dir3 | 1 + .../filesystems/Inputs/static_test_env/dir1/file1 | 0 .../filesystems/Inputs/static_test_env/dir1/file2 | 1 + .../filesystems/Inputs/static_test_env/empty_file | 0 .../Inputs/static_test_env/non_empty_file | 1 + .../Inputs/static_test_env/symlink_to_dir | 1 + .../Inputs/static_test_env/symlink_to_empty_file | 1 + .../directory_entry.cons/copy.pass.cpp | 74 + .../directory_entry.cons/copy_assign.pass.cpp | 82 + .../directory_entry.cons/default.pass.cpp | 31 + .../directory_entry.cons/default_const.pass.cpp | 32 + .../directory_entry.cons/move.pass.cpp | 72 + .../directory_entry.cons/move_assign.pass.cpp | 78 + .../directory_entry.cons/path.pass.cpp | 182 + .../directory_entry.mods/assign.pass.cpp | 132 + .../directory_entry.mods/refresh.pass.cpp | 341 ++ .../directory_entry.mods/replace_filename.pass.cpp | 169 + .../directory_entry.obs/comparisons.pass.cpp | 81 + .../directory_entry.obs/file_size.pass.cpp | 242 + .../directory_entry.obs/file_type_obs.pass.cpp | 258 + .../directory_entry.obs/hard_link_count.pass.cpp | 242 + .../directory_entry.obs/last_write_time.pass.cpp | 215 + .../directory_entry.obs/path.pass.cpp | 88 + .../directory_entry.obs/status.pass.cpp | 58 + .../directory_entry.obs/symlink_status.pass.cpp | 58 + .../directory_iterator.members/copy.pass.cpp | 59 + .../copy_assign.pass.cpp | 98 + .../directory_iterator.members/ctor.pass.cpp | 254 + .../default_ctor.pass.cpp | 35 + .../directory_iterator.members/increment.pass.cpp | 117 + .../directory_iterator.members/move.pass.cpp | 62 + .../move_assign.pass.cpp | 116 + .../begin_end.pass.cpp | 61 + .../class.directory_iterator/types.pass.cpp | 37 + .../class.file_status/file_status.cons.pass.cpp | 60 + .../class.file_status/file_status.mods.pass.cpp | 49 + .../class.file_status/file_status.obs.pass.cpp | 45 + .../filesystem_error.members.pass.cpp | 102 + .../class.path/path.itr/iterator.pass.cpp | 105 + .../class.path/path.member/path.append.pass.cpp | 339 ++ .../path.member/path.assign/braced_init.pass.cpp | 31 + .../path.member/path.assign/copy.pass.cpp | 36 + .../path.member/path.assign/move.pass.cpp | 42 + .../path.member/path.assign/source.pass.cpp | 241 + .../class.path/path.member/path.compare.pass.cpp | 138 + .../class.path/path.member/path.concat.pass.cpp | 388 ++ .../path.member/path.construct/copy.pass.cpp | 34 + .../path.member/path.construct/default.pass.cpp | 30 + .../path.member/path.construct/move.pass.cpp | 40 + .../path.member/path.construct/source.pass.cpp | 129 + .../path.member/path.decompose/empty.fail.cpp | 28 + .../path.decompose/path.decompose.pass.cpp | 216 + .../path.member/path.gen/lexically_normal.pass.cpp | 142 + .../lexically_relative_and_proximate.pass.cpp | 89 + .../path.generic.obs/generic_string_alloc.pass.cpp | 55 + .../path.generic.obs/named_overloads.pass.cpp | 61 + .../path.member/path.modifiers/clear.pass.cpp | 44 + .../path.modifiers/make_preferred.pass.cpp | 54 + .../path.modifiers/remove_filename.pass.cpp | 73 + .../path.modifiers/replace_extension.pass.cpp | 72 + .../path.modifiers/replace_filename.pass.cpp | 71 + .../path.member/path.modifiers/swap.pass.cpp | 80 + .../path.member/path.native.obs/c_str.pass.cpp | 42 + .../path.native.obs/named_overloads.pass.cpp | 62 + .../path.member/path.native.obs/native.pass.cpp | 39 + .../path.native.obs/operator_string.pass.cpp | 46 + .../path.native.obs/string_alloc.pass.cpp | 137 + .../path.query/tested_in_path_decompose.pass.cpp | 32 + .../class.path/path.nonmember/append_op.pass.cpp | 32 + .../comparison_ops_tested_elsewhere.pass.cpp | 14 + .../hash_value_tested_elswhere.pass.cpp | 14 + .../path.nonmember/path.factory.pass.cpp | 52 + .../class.path/path.nonmember/path.io.pass.cpp | 98 + .../path.nonmember/path.io.unicode_bug.pass.cpp | 69 + .../class.path/path.nonmember/swap.pass.cpp | 49 + .../filesystems/class.path/synop.pass.cpp | 38 + .../rec.dir.itr.members/copy.pass.cpp | 79 + .../rec.dir.itr.members/copy_assign.pass.cpp | 158 + .../rec.dir.itr.members/ctor.pass.cpp | 246 + .../rec.dir.itr.members/depth.pass.cpp | 66 + .../disable_recursion_pending.pass.cpp | 43 + .../rec.dir.itr.members/increment.pass.cpp | 496 ++ .../rec.dir.itr.members/move.pass.cpp | 80 + .../rec.dir.itr.members/move_assign.pass.cpp | 169 + .../rec.dir.itr.members/pop.pass.cpp | 93 + .../rec.dir.itr.members/recursion_pending.pass.cpp | 162 + .../rec.dir.itr.nonmembers/begin_end.pass.cpp | 61 + .../filesystems/fs.enum/check_bitmask_types.hpp | 75 + .../filesystems/fs.enum/enum.copy_options.pass.cpp | 63 + .../fs.enum/enum.directory_options.pass.cpp | 45 + .../filesystems/fs.enum/enum.file_type.pass.cpp | 47 + .../filesystems/fs.enum/enum.path.format.pass.cpp | 38 + .../filesystems/fs.enum/enum.perm_options.pass.cpp | 48 + .../filesystems/fs.enum/enum.perms.pass.cpp | 64 + .../fs.error.report/tested_elsewhere.pass.cpp | 12 + .../fs.filesystem.synopsis/file_time_type.pass.cpp | 46 + .../fs.op.funcs/fs.op.absolute/absolute.pass.cpp | 58 + .../fs.op.funcs/fs.op.canonical/canonical.pass.cpp | 124 + .../fs.op.funcs/fs.op.copy/copy.pass.cpp | 315 ++ .../fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp | 189 + .../fs.op.copy_file/copy_file_large.pass.cpp | 99 + .../fs.op.copy_symlink/copy_symlink.pass.cpp | 108 + .../create_directories.pass.cpp | 101 + .../create_directory.pass.cpp | 103 + .../create_directory_with_attributes.pass.cpp | 132 + .../create_directory_symlink.pass.cpp | 65 + .../create_hard_link.pass.cpp | 74 + .../fs.op.create_symlink/create_symlink.pass.cpp | 76 + .../fs.op.current_path/current_path.pass.cpp | 93 + .../fs.op.equivalent/equivalent.pass.cpp | 112 + .../fs.op.funcs/fs.op.exists/exists.pass.cpp | 97 + .../fs.op.funcs/fs.op.file_size/file_size.pass.cpp | 85 + .../fs.op.hard_lk_ct/hard_link_count.pass.cpp | 99 + .../fs.op.is_block_file/is_block_file.pass.cpp | 84 + .../fs.op.is_char_file/is_character_file.pass.cpp | 84 + .../fs.op.is_directory/is_directory.pass.cpp | 91 + .../fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp | 109 + .../fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp | 84 + .../fs.op.funcs/fs.op.is_other/is_other.pass.cpp | 84 + .../fs.op.is_regular_file/is_regular_file.pass.cpp | 87 + .../fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp | 84 + .../fs.op.is_symlink/is_symlink.pass.cpp | 105 + .../fs.op.last_write_time/last_write_time.pass.cpp | 594 ++ .../fs.op.permissions/permissions.pass.cpp | 182 + .../fs.op.funcs/fs.op.proximate/proximate.pass.cpp | 133 + .../fs.op.read_symlink/read_symlink.pass.cpp | 100 + .../fs.op.funcs/fs.op.relative/relative.pass.cpp | 78 + .../fs.op.funcs/fs.op.remove/remove.pass.cpp | 109 + .../fs.op.remove_all/remove_all.pass.cpp | 153 + .../fs.op.funcs/fs.op.rename/rename.pass.cpp | 125 + .../fs.op.resize_file/resize_file.pass.cpp | 109 + .../fs.op.funcs/fs.op.space/space.pass.cpp | 128 + .../fs.op.funcs/fs.op.status/status.pass.cpp | 166 + .../fs.op.status_known/status_known.pass.cpp | 59 + .../fs.op.symlink_status/symlink_status.pass.cpp | 192 + .../temp_directory_path.pass.cpp | 121 + .../weakly_canonical.pass.cpp | 76 + .../fs.req.macros/feature_macro.pass.cpp | 29 + .../fs.req.namespace/namespace.fail.cpp | 29 + .../fs.req.namespace/namespace.pass.cpp | 26 + test/std/input.output/filesystems/lit.local.cfg | 3 + .../istream_extractors/streambuf.pass.cpp | 4 +- .../istream.unformatted/get_pointer_size.pass.cpp | 62 + .../get_pointer_size_chart.pass.cpp | 62 + .../ctor_char_pointer_error_code.pass.cpp | 4 +- .../ios_failure/ctor_string_error_code.pass.cpp | 4 +- .../streambuf.assign/swap.pass.cpp | 13 +- .../streambuf.put.area/pbump2gig.pass.cpp | 13 +- .../std/iterators/iterator.container/data.pass.cpp | 10 + .../iterators/iterator.container/empty.pass.cpp | 10 + .../std/iterators/iterator.container/size.pass.cpp | 12 +- .../ostream.iterator.ops/assign_t.pass.cpp | 6 +- .../ostreambuf.iter.ops/failed.pass.cpp | 17 +- .../cmp.common/common_comparison_category.pass.cpp | 93 + .../cmp/cmp.partialord/partialord.pass.cpp | 164 + .../cmp/cmp.strongeq/cmp.strongeq.pass.cpp | 96 + .../cmp/cmp.strongord/strongord.pass.cpp | 212 + .../cmp/cmp.weakeq/cmp.weakeq.pass.cpp | 70 + .../cmp/cmp.weakord/weakord.pass.cpp | 169 + .../delete_align_val_t_replace.pass.cpp | 11 +- .../new_align_val_t_replace.pass.cpp | 5 +- .../new.delete/new.delete.array/new_array.pass.cpp | 6 +- .../new.delete.array/new_array_nothrow.pass.cpp | 5 +- .../new_array_nothrow_replace.pass.cpp | 8 +- .../new.delete.array/new_array_replace.pass.cpp | 8 +- .../new.delete.array/sized_delete_array11.pass.cpp | 2 +- ...elete_array_calls_unsized_delete_array.pass.cpp | 6 +- .../new.delete.placement/new_array_ptr.fail.cpp | 2 +- .../new.delete.placement/new_ptr.fail.cpp | 2 +- .../delete_align_val_t_replace.pass.cpp | 11 +- .../new_align_val_t_replace.pass.cpp | 5 +- .../new.delete.single/new_nothrow_replace.pass.cpp | 6 +- .../new.delete.single/new_replace.pass.cpp | 6 +- .../new.delete.single/sized_delete11.pass.cpp | 8 +- .../new.delete.single/sized_delete14.pass.cpp | 6 +- .../sized_delete_calls_unsized_delete.pass.cpp | 6 +- .../sized_delete_fsizeddeallocation.sh.cpp | 6 +- .../support.dynamic/ptr.launder/launder.pass.cpp | 12 +- .../uncaught/uncaught_exceptions.pass.cpp | 48 +- .../support.limits/version.pass.cpp | 17 + .../language.support/support.types/byte.pass.cpp | 6 +- .../support.types/max_align_t.pass.cpp | 14 +- .../locale.ctype.byname/widen_1.pass.cpp | 2 +- .../locale.ctype.byname/widen_many.pass.cpp | 2 +- .../get_long_double_fr_FR.pass.cpp | 56 +- .../put_long_double_fr_FR.pass.cpp | 58 +- .../decimal_point.pass.cpp | 6 +- .../thousands_sep.pass.cpp | 19 +- .../facet.num.get.members/test_min_max.pass.cpp | 23 +- .../facet.num.get.members/test_neg_one.pass.cpp | 164 + .../locale.numpunct.byname/thousands_sep.pass.cpp | 11 + .../conversions.string/ctor_err_string.pass.cpp | 6 +- test/std/numerics/c.math/cmath.pass.cpp | 14 +- .../complex.transcendentals/acosh.pass.cpp | 9 + .../complex.transcendentals/asinh.pass.cpp | 9 + .../complex.value.ops/polar.pass.cpp | 2 +- .../valarray.assign/copy_assign.pass.cpp | 27 + .../initializer_list_assign.pass.cpp | 26 + .../valarray.cons/default.pass.cpp | 12 + .../template.valarray/valarray.cons/size.pass.cpp | 16 + .../exclusive.scan/exclusive_scan.pass.cpp | 21 +- .../exclusive.scan/exclusive_scan_init_op.pass.cpp | 11 +- .../inclusive.scan/inclusive_scan.pass.cpp | 17 +- .../inclusive.scan/inclusive_scan_op.pass.cpp | 17 +- .../inclusive.scan/inclusive_scan_op_init.pass.cpp | 33 +- .../transform_exclusive_scan_init_bop_uop.pass.cpp | 84 +- .../transform_inclusive_scan_bop_uop.pass.cpp | 66 +- .../transform_inclusive_scan_bop_uop_init.pass.cpp | 86 +- ...ransform_reduce_iter_iter_init_bop_uop.pass.cpp | 83 +- .../transform_reduce_iter_iter_iter_init.pass.cpp | 12 + ...sform_reduce_iter_iter_iter_init_op_op.pass.cpp | 14 + test/std/numerics/rand/rand.device/eval.pass.cpp | 1 + .../rand/rand.eng/rand.eng.lcong/assign.pass.cpp | 2 +- .../rand/rand.eng/rand.eng.lcong/copy.pass.cpp | 4 +- .../rand/rand.eng/rand.eng.lcong/default.pass.cpp | 1 - .../rand/rand.eng/rand.eng.lcong/values.pass.cpp | 8 +- .../re.regex/re.regex.construct/bad_ctype.pass.cpp | 37 + .../re/re.regex/re.regex.construct/deduct.fail.cpp | 45 + .../re/re.regex/re.regex.construct/deduct.pass.cpp | 137 + test/std/strings/basic.string/char.bad.fail.cpp | 53 + .../string.cons/copy_assignment.pass.cpp | 9 + .../string.cons/default_noexcept.pass.cpp | 9 +- .../string.cons/dtor_noexcept.pass.cpp | 9 +- .../string.cons/implicit_deduction_guides.pass.cpp | 51 +- .../basic.string/string.cons/iter_alloc.pass.cpp | 1 + .../string.cons/iter_alloc_deduction.fail.cpp | 56 + .../string.cons/iter_alloc_deduction.pass.cpp | 93 + .../string.cons/move_assign_noexcept.pass.cpp | 3 + .../string.cons/move_noexcept.pass.cpp | 9 +- .../string.cons/pointer_size_alloc.pass.cpp | 8 + .../string.cons/string_view_deduction.fail.cpp | 41 + .../string.cons/string_view_deduction.pass.cpp | 95 + .../string_view_size_size_deduction.fail.cpp | 47 + .../string_view_size_size_deduction.pass.cpp | 99 + .../string_append/push_back.pass.cpp | 5 +- .../string.modifiers/string_append/string.pass.cpp | 9 + .../string_insert/size_string.pass.cpp | 9 + .../string_op_plus_equal/string.pass.cpp | 9 + .../string_replace/iter_iter_string.pass.cpp | 9 + .../string_replace/size_size_string.pass.cpp | 9 + .../string.special/swap_noexcept.pass.cpp | 3 +- .../string_compare/size_size_string.pass.cpp | 10 +- .../string.ops/string_compare/string.pass.cpp | 8 + .../string_find.first.not.of/string_size.pass.cpp | 8 + .../string_find.first.of/string_size.pass.cpp | 8 + .../string_find.last.not.of/string_size.pass.cpp | 8 + .../string_find.last.of/string_size.pass.cpp | 8 + .../string.ops/string_find/string_size.pass.cpp | 8 + .../string.ops/string_rfind/string_size.pass.cpp | 8 + test/std/strings/string.view/char.bad.fail.cpp | 53 + .../string.view/string.view.access/data.pass.cpp | 4 + .../string.view.capacity/capacity.pass.cpp | 5 + .../string.view/string.view.cons/assign.pass.cpp | 6 +- test/std/strings/string.view/types.pass.cpp | 28 +- .../thread/futures/futures.async/async.fail.cpp | 6 +- .../any/any.class/any.assign/copy.pass.cpp | 6 +- .../comparisons/constexpr_init.pass.cpp | 48 + .../function.objects/func.not_fn/not_fn.pass.cpp | 12 +- .../func.search/func.search.bm/default.pass.cpp | 129 + .../func.search/func.search.bm/hash.pass.cpp | 125 + .../func.search/func.search.bm/hash.pred.pass.cpp | 143 + .../func.search/func.search.bm/pred.pass.cpp | 134 + .../func.search/func.search.bmh/default.pass.cpp | 129 + .../func.search/func.search.bmh/hash.pass.cpp | 124 + .../func.search/func.search.bmh/hash.pred.pass.cpp | 137 + .../func.search/func.search.bmh/pred.pass.cpp | 131 + .../func.search.default/default.pass.cpp | 96 + .../func.search.default/default.pred.pass.cpp | 103 + .../func.search/nothing_to_do.pass.cpp | 13 + .../func.wrap.func.con/copy_assign.pass.cpp | 8 +- .../func.wrap.func.con/move_reentrant.pass.cpp | 46 + .../nullptr_t_assign_reentrant.pass.cpp | 46 + .../default.allocator/allocator.ctor.pass.cpp | 50 + .../allocator.members/allocate.pass.cpp | 102 +- .../allocator.members/construct.pass.cpp | 4 + .../memory/temporary.buffer/overaligned.pass.cpp | 35 + .../unique.ptr/unique.ptr.special/io.fail.cpp | 7 +- .../meta.trans.other/aligned_storage.pass.cpp | 138 +- .../meta.trans.other/aligned_union.pass.cpp | 21 + .../meta.trans.other/common_type.pass.cpp | 5 +- .../meta.trans.other/remove_cvref.pass.cpp | 2 +- .../meta.trans/meta.trans.other/result_of.pass.cpp | 24 +- .../utilities/meta/meta.type.synop/endian.pass.cpp | 48 + .../has_unique_object_representations.pass.cpp | 106 + .../meta.unary.prop/is_assignable.pass.cpp | 2 - .../meta.unary.prop/is_constructible.pass.cpp | 12 + .../meta.unary.prop/is_trivially_copyable.pass.cpp | 2 +- .../optional.object.ctor/deduct.fail.cpp | 46 + .../optional.object.ctor/deduct.pass.cpp | 54 + .../PR20855_tuple_ref_binding_diagnostics.pass.cpp | 137 + .../utilities/utility/exchange/exchange.pass.cpp | 30 +- .../pairs.pair/assign_const_pair_U_V.pass.cpp | 22 + .../pairs/pairs.pair/assign_rv_pair.pass.cpp | 2 +- .../pairs/pairs.pair/assign_rv_pair_U_V.pass.cpp | 16 + .../utility/pairs/pairs.pair/assign_tuple.pass.cpp | 140 - .../pairs/pairs.pair/const_pair_U_V.pass.cpp | 4 +- .../utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp | 2 +- .../in_place_index_init_list_args.pass.cpp | 6 + test/support/Counter.h | 4 +- test/support/MoveOnly.h | 3 +- test/support/count_new.hpp | 169 +- test/support/filesystem_include.hpp | 13 + test/support/filesystem_test_helper.hpp | 149 +- test/support/format_string.hpp | 71 + test/support/msvc_stdlib_force_include.hpp | 6 +- test/support/platform_support.h | 12 + test/support/rapid-cxx-test.hpp | 23 +- test/support/test_allocator.h | 57 +- test/support/test_comparisons.h | 175 + test/support/test_macros.h | 34 +- test/support/test_memory_resource.hpp | 2 +- test/support/verbose_assert.h | 222 + utils/google-benchmark/AUTHORS | 17 +- utils/google-benchmark/CMakeLists.txt | 101 +- utils/google-benchmark/CONTRIBUTORS | 20 +- utils/google-benchmark/README.md | 381 +- .../cmake/AddCXXCompilerFlag.cmake | 12 +- utils/google-benchmark/cmake/CXXFeatureCheck.cmake | 34 +- utils/google-benchmark/cmake/GetGitVersion.cmake | 3 + utils/google-benchmark/cmake/HandleGTest.cmake | 113 + utils/google-benchmark/cmake/benchmark.pc.in | 11 + utils/google-benchmark/cmake/llvm-toolchain.cmake | 8 + utils/google-benchmark/cmake/split_list.cmake | 3 + utils/google-benchmark/docs/AssemblyTests.md | 147 + utils/google-benchmark/docs/tools.md | 243 +- .../google-benchmark/include/benchmark/benchmark.h | 1452 ++++- .../include/benchmark/benchmark_api.h | 915 --- utils/google-benchmark/include/benchmark/macros.h | 66 - .../google-benchmark/include/benchmark/reporter.h | 230 - utils/google-benchmark/mingw.py | 320 -- utils/google-benchmark/releasing.md | 16 + utils/google-benchmark/src/CMakeLists.txt | 79 +- utils/google-benchmark/src/benchmark.cc | 264 +- .../google-benchmark/src/benchmark_api_internal.h | 12 +- utils/google-benchmark/src/benchmark_main.cc | 17 + utils/google-benchmark/src/benchmark_register.cc | 113 +- utils/google-benchmark/src/benchmark_register.h | 33 + utils/google-benchmark/src/check.h | 11 + utils/google-benchmark/src/colorprint.cc | 4 +- utils/google-benchmark/src/commandlineflags.cc | 8 +- utils/google-benchmark/src/complexity.cc | 131 +- utils/google-benchmark/src/complexity.h | 10 +- utils/google-benchmark/src/console_reporter.cc | 55 +- utils/google-benchmark/src/counter.cc | 29 +- utils/google-benchmark/src/counter.h | 10 +- utils/google-benchmark/src/csv_reporter.cc | 29 +- utils/google-benchmark/src/cycleclock.h | 9 +- utils/google-benchmark/src/internal_macros.h | 79 +- utils/google-benchmark/src/json_reporter.cc | 83 +- utils/google-benchmark/src/log.h | 7 +- utils/google-benchmark/src/re.h | 44 +- utils/google-benchmark/src/reporter.cc | 37 +- utils/google-benchmark/src/stat.h | 306 - utils/google-benchmark/src/statistics.cc | 177 + utils/google-benchmark/src/statistics.h | 37 + utils/google-benchmark/src/string_util.cc | 107 +- utils/google-benchmark/src/string_util.h | 30 +- utils/google-benchmark/src/sysinfo.cc | 724 ++- utils/google-benchmark/src/sysinfo.h | 10 - utils/google-benchmark/src/thread_manager.h | 66 + utils/google-benchmark/src/thread_timer.h | 69 + utils/google-benchmark/src/timers.cc | 15 +- utils/google-benchmark/test/CMakeLists.txt | 104 +- utils/google-benchmark/test/basic_test.cc | 57 +- utils/google-benchmark/test/benchmark_gtest.cc | 33 + utils/google-benchmark/test/benchmark_test.cc | 82 +- .../test/clobber_memory_assembly_test.cc | 64 + utils/google-benchmark/test/complexity_test.cc | 27 +- utils/google-benchmark/test/cxx03_test.cc | 17 +- utils/google-benchmark/test/diagnostics_test.cc | 20 +- .../test/donotoptimize_assembly_test.cc | 163 + utils/google-benchmark/test/donotoptimize_test.cc | 27 +- utils/google-benchmark/test/filter_test.cc | 10 +- utils/google-benchmark/test/fixture_test.cc | 6 +- utils/google-benchmark/test/link_main_test.cc | 8 + utils/google-benchmark/test/map_test.cc | 21 +- .../google-benchmark/test/multiple_ranges_test.cc | 41 +- utils/google-benchmark/test/options_test.cc | 18 +- utils/google-benchmark/test/output_test.h | 135 + utils/google-benchmark/test/output_test_helper.cc | 201 +- .../test/register_benchmark_test.cc | 58 +- .../google-benchmark/test/reporter_output_test.cc | 191 +- .../google-benchmark/test/skip_with_error_test.cc | 45 +- utils/google-benchmark/test/state_assembly_test.cc | 68 + utils/google-benchmark/test/statistics_gtest.cc | 28 + utils/google-benchmark/test/string_util_gtest.cc | 146 + .../test/templated_fixture_test.cc | 28 + .../test/user_counters_tabular_test.cc | 252 + utils/google-benchmark/test/user_counters_test.cc | 380 ++ utils/google-benchmark/tools/compare.py | 373 ++ utils/google-benchmark/tools/compare_bench.py | 11 +- .../tools/gbench/Inputs/test1_run1.json | 44 +- .../tools/gbench/Inputs/test1_run2.json | 48 +- .../tools/gbench/Inputs/test2_run.json | 81 + .../tools/gbench/Inputs/test3_run0.json | 39 + .../tools/gbench/Inputs/test3_run1.json | 39 + utils/google-benchmark/tools/gbench/report.py | 256 +- utils/google-benchmark/tools/strip_asm.py | 151 + utils/libcxx/test/config.py | 30 +- utils/libcxx/test/format.py | 13 +- utils/libcxx/test/target_info.py | 4 +- www/TS_deprecation.html | 138 + www/cxx1z_status.html | 39 +- www/cxx2a_status.html | 114 +- www/index.html | 15 +- www/upcoming_meeting.html | 109 +- 1179 files changed, 68574 insertions(+), 56916 deletions(-) create mode 100644 docs/DesignDocs/FileTimeType.rst create mode 100644 fuzzing/fuzz_test.cpp create mode 100644 include/__errc create mode 100644 include/compare create mode 100644 include/experimental/simd create mode 100644 include/filesystem create mode 100644 include/span create mode 100644 include/version create mode 100644 lib/abi/5.0/x86_64-apple-darwin16.abilist create mode 100644 lib/abi/5.0/x86_64-unknown-linux-gnu.abilist create mode 100644 lib/abi/6.0/x86_64-apple-darwin16.abilist create mode 100644 lib/abi/6.0/x86_64-unknown-linux-gnu.abilist create mode 100644 lib/abi/x86_64-apple-darwin.v1.abilist create mode 100644 lib/abi/x86_64-apple-darwin.v2.abilist delete mode 100644 lib/abi/x86_64-apple-darwin16.abilist delete mode 100644 lib/abi/x86_64-unknown-linux-gnu.abilist create mode 100644 lib/abi/x86_64-unknown-linux-gnu.v1.abilist delete mode 100644 src/experimental/filesystem/directory_iterator.cpp delete mode 100644 src/experimental/filesystem/filesystem_time_helper.h delete mode 100644 src/experimental/filesystem/operations.cpp delete mode 100644 src/experimental/filesystem/path.cpp create mode 100644 src/filesystem/directory_iterator.cpp create mode 100644 src/filesystem/filesystem_common.h create mode 100644 src/filesystem/int128_builtins.cpp create mode 100644 src/filesystem/operations.cpp create mode 100644 src/include/apple_availability.h create mode 100644 src/support/win32/thread_win32.cpp create mode 100644 test/libcxx/containers/sequences/array/array.zero/db_back.pass.cpp create mode 100644 test/libcxx/containers/sequences/array/array.zero/db_front.pass.cpp create mode 100644 test/libcxx/containers/sequences/array/array.zero/db_indexing.pass.cpp create mode 100644 test/libcxx/depr/depr.c.headers/math_h.sh.cpp delete mode 100644 test/libcxx/experimental/any/size_and_alignment.pass.cpp delete mode 100644 test/libcxx/experimental/any/small_type.pass.cpp delete mode 100644 test/libcxx/experimental/any/version.pass.cpp delete mode 100644 test/libcxx/experimental/filesystem/class.path/path.itr/iterator_db.pass.cpp delete mode 100644 test/libcxx/experimental/filesystem/class.path/path.itr/reverse_iterator_produces_diagnostic.fail.cpp delete mode 100644 test/libcxx/experimental/filesystem/class.path/path.member/path.append.pass.cpp delete mode 100644 test/libcxx/experimental/filesystem/class.path/path.req/is_pathable.pass.cpp delete mode 100644 test/libcxx/experimental/filesystem/convert_file_time.sh.cpp delete mode 100644 test/libcxx/experimental/filesystem/lit.local.cfg delete mode 100644 test/libcxx/experimental/optional/version.pass.cpp delete mode 100644 test/libcxx/experimental/utilities/ratio/header.ratio.synop/includes.pass.cpp delete mode 100644 test/libcxx/experimental/utilities/ratio/version.pass.cpp delete mode 100644 test/libcxx/experimental/utilities/syserror/header.system_error.synop/includes.pass.cpp delete mode 100644 test/libcxx/experimental/utilities/syserror/version.pass.cpp delete mode 100644 test/libcxx/experimental/utilities/time/header.chrono.synop/includes.pass.cpp delete mode 100644 test/libcxx/experimental/utilities/time/version.pass.cpp delete mode 100644 test/libcxx/experimental/utilities/tuple/header.tuple.synop/includes.pass.cpp delete mode 100644 test/libcxx/experimental/utilities/tuple/version.pass.cpp create mode 100644 test/libcxx/input.output/file.streams/fstreams/filebuf/traits_mismatch.fail.cpp create mode 100644 test/libcxx/input.output/file.streams/fstreams/fstream.cons/wchar_pointer.pass.cpp create mode 100644 test/libcxx/input.output/file.streams/fstreams/fstream.members/open_wchar_pointer.pass.cpp create mode 100644 test/libcxx/input.output/file.streams/fstreams/ifstream.cons/test.dat create mode 100644 test/libcxx/input.output/file.streams/fstreams/ifstream.cons/wchar_pointer.pass.cpp create mode 100644 test/libcxx/input.output/file.streams/fstreams/ifstream.members/open_wchar_pointer.pass.cpp create mode 100644 test/libcxx/input.output/file.streams/fstreams/ifstream.members/test.dat create mode 100644 test/libcxx/input.output/file.streams/fstreams/ofstream.cons/wchar_pointer.pass.cpp create mode 100644 test/libcxx/input.output/file.streams/fstreams/ofstream.members/open_wchar_pointer.pass.cpp create mode 100644 test/libcxx/input.output/file.streams/fstreams/traits_mismatch.fail.cpp create mode 100644 test/libcxx/input.output/filesystems/class.directory_entry/directory_entry.mods/last_write_time.sh.cpp create mode 100644 test/libcxx/input.output/filesystems/class.path/path.itr/iterator_db.pass.cpp create mode 100644 test/libcxx/input.output/filesystems/class.path/path.itr/reverse_iterator_produces_diagnostic.fail.cpp create mode 100644 test/libcxx/input.output/filesystems/class.path/path.req/is_pathable.pass.cpp create mode 100644 test/libcxx/input.output/filesystems/convert_file_time.sh.cpp create mode 100644 test/libcxx/input.output/filesystems/lit.local.cfg create mode 100644 test/libcxx/input.output/filesystems/version.pass.cpp create mode 100644 test/libcxx/input.output/iostream.format/input.streams/traits_mismatch.fail.cpp create mode 100644 test/libcxx/input.output/iostream.format/output.streams/traits_mismatch.fail.cpp create mode 100644 test/libcxx/input.output/string.streams/traits_mismatch.fail.cpp create mode 100644 test/libcxx/iterators/failed.pass.cpp create mode 100644 test/libcxx/language.support/cmp/version.pass.cpp create mode 100644 test/libcxx/language.support/support.limits/version.pass.cpp create mode 100644 test/libcxx/memory/is_allocator.pass.cpp create mode 100644 test/libcxx/numerics/complex.number/__sqr.pass.cpp create mode 100644 test/libcxx/strings/basic.string/string.modifiers/clear_and_shrink_db1.pass.cpp create mode 100644 test/libcxx/type_traits/is_floating_point.pass.cpp delete mode 100644 test/libcxx/utilities/tuple/tuple.tuple/diagnose_reference_binding.fail.cpp delete mode 100644 test/libcxx/utilities/tuple/tuple.tuple/diagnose_reference_binding.pass.cpp create mode 100644 test/libcxx/utilities/tuple/tuple.tuple/tuple.cnstr/PR20855_tuple_ref_binding_diagnostics.fail.cpp create mode 100644 test/libcxx/utilities/utility/pairs/pairs.pair/assign_tuple_like.pass.cpp create mode 100644 test/std/containers/associative/map/map.ops/count_transparent.pass.cpp create mode 100644 test/std/containers/associative/map/map.ops/equal_range_transparent.pass.cpp create mode 100644 test/std/containers/associative/multimap/multimap.ops/count_transparent.pass.cpp create mode 100644 test/std/containers/associative/multimap/multimap.ops/equal_range_transparent.pass.cpp create mode 100644 test/std/containers/associative/multiset/count_transparent.pass.cpp create mode 100644 test/std/containers/associative/multiset/equal_range_transparent.pass.cpp create mode 100644 test/std/containers/associative/set/count_transparent.pass.cpp create mode 100644 test/std/containers/associative/set/equal_range_transparent.pass.cpp create mode 100644 test/std/containers/container.adaptors/priority.queue/priqueue.cons/deduct.fail.cpp create mode 100644 test/std/containers/container.adaptors/priority.queue/priqueue.cons/deduct.pass.cpp create mode 100644 test/std/containers/container.adaptors/queue/queue.cons/deduct.fail.cpp create mode 100644 test/std/containers/container.adaptors/queue/queue.cons/deduct.pass.cpp create mode 100644 test/std/containers/container.adaptors/stack/stack.cons/deduct.fail.cpp create mode 100644 test/std/containers/container.adaptors/stack/stack.cons/deduct.pass.cpp create mode 100644 test/std/containers/container.requirements/container.requirements.general/allocator_move.pass.cpp create mode 100644 test/std/containers/sequences/array/array.cons/deduct.fail.cpp create mode 100644 test/std/containers/sequences/array/array.cons/deduct.pass.cpp create mode 100644 test/std/containers/sequences/array/array.cons/implicit_copy.pass.cpp create mode 100644 test/std/containers/sequences/array/array.fill/fill.fail.cpp create mode 100644 test/std/containers/sequences/array/array.swap/swap.fail.cpp create mode 100644 test/std/containers/sequences/array/compare.fail.cpp create mode 100644 test/std/containers/sequences/array/compare.pass.cpp create mode 100644 test/std/containers/sequences/array/size_and_alignment.pass.cpp create mode 100644 test/std/containers/sequences/deque/deque.cons/deduct.fail.cpp create mode 100644 test/std/containers/sequences/deque/deque.cons/deduct.pass.cpp create mode 100644 test/std/containers/sequences/forwardlist/forwardlist.cons/deduct.fail.cpp create mode 100644 test/std/containers/sequences/forwardlist/forwardlist.cons/deduct.pass.cpp create mode 100644 test/std/containers/sequences/list/list.cons/deduct.fail.cpp create mode 100644 test/std/containers/sequences/list/list.cons/deduct.pass.cpp create mode 100644 test/std/containers/sequences/vector/vector.cons/deduct.fail.cpp create mode 100644 test/std/containers/sequences/vector/vector.cons/deduct.pass.cpp create mode 100644 test/std/containers/views/span.comparison/op.eq.pass.cpp create mode 100644 test/std/containers/views/span.comparison/op.ge.pass.cpp create mode 100644 test/std/containers/views/span.comparison/op.gt.pass.cpp create mode 100644 test/std/containers/views/span.comparison/op.le.pass.cpp create mode 100644 test/std/containers/views/span.comparison/op.lt.pass.cpp create mode 100644 test/std/containers/views/span.comparison/op.ne.pass.cpp create mode 100644 test/std/containers/views/span.cons/array.fail.cpp create mode 100644 test/std/containers/views/span.cons/array.pass.cpp create mode 100644 test/std/containers/views/span.cons/assign.pass.cpp create mode 100644 test/std/containers/views/span.cons/container.fail.cpp create mode 100644 test/std/containers/views/span.cons/container.pass.cpp create mode 100644 test/std/containers/views/span.cons/copy.pass.cpp create mode 100644 test/std/containers/views/span.cons/deduct.pass.cpp create mode 100644 test/std/containers/views/span.cons/default.fail.cpp create mode 100644 test/std/containers/views/span.cons/default.pass.cpp create mode 100644 test/std/containers/views/span.cons/ptr_len.fail.cpp create mode 100644 test/std/containers/views/span.cons/ptr_len.pass.cpp create mode 100644 test/std/containers/views/span.cons/ptr_ptr.fail.cpp create mode 100644 test/std/containers/views/span.cons/ptr_ptr.pass.cpp create mode 100644 test/std/containers/views/span.cons/span.fail.cpp create mode 100644 test/std/containers/views/span.cons/span.pass.cpp create mode 100644 test/std/containers/views/span.cons/stdarray.pass.cpp create mode 100644 test/std/containers/views/span.elem/data.pass.cpp create mode 100644 test/std/containers/views/span.elem/op_idx.pass.cpp create mode 100644 test/std/containers/views/span.iterators/begin.pass.cpp create mode 100644 test/std/containers/views/span.iterators/end.pass.cpp create mode 100644 test/std/containers/views/span.iterators/rbegin.pass.cpp create mode 100644 test/std/containers/views/span.iterators/rend.pass.cpp create mode 100644 test/std/containers/views/span.objectrep/as_bytes.pass.cpp create mode 100644 test/std/containers/views/span.objectrep/as_writeable_bytes.fail.cpp create mode 100644 test/std/containers/views/span.objectrep/as_writeable_bytes.pass.cpp create mode 100644 test/std/containers/views/span.obs/empty.pass.cpp create mode 100644 test/std/containers/views/span.obs/size.pass.cpp create mode 100644 test/std/containers/views/span.obs/size_bytes.pass.cpp create mode 100644 test/std/containers/views/span.sub/first.pass.cpp create mode 100644 test/std/containers/views/span.sub/last.pass.cpp create mode 100644 test/std/containers/views/span.sub/subspan.pass.cpp create mode 100644 test/std/containers/views/types.pass.cpp delete mode 100644 test/std/experimental/algorithms/alg.random.sample/sample.fail.cpp delete mode 100644 test/std/experimental/algorithms/alg.random.sample/sample.pass.cpp delete mode 100644 test/std/experimental/algorithms/alg.random.sample/sample.stable.pass.cpp delete mode 100644 test/std/experimental/any/any.class/any.assign/copy.pass.cpp delete mode 100644 test/std/experimental/any/any.class/any.assign/move.pass.cpp delete mode 100644 test/std/experimental/any/any.class/any.assign/value.pass.cpp delete mode 100644 test/std/experimental/any/any.class/any.assign/value_non_copyable_assign.fail.cpp delete mode 100644 test/std/experimental/any/any.class/any.cons/copy.pass.cpp delete mode 100644 test/std/experimental/any/any.class/any.cons/default.pass.cpp delete mode 100644 test/std/experimental/any/any.class/any.cons/move.pass.cpp delete mode 100644 test/std/experimental/any/any.class/any.cons/non_copyable_value.fail.cpp delete mode 100644 test/std/experimental/any/any.class/any.cons/value.pass.cpp delete mode 100644 test/std/experimental/any/any.class/any.modifiers/clear.pass.cpp delete mode 100644 test/std/experimental/any/any.class/any.modifiers/swap.pass.cpp delete mode 100644 test/std/experimental/any/any.class/any.observers/empty.pass.cpp delete mode 100644 test/std/experimental/any/any.class/any.observers/type.pass.cpp delete mode 100644 test/std/experimental/any/any.class/nothing_to_do.pass.cpp delete mode 100644 test/std/experimental/any/any.nonmembers/any.cast/any_cast_pointer.pass.cpp delete mode 100644 test/std/experimental/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp delete mode 100644 test/std/experimental/any/any.nonmembers/any.cast/const_correctness.fail.cpp delete mode 100644 test/std/experimental/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp delete mode 100644 test/std/experimental/any/any.nonmembers/any.cast/reference_types.fail.cpp delete mode 100644 test/std/experimental/any/any.nonmembers/swap.pass.cpp delete mode 120000 test/std/experimental/filesystem/Inputs/static_test_env/bad_symlink delete mode 100644 test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/afile3 delete mode 100644 test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/dir3/file5 delete mode 100644 test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/file4 delete mode 120000 test/std/experimental/filesystem/Inputs/static_test_env/dir1/dir2/symlink_to_dir3 delete mode 100644 test/std/experimental/filesystem/Inputs/static_test_env/dir1/file1 delete mode 100644 test/std/experimental/filesystem/Inputs/static_test_env/dir1/file2 delete mode 100644 test/std/experimental/filesystem/Inputs/static_test_env/empty_file delete mode 100644 test/std/experimental/filesystem/Inputs/static_test_env/non_empty_file delete mode 120000 test/std/experimental/filesystem/Inputs/static_test_env/symlink_to_dir delete mode 120000 test/std/experimental/filesystem/Inputs/static_test_env/symlink_to_empty_file delete mode 100644 test/std/experimental/filesystem/class.directory_entry/directory_entry.cons.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_entry/directory_entry.mods.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/comparisons.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/path.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/status.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/copy.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/ctor.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/default_ctor.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/increment.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/move.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.directory_iterator/types.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.file_status/file_status.cons.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.file_status/file_status.mods.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.file_status/file_status.obs.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.filesystem_error/filesystem_error.members.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.itr/iterator.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.append.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.assign/braced_init.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.assign/copy.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.assign/move.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.assign/source.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.compare.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.concat.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.construct/copy.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.construct/default.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.construct/move.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.construct/source.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.decompose/empty.fail.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.decompose/path.decompose.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.generic.obs/named_overloads.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.modifiers/clear.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.modifiers/make_preferred.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.modifiers/remove_filename.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.modifiers/replace_extension.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.modifiers/replace_filename.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.modifiers/swap.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.native.obs/c_str.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.native.obs/named_overloads.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.native.obs/native.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.native.obs/operator_string.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.native.obs/string_alloc.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.member/path.query/tested_in_path_decompose.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.nonmember/append_op.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.nonmember/comparison_ops_tested_elsewhere.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.nonmember/hash_value_tested_elswhere.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.nonmember/path.factory.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.nonmember/path.io.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.nonmember/path.io.unicode_bug.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/path.nonmember/swap.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.path/synop.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp delete mode 100644 test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.enum/check_bitmask_types.hpp delete mode 100644 test/std/experimental/filesystem/fs.enum/enum.copy_options.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.enum/enum.directory_options.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.enum/enum.file_type.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.enum/enum.perms.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.error.report/tested_elsewhere.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.filesystem.synopsis/file_time_type.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.absolute/absolute.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.canonical/canonical.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.copy/copy.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.current_path/current_path.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.exists/exists.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.file_size/file_size.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.is_other/is_other.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.permissions/permissions.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.remove/remove.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.rename/rename.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.space/space.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.status/status.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.status_known/status_known.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.system_complete/system_complete.pass.cpp delete mode 100644 test/std/experimental/filesystem/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp delete mode 100644 test/std/experimental/filesystem/lit.local.cfg create mode 100644 test/std/experimental/language.support/support.coroutines/coroutine.handle/coroutine.handle.noop/noop_coroutine.pass.cpp create mode 100644 test/std/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair_evil.pass.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops.overview/nothing_to_do.pass.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/nothing_to_do.pass.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.bool1.fail.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.bool2.fail.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.bool3.fail.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.bool4.fail.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.not_integral1.fail.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.not_integral2.fail.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.gcd/gcd.pass.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.lcm/lcm.bool1.fail.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.lcm/lcm.bool2.fail.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.lcm/lcm.bool3.fail.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.lcm/lcm.bool4.fail.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.lcm/lcm.not_integral1.fail.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.lcm/lcm.not_integral2.fail.cpp delete mode 100644 test/std/experimental/numeric/numeric.ops/numeric.ops.lcm/lcm.pass.cpp delete mode 100644 test/std/experimental/optional/optional.bad_optional_access/default.pass.cpp delete mode 100644 test/std/experimental/optional/optional.bad_optional_access/derive.pass.cpp delete mode 100644 test/std/experimental/optional/optional.comp_with_t/equal.pass.cpp delete mode 100644 test/std/experimental/optional/optional.comp_with_t/greater.pass.cpp delete mode 100644 test/std/experimental/optional/optional.comp_with_t/greater_equal.pass.cpp delete mode 100644 test/std/experimental/optional/optional.comp_with_t/less_equal.pass.cpp delete mode 100644 test/std/experimental/optional/optional.comp_with_t/less_than.pass.cpp delete mode 100644 test/std/experimental/optional/optional.comp_with_t/not_equal.pass.cpp delete mode 100644 test/std/experimental/optional/optional.defs/tested_elsewhere.pass.cpp delete mode 100644 test/std/experimental/optional/optional.general/nothing_to_do.pass.cpp delete mode 100644 test/std/experimental/optional/optional.hash/hash.pass.cpp delete mode 100644 test/std/experimental/optional/optional.inplace/in_place_t.pass.cpp delete mode 100644 test/std/experimental/optional/optional.nullops/equal.pass.cpp delete mode 100644 test/std/experimental/optional/optional.nullops/greater.pass.cpp delete mode 100644 test/std/experimental/optional/optional.nullops/greater_equal.pass.cpp delete mode 100644 test/std/experimental/optional/optional.nullops/less_equal.pass.cpp delete mode 100644 test/std/experimental/optional/optional.nullops/less_than.pass.cpp delete mode 100644 test/std/experimental/optional/optional.nullops/not_equal.pass.cpp delete mode 100644 test/std/experimental/optional/optional.nullopt/nullopt_t.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.assign/assign_value.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.ctor/const_T.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.ctor/default.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.dtor/dtor.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.observe/bool.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.observe/dereference.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.observe/dereference_const.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.observe/op_arrow.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.observe/value_const.fail.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.observe/value_or.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.observe/value_or_const.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional_const_void.fail.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional_not_destructible.fail.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional_not_noexcept_destructible.fail.cpp delete mode 100644 test/std/experimental/optional/optional.object/optional_void.fail.cpp delete mode 100644 test/std/experimental/optional/optional.object/types.pass.cpp delete mode 100644 test/std/experimental/optional/optional.relops/equal.pass.cpp delete mode 100644 test/std/experimental/optional/optional.relops/greater_equal.pass.cpp delete mode 100644 test/std/experimental/optional/optional.relops/greater_than.pass.cpp delete mode 100644 test/std/experimental/optional/optional.relops/less_equal.pass.cpp delete mode 100644 test/std/experimental/optional/optional.relops/less_than.pass.cpp delete mode 100644 test/std/experimental/optional/optional.relops/not_equal.pass.cpp delete mode 100644 test/std/experimental/optional/optional.specalg/make_optional.pass.cpp delete mode 100644 test/std/experimental/optional/optional.specalg/swap.pass.cpp delete mode 100644 test/std/experimental/optional/optional.syn/optional_const_in_place_t.fail.cpp delete mode 100644 test/std/experimental/optional/optional.syn/optional_const_lvalue_ref.fail.cpp delete mode 100644 test/std/experimental/optional/optional.syn/optional_const_nullopt_t.fail.cpp delete mode 100644 test/std/experimental/optional/optional.syn/optional_in_place_t.fail.cpp delete mode 100644 test/std/experimental/optional/optional.syn/optional_includes_initializer_list.pass.cpp delete mode 100644 test/std/experimental/optional/optional.syn/optional_lvalue_ref.fail.cpp delete mode 100644 test/std/experimental/optional/optional.syn/optional_nullopt_t.fail.cpp delete mode 100644 test/std/experimental/optional/optional.syn/optional_rvalue_ref.fail.cpp create mode 100644 test/std/experimental/simd/simd.casts/simd_cast.pass.cpp create mode 100644 test/std/experimental/simd/simd.casts/static_simd_cast.pass.cpp create mode 100644 test/std/experimental/simd/simd.cons/broadcast.pass.cpp create mode 100644 test/std/experimental/simd/simd.cons/generator.pass.cpp create mode 100644 test/std/experimental/simd/simd.traits/abi_for_size.pass.cpp create mode 100644 test/std/experimental/simd/simd.traits/is_abi_tag.pass.cpp create mode 100644 test/std/experimental/simd/simd.traits/is_simd.pass.cpp create mode 100644 test/std/experimental/simd/simd.traits/is_simd_flag_type.pass.cpp create mode 100644 test/std/experimental/simd/simd.traits/is_simd_mask.pass.cpp delete mode 100644 test/std/experimental/string.view/lit.local.cfg delete mode 100644 test/std/experimental/string.view/nothing_to_do.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.access/at.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.access/back.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.access/data.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.access/front.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.access/index.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.capacity/capacity.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/opeq.string_view.pointer.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/opeq.string_view.string.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/opeq.string_view.string_view.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/opge.string_view.pointer.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/opge.string_view.string.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/opge.string_view.string_view.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/opgt.string_view.pointer.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/opgt.string_view.string.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/opgt.string_view.string_view.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/ople.string_view.pointer.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/ople.string_view.string.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/ople.string_view.string_view.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/oplt.string_view.pointer.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/oplt.string_view.string.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/oplt.string_view.string_view.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/opne.string_view.pointer.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/opne.string_view.string.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.comparison/opne.string_view.string_view.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.cons/default.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.cons/from_literal.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.cons/from_ptr_len.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.cons/from_string.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.cons/from_string1.fail.cpp delete mode 100644 test/std/experimental/string.view/string.view.cons/from_string2.fail.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_char_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_first_not_of_char_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_first_not_of_pointer_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_first_not_of_pointer_size_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_first_not_of_string_view_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_first_of_char_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_first_of_pointer_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_first_of_pointer_size_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_first_of_string_view_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_last_not_of_char_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_last_not_of_pointer_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_last_not_of_pointer_size_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_last_not_of_string_view_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_last_of_char_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_last_of_pointer_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_last_of_pointer_size_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_last_of_string_view_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_pointer_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_pointer_size_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/find_string_view_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/rfind_char_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/rfind_pointer_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/rfind_pointer_size_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.find/rfind_string_view_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.hash/string_view.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.io/stream_insert.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.iterators/begin.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.iterators/end.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.iterators/rbegin.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.iterators/rend.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.modifiers/clear.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.modifiers/remove_prefix.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.modifiers/remove_suffix.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.modifiers/swap.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.nonmem/quoted.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.ops/basic_string.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.ops/compare.pointer.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.ops/compare.pointer_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.ops/compare.size_size_sv.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.ops/compare.sv.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.ops/copy.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.ops/substr.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.ops/to_string.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.synop/nothing_to_do.pass.cpp delete mode 100644 test/std/experimental/string.view/string.view.template/nothing_to_do.pass.cpp delete mode 100644 test/std/experimental/utilities/meta/meta.logical/conjunction.pass.cpp delete mode 100644 test/std/experimental/utilities/meta/meta.logical/disjunction.pass.cpp delete mode 100644 test/std/experimental/utilities/meta/meta.logical/negation.pass.cpp delete mode 100644 test/std/experimental/utilities/meta/meta.type.synop/includes.pass.cpp delete mode 100644 test/std/experimental/utilities/meta/meta.type.synop/meta.rel.pass.cpp delete mode 100644 test/std/experimental/utilities/meta/meta.type.synop/meta.unary.cat.pass.cpp delete mode 100644 test/std/experimental/utilities/meta/meta.type.synop/meta.unary.comp.pass.cpp delete mode 100644 test/std/experimental/utilities/meta/meta.type.synop/meta.unary.prop.pass.cpp delete mode 100644 test/std/experimental/utilities/meta/meta.type.synop/meta.unary.prop.query.pass.cpp delete mode 100644 test/std/experimental/utilities/ratio/header.ratio.synop/includes.pass.cpp delete mode 100644 test/std/experimental/utilities/ratio/header.ratio.synop/ratio_equal_v.pass.cpp delete mode 100644 test/std/experimental/utilities/ratio/header.ratio.synop/ratio_greater_equal_v.pass.cpp delete mode 100644 test/std/experimental/utilities/ratio/header.ratio.synop/ratio_greater_v.pass.cpp delete mode 100644 test/std/experimental/utilities/ratio/header.ratio.synop/ratio_less_equal_v.pass.cpp delete mode 100644 test/std/experimental/utilities/ratio/header.ratio.synop/ratio_less_v.pass.cpp delete mode 100644 test/std/experimental/utilities/ratio/header.ratio.synop/ratio_not_equal_v.pass.cpp delete mode 100644 test/std/experimental/utilities/ratio/nothing_to_do.pass.cpp delete mode 100644 test/std/experimental/utilities/syserror/header.system_error.synop/includes.pass.cpp delete mode 100644 test/std/experimental/utilities/syserror/header.system_error.synop/is_error_code_enum_v.pass.cpp delete mode 100644 test/std/experimental/utilities/syserror/header.system_error.synop/is_error_condition_enum.pass.cpp delete mode 100644 test/std/experimental/utilities/time/header.chrono.synop/includes.pass.cpp delete mode 100644 test/std/experimental/utilities/time/header.chrono.synop/treat_as_floating_point_v.pass.cpp delete mode 100644 test/std/experimental/utilities/tuple/header.tuple.synop/includes.pass.cpp delete mode 100644 test/std/experimental/utilities/tuple/tuple.apply/arg_type.pass.cpp delete mode 100644 test/std/experimental/utilities/tuple/tuple.apply/constexpr_types.pass.cpp delete mode 100644 test/std/experimental/utilities/tuple/tuple.apply/extended_types.pass.cpp delete mode 100644 test/std/experimental/utilities/tuple/tuple.apply/large_arity.pass.cpp delete mode 100644 test/std/experimental/utilities/tuple/tuple.apply/ref_qualifiers.pass.cpp delete mode 100644 test/std/experimental/utilities/tuple/tuple.apply/return_type.pass.cpp delete mode 100644 test/std/experimental/utilities/tuple/tuple.apply/types.pass.cpp delete mode 100644 test/std/experimental/utilities/tuple/tuple_size_v.fail.cpp delete mode 100644 test/std/experimental/utilities/tuple/tuple_size_v.pass.cpp delete mode 100644 test/std/experimental/utilities/tuple/tuple_size_v_2.fail.cpp delete mode 100644 test/std/experimental/utilities/tuple/tuple_size_v_3.fail.cpp create mode 100644 test/std/input.output/file.streams/fstreams/filebuf.members/open_path.pass.cpp create mode 100644 test/std/input.output/file.streams/fstreams/fstream.cons/path.pass.cpp create mode 100644 test/std/input.output/file.streams/fstreams/fstream.members/open_path.pass.cpp create mode 100644 test/std/input.output/file.streams/fstreams/ifstream.cons/path.pass.cpp create mode 100644 test/std/input.output/file.streams/fstreams/ifstream.members/open_path.pass.cpp create mode 100644 test/std/input.output/file.streams/fstreams/ofstream.cons/path.pass.cpp create mode 100644 test/std/input.output/file.streams/fstreams/ofstream.members/open_path.pass.cpp create mode 120000 test/std/input.output/filesystems/Inputs/static_test_env/bad_symlink create mode 100644 test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/afile3 create mode 100644 test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/dir3/file5 create mode 100644 test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/file4 create mode 120000 test/std/input.output/filesystems/Inputs/static_test_env/dir1/dir2/symlink_to_dir3 create mode 100644 test/std/input.output/filesystems/Inputs/static_test_env/dir1/file1 create mode 100644 test/std/input.output/filesystems/Inputs/static_test_env/dir1/file2 create mode 100644 test/std/input.output/filesystems/Inputs/static_test_env/empty_file create mode 100644 test/std/input.output/filesystems/Inputs/static_test_env/non_empty_file create mode 120000 test/std/input.output/filesystems/Inputs/static_test_env/symlink_to_dir create mode 120000 test/std/input.output/filesystems/Inputs/static_test_env/symlink_to_empty_file create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/copy_assign.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/default_const.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/move_assign.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/path.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/assign.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/refresh.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/replace_filename.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/comparisons.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_size.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/file_type_obs.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/hard_link_count.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/last_write_time.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/path.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/status.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_entry/directory_entry.obs/symlink_status.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/copy_assign.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/ctor.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/default_ctor.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/increment.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/move_assign.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp create mode 100644 test/std/input.output/filesystems/class.directory_iterator/types.pass.cpp create mode 100644 test/std/input.output/filesystems/class.file_status/file_status.cons.pass.cpp create mode 100644 test/std/input.output/filesystems/class.file_status/file_status.mods.pass.cpp create mode 100644 test/std/input.output/filesystems/class.file_status/file_status.obs.pass.cpp create mode 100644 test/std/input.output/filesystems/class.filesystem_error/filesystem_error.members.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.itr/iterator.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.append.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.assign/braced_init.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.assign/copy.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.assign/move.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.assign/source.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.concat.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.construct/copy.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.construct/default.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.construct/move.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.construct/source.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.decompose/empty.fail.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.decompose/path.decompose.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_normal.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.generic.obs/generic_string_alloc.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.generic.obs/named_overloads.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.modifiers/clear.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.modifiers/make_preferred.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.modifiers/remove_filename.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_extension.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.modifiers/replace_filename.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.modifiers/swap.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.native.obs/c_str.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.native.obs/named_overloads.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.native.obs/native.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.native.obs/operator_string.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.native.obs/string_alloc.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.member/path.query/tested_in_path_decompose.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.nonmember/append_op.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.nonmember/comparison_ops_tested_elsewhere.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.nonmember/hash_value_tested_elswhere.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.nonmember/path.factory.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.nonmember/path.io.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.nonmember/path.io.unicode_bug.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/path.nonmember/swap.pass.cpp create mode 100644 test/std/input.output/filesystems/class.path/synop.pass.cpp create mode 100644 test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy.pass.cpp create mode 100644 test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/copy_assign.pass.cpp create mode 100644 test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp create mode 100644 test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/depth.pass.cpp create mode 100644 test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/disable_recursion_pending.pass.cpp create mode 100644 test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp create mode 100644 test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move.pass.cpp create mode 100644 test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/move_assign.pass.cpp create mode 100644 test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/pop.pass.cpp create mode 100644 test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/recursion_pending.pass.cpp create mode 100644 test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.enum/check_bitmask_types.hpp create mode 100644 test/std/input.output/filesystems/fs.enum/enum.copy_options.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.enum/enum.directory_options.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.enum/enum.file_type.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.enum/enum.path.format.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.enum/enum.perm_options.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.enum/enum.perms.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.error.report/tested_elsewhere.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.filesystem.synopsis/file_time_type.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.absolute/absolute.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.canonical/canonical.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.copy/copy.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_file/copy_file_large.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.copy_symlink/copy_symlink.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directories/create_directories.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory/create_directory_with_attributes.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.create_directory_symlink/create_directory_symlink.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.create_hard_link/create_hard_link.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.create_symlink/create_symlink.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.current_path/current_path.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.equivalent/equivalent.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.exists/exists.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.file_size/file_size.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.hard_lk_ct/hard_link_count.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.is_other/is_other.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.permissions/permissions.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.proximate/proximate.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.read_symlink/read_symlink.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.relative/relative.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.remove/remove.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.remove_all/remove_all.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.resize_file/resize_file.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.space/space.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.status/status.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.status_known/status_known.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.symlink_status/symlink_status.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.op.funcs/fs.op.weakly_canonical/weakly_canonical.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.req.macros/feature_macro.pass.cpp create mode 100644 test/std/input.output/filesystems/fs.req.namespace/namespace.fail.cpp create mode 100644 test/std/input.output/filesystems/fs.req.namespace/namespace.pass.cpp create mode 100644 test/std/input.output/filesystems/lit.local.cfg create mode 100644 test/std/language.support/cmp/cmp.common/common_comparison_category.pass.cpp create mode 100644 test/std/language.support/cmp/cmp.partialord/partialord.pass.cpp create mode 100644 test/std/language.support/cmp/cmp.strongeq/cmp.strongeq.pass.cpp create mode 100644 test/std/language.support/cmp/cmp.strongord/strongord.pass.cpp create mode 100644 test/std/language.support/cmp/cmp.weakeq/cmp.weakeq.pass.cpp create mode 100644 test/std/language.support/cmp/cmp.weakord/weakord.pass.cpp create mode 100644 test/std/language.support/support.limits/version.pass.cpp create mode 100644 test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/test_neg_one.pass.cpp create mode 100644 test/std/re/re.regex/re.regex.construct/bad_ctype.pass.cpp create mode 100644 test/std/re/re.regex/re.regex.construct/deduct.fail.cpp create mode 100644 test/std/re/re.regex/re.regex.construct/deduct.pass.cpp create mode 100644 test/std/strings/basic.string/char.bad.fail.cpp create mode 100644 test/std/strings/basic.string/string.cons/iter_alloc_deduction.fail.cpp create mode 100644 test/std/strings/basic.string/string.cons/iter_alloc_deduction.pass.cpp create mode 100644 test/std/strings/basic.string/string.cons/string_view_deduction.fail.cpp create mode 100644 test/std/strings/basic.string/string.cons/string_view_deduction.pass.cpp create mode 100644 test/std/strings/basic.string/string.cons/string_view_size_size_deduction.fail.cpp create mode 100644 test/std/strings/basic.string/string.cons/string_view_size_size_deduction.pass.cpp create mode 100644 test/std/strings/string.view/char.bad.fail.cpp create mode 100644 test/std/utilities/function.objects/comparisons/constexpr_init.pass.cpp create mode 100644 test/std/utilities/function.objects/func.search/func.search.bm/default.pass.cpp create mode 100644 test/std/utilities/function.objects/func.search/func.search.bm/hash.pass.cpp create mode 100644 test/std/utilities/function.objects/func.search/func.search.bm/hash.pred.pass.cpp create mode 100644 test/std/utilities/function.objects/func.search/func.search.bm/pred.pass.cpp create mode 100644 test/std/utilities/function.objects/func.search/func.search.bmh/default.pass.cpp create mode 100644 test/std/utilities/function.objects/func.search/func.search.bmh/hash.pass.cpp create mode 100644 test/std/utilities/function.objects/func.search/func.search.bmh/hash.pred.pass.cpp create mode 100644 test/std/utilities/function.objects/func.search/func.search.bmh/pred.pass.cpp create mode 100644 test/std/utilities/function.objects/func.search/func.search.default/default.pass.cpp create mode 100644 test/std/utilities/function.objects/func.search/func.search.default/default.pred.pass.cpp create mode 100644 test/std/utilities/function.objects/func.search/nothing_to_do.pass.cpp create mode 100644 test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/move_reentrant.pass.cpp create mode 100644 test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/nullptr_t_assign_reentrant.pass.cpp create mode 100644 test/std/utilities/memory/default.allocator/allocator.ctor.pass.cpp create mode 100644 test/std/utilities/memory/temporary.buffer/overaligned.pass.cpp create mode 100644 test/std/utilities/meta/meta.type.synop/endian.pass.cpp create mode 100644 test/std/utilities/meta/meta.unary/meta.unary.prop/has_unique_object_representations.pass.cpp create mode 100644 test/std/utilities/optional/optional.object/optional.object.ctor/deduct.fail.cpp create mode 100644 test/std/utilities/optional/optional.object/optional.object.ctor/deduct.pass.cpp create mode 100644 test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR20855_tuple_ref_binding_diagnostics.pass.cpp delete mode 100644 test/std/utilities/utility/pairs/pairs.pair/assign_tuple.pass.cpp create mode 100644 test/support/filesystem_include.hpp create mode 100644 test/support/format_string.hpp create mode 100644 test/support/test_comparisons.h create mode 100644 test/support/verbose_assert.h create mode 100644 utils/google-benchmark/cmake/HandleGTest.cmake create mode 100644 utils/google-benchmark/cmake/benchmark.pc.in create mode 100644 utils/google-benchmark/cmake/llvm-toolchain.cmake create mode 100644 utils/google-benchmark/cmake/split_list.cmake create mode 100644 utils/google-benchmark/docs/AssemblyTests.md delete mode 100644 utils/google-benchmark/include/benchmark/benchmark_api.h delete mode 100644 utils/google-benchmark/include/benchmark/macros.h delete mode 100644 utils/google-benchmark/include/benchmark/reporter.h delete mode 100644 utils/google-benchmark/mingw.py create mode 100644 utils/google-benchmark/releasing.md create mode 100644 utils/google-benchmark/src/benchmark_main.cc create mode 100644 utils/google-benchmark/src/benchmark_register.h delete mode 100644 utils/google-benchmark/src/stat.h create mode 100644 utils/google-benchmark/src/statistics.cc create mode 100644 utils/google-benchmark/src/statistics.h delete mode 100644 utils/google-benchmark/src/sysinfo.h create mode 100644 utils/google-benchmark/src/thread_manager.h create mode 100644 utils/google-benchmark/src/thread_timer.h create mode 100644 utils/google-benchmark/test/benchmark_gtest.cc create mode 100644 utils/google-benchmark/test/clobber_memory_assembly_test.cc create mode 100644 utils/google-benchmark/test/donotoptimize_assembly_test.cc create mode 100644 utils/google-benchmark/test/link_main_test.cc create mode 100644 utils/google-benchmark/test/state_assembly_test.cc create mode 100644 utils/google-benchmark/test/statistics_gtest.cc create mode 100644 utils/google-benchmark/test/string_util_gtest.cc create mode 100644 utils/google-benchmark/test/templated_fixture_test.cc create mode 100644 utils/google-benchmark/test/user_counters_tabular_test.cc create mode 100644 utils/google-benchmark/test/user_counters_test.cc create mode 100755 utils/google-benchmark/tools/compare.py create mode 100644 utils/google-benchmark/tools/gbench/Inputs/test2_run.json create mode 100644 utils/google-benchmark/tools/gbench/Inputs/test3_run0.json create mode 100644 utils/google-benchmark/tools/gbench/Inputs/test3_run1.json create mode 100755 utils/google-benchmark/tools/strip_asm.py create mode 100644 www/TS_deprecation.html diff --git a/CMakeLists.txt b/CMakeLists.txt index 29eef8f35dbcc..39ff0a29dcdf9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,10 @@ endif() if(POLICY CMP0022) cmake_policy(SET CMP0022 NEW) # Required when interacting with LLVM and Clang endif() +if(POLICY CMP0068) + cmake_policy(SET CMP0068 NEW) + set(CMAKE_BUILD_WITH_INSTALL_NAME_DIR ON) +endif() # Add path for custom modules set(CMAKE_MODULE_PATH @@ -23,7 +27,7 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) project(libcxx CXX C) set(PACKAGE_NAME libcxx) - set(PACKAGE_VERSION 6.0.0svn) + set(PACKAGE_VERSION 7.0.0svn) set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") set(PACKAGE_BUGREPORT "llvm-bugs@lists.llvm.org") @@ -68,7 +72,7 @@ set(ENABLE_FILESYSTEM_DEFAULT ${LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY}) if (WIN32) set(ENABLE_FILESYSTEM_DEFAULT OFF) endif() -option(LIBCXX_ENABLE_FILESYSTEM "Build filesystem as part of libc++experimental.a" +option(LIBCXX_ENABLE_FILESYSTEM "Build filesystem as part of libc++fs.a" ${ENABLE_FILESYSTEM_DEFAULT}) option(LIBCXX_INCLUDE_TESTS "Build the libc++ tests." ${LLVM_INCLUDE_TESTS}) @@ -93,11 +97,26 @@ set(LIBCXX_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING "Define suffix of library directory name (32/64)") option(LIBCXX_INSTALL_HEADERS "Install the libc++ headers." ON) option(LIBCXX_INSTALL_LIBRARY "Install the libc++ library." ON) +cmake_dependent_option(LIBCXX_INSTALL_STATIC_LIBRARY + "Install the static libc++ library." ON + "LIBCXX_ENABLE_STATIC;LIBCXX_INSTALL_LIBRARY" OFF) +cmake_dependent_option(LIBCXX_INSTALL_SHARED_LIBRARY + "Install the shared libc++ library." ON + "LIBCXX_ENABLE_SHARED;LIBCXX_INSTALL_LIBRARY" OFF) option(LIBCXX_INSTALL_SUPPORT_HEADERS "Install libc++ support headers." ON) cmake_dependent_option(LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY "Install libc++experimental.a" ON "LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY;LIBCXX_INSTALL_LIBRARY" OFF) -set(LIBCXX_ABI_VERSION 1 CACHE STRING "ABI version of libc++.") +cmake_dependent_option(LIBCXX_INSTALL_FILESYSTEM_LIBRARY + "Install libc++fs.a" ON + "LIBCXX_ENABLE_FILESYSTEM;LIBCXX_INSTALL_LIBRARY" OFF) + +if (FUCHSIA) + set(DEFAULT_ABI_VERSION 2) +else() + set(DEFAULT_ABI_VERSION 1) +endif() +set(LIBCXX_ABI_VERSION ${DEFAULT_ABI_VERSION} CACHE STRING "ABI version of libc++.") option(LIBCXX_ABI_UNSTABLE "Unstable ABI of libc++." OFF) option(LIBCXX_ABI_FORCE_ITANIUM "Ignore auto-detection and force use of the Itanium ABI.") option(LIBCXX_ABI_FORCE_MICROSOFT "Ignore auto-detection and force use of the Microsoft ABI.") @@ -123,6 +142,7 @@ if (LIBCXX_CXX_ABI STREQUAL "default") ${LLVM_MAIN_SRC_DIR}/runtimes/libcxxabi/include ${LLVM_MAIN_SRC_DIR}/../libcxxabi/include NO_DEFAULT_PATH + NO_CMAKE_FIND_ROOT_PATH ) if (LIBCXX_TARGETING_MSVC) # FIXME: Figure out how to configure the ABI library on Windows. @@ -135,6 +155,9 @@ if (LIBCXX_CXX_ABI STREQUAL "default") elseif (APPLE) set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi") set(LIBCXX_CXX_ABI_SYSTEM 1) + elseif (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") + set(LIBCXX_CXX_ABI_LIBNAME "libcxxrt") + set(LIBCXX_CXX_ABI_INCLUDE_PATHS "/usr/include/c++/v1") else() set(LIBCXX_CXX_ABI_LIBNAME "default") endif() @@ -146,13 +169,21 @@ endif() # cannot be used with LIBCXX_ENABLE_ABI_LINKER_SCRIPT. option(LIBCXX_ENABLE_STATIC_ABI_LIBRARY "Statically link the ABI library" OFF) +cmake_dependent_option(LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY + "Statically link the ABI library to static library" ON + "LIBCXX_ENABLE_STATIC_ABI_LIBRARY;LIBCXX_ENABLE_STATIC" OFF) + +cmake_dependent_option(LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY + "Statically link the ABI library to shared library" ON + "LIBCXX_ENABLE_STATIC_ABI_LIBRARY;LIBCXX_ENABLE_STATIC" OFF) + # Generate and install a linker script inplace of libc++.so. The linker script # will link libc++ to the correct ABI library. This option is on by default # on UNIX platforms other than Apple unless 'LIBCXX_ENABLE_STATIC_ABI_LIBRARY' # is on. This option is also disabled when the ABI library is not specified # or is specified to be "none". set(ENABLE_LINKER_SCRIPT_DEFAULT_VALUE OFF) -if (LLVM_HAVE_LINK_VERSION_SCRIPT AND NOT LIBCXX_ENABLE_STATIC_ABI_LIBRARY +if (LLVM_HAVE_LINK_VERSION_SCRIPT AND NOT LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY AND NOT LIBCXX_CXX_ABI_LIBNAME STREQUAL "none" AND NOT LIBCXX_CXX_ABI_LIBNAME STREQUAL "default" AND PYTHONINTERP_FOUND @@ -202,6 +233,7 @@ option(LIBCXX_ENABLE_MONOTONIC_CLOCK This option may only be set to OFF when LIBCXX_ENABLE_THREADS=OFF." ON) option(LIBCXX_HAS_MUSL_LIBC "Build libc++ with support for the Musl C library" OFF) option(LIBCXX_HAS_PTHREAD_API "Ignore auto-detection and force use of pthread API" OFF) +option(LIBCXX_HAS_WIN32_THREAD_API "Ignore auto-detection and force use of win32 thread API" OFF) option(LIBCXX_HAS_EXTERNAL_THREAD_API "Build libc++ with an externalized threading API. This option may only be set to ON when LIBCXX_ENABLE_THREADS=ON." OFF) @@ -273,6 +305,10 @@ if(NOT LIBCXX_ENABLE_THREADS) message(FATAL_ERROR "LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY can only be set " "to ON when LIBCXX_ENABLE_THREADS is also set to ON.") endif() + if (LIBCXX_HAS_WIN32_THREAD_API) + message(FATAL_ERROR "LIBCXX_HAS_WIN32_THREAD_API can only be set to ON" + " when LIBCXX_ENABLE_THREADS is also set to ON.") + endif() endif() @@ -287,6 +323,19 @@ if (LIBCXX_HAS_EXTERNAL_THREAD_API) "and LIBCXX_HAS_PTHREAD_API cannot be both" "set to ON at the same time.") endif() + if (LIBCXX_HAS_WIN32_THREAD_API) + message(FATAL_ERROR "The options LIBCXX_HAS_EXTERNAL_THREAD_API" + "and LIBCXX_HAS_WIN32_THREAD_API cannot be both" + "set to ON at the same time.") + endif() +endif() + +if (LIBCXX_HAS_PTHREAD_API) + if (LIBCXX_HAS_WIN32_THREAD_API) + message(FATAL_ERROR "The options LIBCXX_HAS_PTHREAD_API" + "and LIBCXX_HAS_WIN32_THREAD_API cannot be both" + "set to ON at the same time.") + endif() endif() # Ensure LLVM_USE_SANITIZER is not specified when LIBCXX_GENERATE_COVERAGE @@ -329,7 +378,7 @@ if (LIBCXX_ENABLE_ABI_LINKER_SCRIPT) endif() endif() -if (LIBCXX_ENABLE_STATIC_ABI_LIBRARY AND LIBCXX_ENABLE_ABI_LINKER_SCRIPT) +if (LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY AND LIBCXX_ENABLE_ABI_LINKER_SCRIPT) message(FATAL_ERROR "Conflicting options given. LIBCXX_ENABLE_STATIC_ABI_LIBRARY cannot be specified with LIBCXX_ENABLE_ABI_LINKER_SCRIPT") @@ -352,19 +401,29 @@ set(LIBCXX_COMPILER ${CMAKE_CXX_COMPILER}) set(LIBCXX_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(LIBCXX_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) set(LIBCXX_BINARY_INCLUDE_DIR "${LIBCXX_BINARY_DIR}/include/c++build") -if (LLVM_LIBRARY_OUTPUT_INTDIR) + +string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION + ${PACKAGE_VERSION}) + +if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) + set(DEFAULT_INSTALL_PREFIX lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/${LLVM_DEFAULT_TARGET_TRIPLE}/) + set(DEFAULT_INSTALL_HEADER_PREFIX lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/) + set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}/${LLVM_DEFAULT_TARGET_TRIPLE}/lib${LIBCXX_LIBDIR_SUFFIX}) + set(LIBCXX_HEADER_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}) +elseif(LLVM_LIBRARY_OUTPUT_INTDIR) set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}) + set(LIBCXX_HEADER_DIR ${LLVM_BINARY_DIR}) else() set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX}) endif() + file(MAKE_DIRECTORY "${LIBCXX_BINARY_INCLUDE_DIR}") -set(LIBCXX_INSTALL_PREFIX "" CACHE STRING +set(LIBCXX_INSTALL_PREFIX ${DEFAULT_INSTALL_PREFIX} CACHE STRING "Define libc++ destination prefix.") -if (NOT LIBCXX_INSTALL_PREFIX MATCHES "^$|.*/") - message(FATAL_ERROR "LIBCXX_INSTALL_PREFIX has to end with \"/\".") -endif() +set(LIBCXX_INSTALL_HEADER_PREFIX ${DEFAULT_INSTALL_HEADER_PREFIX} CACHE STRING + "Define libc++ header destination prefix.") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBCXX_LIBRARY_DIR}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBCXX_LIBRARY_DIR}) @@ -597,7 +656,7 @@ if (LIBCXX_STANDALONE_BUILD) endif() # Configuration file flags ===================================================== -if (NOT LIBCXX_ABI_VERSION EQUAL "1") +if (NOT LIBCXX_ABI_VERSION EQUAL DEFAULT_ABI_VERSION) config_define(${LIBCXX_ABI_VERSION} _LIBCPP_ABI_VERSION) endif() config_define_if(LIBCXX_ABI_UNSTABLE _LIBCPP_ABI_UNSTABLE) @@ -613,6 +672,7 @@ config_define_if_not(LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS _LIBCPP_HAS_NO_THRE config_define_if(LIBCXX_HAS_PTHREAD_API _LIBCPP_HAS_THREAD_API_PTHREAD) config_define_if(LIBCXX_HAS_EXTERNAL_THREAD_API _LIBCPP_HAS_THREAD_API_EXTERNAL) +config_define_if(LIBCXX_HAS_WIN32_THREAD_API _LIBCPP_HAS_THREAD_API_WIN32) config_define_if(LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY _LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL) config_define_if(LIBCXX_HAS_MUSL_LIBC _LIBCPP_HAS_MUSL_LIBC) config_define_if(LIBCXX_NO_VCRUNTIME _LIBCPP_NO_VCRUNTIME) diff --git a/CREDITS.TXT b/CREDITS.TXT index 88d923a48e913..46a06c6eab089 100644 --- a/CREDITS.TXT +++ b/CREDITS.TXT @@ -101,7 +101,7 @@ E: nico.rieck@gmail.com D: Windows fixes N: Jon Roelofs -E: jonathan@codesourcery.com +E: jroelofS@jroelofs.com D: Remote testing, Newlib port, baremetal/single-threaded support. N: Jonathan Sauer diff --git a/NOTES.TXT b/NOTES.TXT index f0597de64ae88..24d245d437cc8 100644 --- a/NOTES.TXT +++ b/NOTES.TXT @@ -26,3 +26,4 @@ to libc++. 1. Add a test under `test/libcxx` that the header defines `_LIBCPP_VERSION`. 2. Update `test/libcxx/double_include.sh.cpp` to include the new header. 3. Create a submodule in `include/module.modulemap` for the new header. +4. Update the include/CMakeLists.txt file to include the new header. diff --git a/appveyor-reqs-install.cmd b/appveyor-reqs-install.cmd index 43655d5612a80..a4160110aa5fc 100644 --- a/appveyor-reqs-install.cmd +++ b/appveyor-reqs-install.cmd @@ -9,7 +9,7 @@ cd C:\projects\deps :: Setup Compiler ::########################################################################### if NOT EXIST llvm-installer.exe ( - appveyor DownloadFile http://prereleases.llvm.org/win-snapshots/LLVM-6.0.0-r316086-win32.exe -FileName llvm-installer.exe + appveyor DownloadFile http://prereleases.llvm.org/win-snapshots/LLVM-7.0.0-r325576-win32.exe -FileName llvm-installer.exe ) if "%CLANG_VERSION%"=="ToT" ( START /WAIT llvm-installer.exe /S /D=C:\"Program Files\LLVM" diff --git a/benchmarks/CMakeLists.txt b/benchmarks/CMakeLists.txt index 8211ebd009a77..f557d4aea39ab 100644 --- a/benchmarks/CMakeLists.txt +++ b/benchmarks/CMakeLists.txt @@ -59,6 +59,7 @@ if (LIBCXX_BENCHMARK_NATIVE_STDLIB) -DBENCHMARK_ENABLE_TESTING:BOOL=OFF) endif() + #============================================================================== # Benchmark tests configuration #============================================================================== @@ -67,7 +68,7 @@ set(BENCHMARK_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}) set(BENCHMARK_LIBCXX_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/benchmark-libcxx) set(BENCHMARK_NATIVE_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/benchmark-native) set(BENCHMARK_TEST_COMPILE_FLAGS - -std=c++14 -O2 + -std=c++17 -O2 -I${BENCHMARK_LIBCXX_INSTALL}/include -I${LIBCXX_SOURCE_DIR}/test/support ) diff --git a/benchmarks/ContainerBenchmarks.hpp b/benchmarks/ContainerBenchmarks.hpp index dc268e7ebca3c..509e3d23ed9aa 100644 --- a/benchmarks/ContainerBenchmarks.hpp +++ b/benchmarks/ContainerBenchmarks.hpp @@ -3,7 +3,7 @@ #include -#include "benchmark/benchmark_api.h" +#include "benchmark/benchmark.h" namespace ContainerBenchmarks { diff --git a/benchmarks/GenerateInput.hpp b/benchmarks/GenerateInput.hpp index 9d5adac4af4f1..8c97f5881f1ed 100644 --- a/benchmarks/GenerateInput.hpp +++ b/benchmarks/GenerateInput.hpp @@ -29,14 +29,16 @@ inline std::default_random_engine& getRandomEngine() { return RandEngine; } + inline char getRandomChar() { std::uniform_int_distribution<> LettersDist(0, LettersSize-1); return Letters[LettersDist(getRandomEngine())]; } template -inline IntT getRandomInteger() { - std::uniform_int_distribution dist; +inline IntT getRandomInteger(IntT Min = 0, + IntT Max = std::numeric_limits::max()) { + std::uniform_int_distribution dist(Min, Max); return dist(getRandomEngine()); } diff --git a/benchmarks/algorithms.bench.cpp b/benchmarks/algorithms.bench.cpp index 745cc17271843..86315390e0d2c 100644 --- a/benchmarks/algorithms.bench.cpp +++ b/benchmarks/algorithms.bench.cpp @@ -2,7 +2,7 @@ #include #include -#include "benchmark/benchmark_api.h" +#include "benchmark/benchmark.h" #include "GenerateInput.hpp" constexpr std::size_t TestNumInputs = 1024; @@ -59,4 +59,4 @@ BENCHMARK_CAPTURE(BM_Sort, single_element_strings, getDuplicateStringInputs)->Arg(TestNumInputs); -BENCHMARK_MAIN() +BENCHMARK_MAIN(); diff --git a/benchmarks/filesystem.bench.cpp b/benchmarks/filesystem.bench.cpp index f7949a163a7f1..3e4956059151a 100644 --- a/benchmarks/filesystem.bench.cpp +++ b/benchmarks/filesystem.bench.cpp @@ -1,17 +1,14 @@ -#include - -#include "benchmark/benchmark_api.h" +#include "benchmark/benchmark.h" #include "GenerateInput.hpp" #include "test_iterators.h" - -namespace fs = std::experimental::filesystem; +#include "filesystem_include.hpp" static const size_t TestNumInputs = 1024; template void BM_PathConstructString(benchmark::State &st, GenInputs gen) { - using namespace fs; + using fs::path; const auto in = gen(st.range(0)); path PP; for (auto& Part : in) @@ -21,14 +18,15 @@ void BM_PathConstructString(benchmark::State &st, GenInputs gen) { const path P(PP.native()); benchmark::DoNotOptimize(P.native().data()); } + st.SetComplexityN(st.range(0)); } BENCHMARK_CAPTURE(BM_PathConstructString, large_string, - getRandomStringInputs)->Arg(TestNumInputs); + getRandomStringInputs)->Range(8, TestNumInputs)->Complexity(); template void BM_PathConstructCStr(benchmark::State &st, GenInputs gen) { - using namespace fs; + using fs::path; const auto in = gen(st.range(0)); path PP; for (auto& Part : in) @@ -45,7 +43,7 @@ BENCHMARK_CAPTURE(BM_PathConstructCStr, large_string, template