Date: Mon, 18 Dec 2017 20:12:09 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r326945 - in vendor/libc++/dist: . cmake/Modules docs fuzzing include include/experimental include/support/win32 lib lib/abi lib/abi/5.0 src src/experimental/filesystem src/include src/... Message-ID: <201712182012.vBIKC9j0085451@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Mon Dec 18 20:12:08 2017 New Revision: 326945 URL: https://svnweb.freebsd.org/changeset/base/326945 Log: Vendor import of libc++ trunk r321017: https://llvm.org/svn/llvm-project/libcxx/trunk@321017 Added: vendor/libc++/dist/fuzzing/ vendor/libc++/dist/fuzzing/RoutineNames.txt (contents, props changed) vendor/libc++/dist/fuzzing/fuzzing.cpp (contents, props changed) vendor/libc++/dist/fuzzing/fuzzing.h (contents, props changed) vendor/libc++/dist/test/libcxx/diagnostics/nodiscard.fail.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/diagnostics/nodiscard.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/ vendor/libc++/dist/test/libcxx/fuzzing/nth_element.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/partial_sort.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/partial_sort_copy.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/partition.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/partition_copy.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/regex_ECMAScript.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/regex_POSIX.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/regex_awk.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/regex_egrep.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/regex_extended.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/regex_grep.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/sort.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/stable_partition.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/stable_sort.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/unique.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/fuzzing/unique_copy.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/language.support/cxa_deleted_virtual.pass.cpp (contents, props changed) vendor/libc++/dist/test/libcxx/utilities/variant/variant.variant/variant_size.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union_move.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/map/map.access/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/multimap/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/multiset/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/associative/set/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/priqueue.members/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.defn/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.defn/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/array/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/array/empty.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/array/max_size.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/deque/deque.capacity/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/deque/deque.capacity/empty.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/deque/deque.capacity/size.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/forwardlist/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/forwardlist/empty.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/list/list.capacity/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/list/list.capacity/empty.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/list/list.capacity/size.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/vector.bool/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/vector.bool/empty.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/vector.bool/size.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/vector/vector.capacity/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/vector/vector.capacity/empty.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/sequences/vector/vector.capacity/size.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/empty.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.map/size.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multimap/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multimap/empty.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multimap/size.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multiset/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multiset/empty.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.multiset/size.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.set/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.set/empty.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/containers/unord/unord.set/size.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.overview/types.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcondition/syserr.errcondition.overview/types.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.decompose/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/input.output/stream.buffers/streambuf/streambuf.protected/streambuf.put.area/pbump2gig.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/iterators/iterator.container/empty.array.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/iterators/iterator.container/empty.container.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/iterators/iterator.container/empty.initializer_list.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/iterators/iterator.primitives/iterator.traits/const_volatile_pointer.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/iterators/iterator.primitives/iterator.traits/volatile_pointer.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.placement/new_array_ptr.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.placement/new_ptr.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_nothrow.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.dynamic/ptr.launder/ vendor/libc++/dist/test/std/language.support/support.dynamic/ptr.launder/launder.nodiscard.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.dynamic/ptr.launder/launder.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/language.support/support.dynamic/ptr.launder/launder.types.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/re/re.alg/re.alg.match/exponential.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/re/re.alg/re.alg.search/exponential.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/re/re.alg/re.alg.search/invert_neg_word_search.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/re/re.grammar/excessive_brace_count.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/re/re.results/re.results.size/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/string.capacity/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/string.cons/string_view_assignment.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/string.ends_with/ vendor/libc++/dist/test/std/strings/basic.string/string.ends_with/ends_with.char.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/string.ends_with/ends_with.ptr.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/string.ends_with/ends_with.string_view.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/string_view.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_string_view.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_view.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/string.starts_with/ vendor/libc++/dist/test/std/strings/basic.string/string.starts_with/starts_with.char.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/string.starts_with/starts_with.ptr.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/basic.string/string.starts_with/starts_with.string_view.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/string.view/string.view.capacity/empty.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/string.view/string.view.template/ends_with.char.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/string.view/string.view.template/ends_with.ptr.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/string.view/string.view.template/ends_with.string_view.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/string.view/string.view.template/starts_with.char.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/string.view/string.view.template/starts_with.ptr.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/strings/string.view/string.view.template/starts_with.string_view.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/futures/futures.async/async.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/allocator.adaptor/allocator.adaptor.members/allocate_size_hint.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.members/allocate.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.members/incomplete_type_helper.h (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/default.allocator/allocator.members/allocate.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/pointer.conversion/ vendor/libc++/dist/test/std/utilities/memory/pointer.conversion/to_address.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.special/io.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.special/io.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.private.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.protected.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_invocable.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_nothrow_invocable.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/aligned_union.fail.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/remove_cvref.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp (contents, props changed) Deleted: vendor/libc++/dist/lib/abi/5.0/ vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcode/syserr.errcode.overview/nothing_to_do.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcondition/syserr.errcondition.overview/nothing_to_do.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_callable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_nothrow_callable.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.nullopt/not_brace_initializable.fail.cpp Modified: vendor/libc++/dist/.arcconfig vendor/libc++/dist/CMakeLists.txt vendor/libc++/dist/CREDITS.TXT vendor/libc++/dist/appveyor-reqs-install.cmd vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake vendor/libc++/dist/docs/BuildingLibcxx.rst vendor/libc++/dist/docs/TestingLibcxx.rst vendor/libc++/dist/docs/UsingLibcxx.rst vendor/libc++/dist/docs/conf.py vendor/libc++/dist/include/CMakeLists.txt vendor/libc++/dist/include/__config vendor/libc++/dist/include/__config_site.in vendor/libc++/dist/include/__libcpp_version vendor/libc++/dist/include/__locale vendor/libc++/dist/include/__tree vendor/libc++/dist/include/algorithm vendor/libc++/dist/include/array vendor/libc++/dist/include/bitset vendor/libc++/dist/include/chrono vendor/libc++/dist/include/cstddef vendor/libc++/dist/include/deque vendor/libc++/dist/include/exception vendor/libc++/dist/include/experimental/algorithm vendor/libc++/dist/include/experimental/filesystem vendor/libc++/dist/include/experimental/iterator vendor/libc++/dist/include/forward_list vendor/libc++/dist/include/fstream vendor/libc++/dist/include/future vendor/libc++/dist/include/istream vendor/libc++/dist/include/iterator vendor/libc++/dist/include/list vendor/libc++/dist/include/locale vendor/libc++/dist/include/map vendor/libc++/dist/include/memory vendor/libc++/dist/include/new vendor/libc++/dist/include/optional vendor/libc++/dist/include/ostream vendor/libc++/dist/include/queue vendor/libc++/dist/include/random vendor/libc++/dist/include/regex vendor/libc++/dist/include/scoped_allocator vendor/libc++/dist/include/set vendor/libc++/dist/include/sstream vendor/libc++/dist/include/stack vendor/libc++/dist/include/streambuf vendor/libc++/dist/include/string vendor/libc++/dist/include/string_view vendor/libc++/dist/include/support/win32/locale_win32.h vendor/libc++/dist/include/system_error vendor/libc++/dist/include/tuple vendor/libc++/dist/include/type_traits vendor/libc++/dist/include/typeinfo vendor/libc++/dist/include/unordered_map vendor/libc++/dist/include/unordered_set vendor/libc++/dist/include/utility vendor/libc++/dist/include/variant vendor/libc++/dist/include/vector vendor/libc++/dist/include/wchar.h vendor/libc++/dist/lib/CMakeLists.txt vendor/libc++/dist/lib/abi/CHANGELOG.TXT vendor/libc++/dist/lib/abi/x86_64-apple-darwin16.abilist vendor/libc++/dist/lib/libc++abi.exp vendor/libc++/dist/lib/libc++abi2.exp vendor/libc++/dist/lib/libc++sjlj-abi.exp vendor/libc++/dist/src/exception.cpp vendor/libc++/dist/src/experimental/filesystem/directory_iterator.cpp vendor/libc++/dist/src/experimental/filesystem/operations.cpp vendor/libc++/dist/src/include/atomic_support.h vendor/libc++/dist/src/include/config_elast.h vendor/libc++/dist/src/include/refstring.h vendor/libc++/dist/src/iostream.cpp vendor/libc++/dist/src/locale.cpp vendor/libc++/dist/src/new.cpp vendor/libc++/dist/src/random.cpp vendor/libc++/dist/src/strstream.cpp vendor/libc++/dist/src/support/runtime/exception_fallback.ipp vendor/libc++/dist/src/support/runtime/exception_msvc.ipp vendor/libc++/dist/src/support/runtime/exception_pointer_msvc.ipp vendor/libc++/dist/src/support/runtime/new_handler_fallback.ipp vendor/libc++/dist/src/support/win32/locale_win32.cpp vendor/libc++/dist/src/system_error.cpp vendor/libc++/dist/src/typeinfo.cpp vendor/libc++/dist/test/CMakeLists.txt vendor/libc++/dist/test/libcxx/algorithms/debug_less.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/insert_iter_rvalue_db1.pass.cpp vendor/libc++/dist/test/libcxx/containers/unord/next_pow2.pass.cpp vendor/libc++/dist/test/libcxx/depr/depr.c.headers/complex.h.pass.cpp vendor/libc++/dist/test/libcxx/depr/depr.c.headers/tgmath_h.pass.cpp vendor/libc++/dist/test/libcxx/depr/depr.function.objects/depr.adaptors.cxx1z.pass.cpp vendor/libc++/dist/test/libcxx/experimental/filesystem/class.path/path.itr/iterator_db.pass.cpp vendor/libc++/dist/test/libcxx/experimental/filesystem/class.path/path.itr/reverse_iterator_produces_diagnostic.fail.cpp vendor/libc++/dist/test/libcxx/iterators/trivial_iterators.pass.cpp vendor/libc++/dist/test/libcxx/numerics/complex.number/ccmplx/ccomplex.pass.cpp vendor/libc++/dist/test/libcxx/selftest/test_macros.pass.cpp vendor/libc++/dist/test/libcxx/strings/iterators.noexcept.pass.cpp vendor/libc++/dist/test/libcxx/thread/thread.condition/PR30202_notify_from_pthread_created_thread.pass.cpp vendor/libc++/dist/test/libcxx/type_traits/lazy_metafunctions.pass.cpp vendor/libc++/dist/test/libcxx/utilities/function.objects/func.require/bullet_4_5_6.pass.cpp vendor/libc++/dist/test/libcxx/utilities/memory/util.smartptr/util.smartptr.shared/function_type_default_deleter.fail.cpp vendor/libc++/dist/test/libcxx/utilities/tuple/tuple.tuple/diagnose_reference_binding.fail.cpp vendor/libc++/dist/test/libcxx/utilities/tuple/tuple.tuple/diagnose_reference_binding.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.generate/generate_n.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.count/count_if.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.find/find_if.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.find/find_if_not.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.search/search_n_pred.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/mismatch/mismatch.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/mismatch/mismatch_pred.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.clamp/clamp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.merge/inplace_merge.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.merge/inplace_merge_comp.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/min_element_comp.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.generic/integral.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_helpers.h vendor/libc++/dist/test/std/containers/Emplaceable.h vendor/libc++/dist/test/std/containers/NotConstructible.h vendor/libc++/dist/test/std/containers/associative/map/map.access/at.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.cons/compare_copy_constructible.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/count0.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/count1.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/count2.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/count3.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/equal_range0.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/equal_range1.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/equal_range2.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/equal_range3.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/find0.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/find1.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/find2.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/find3.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/lower_bound0.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/lower_bound1.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/lower_bound2.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/lower_bound3.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/upper_bound0.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/upper_bound1.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/upper_bound2.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.ops/upper_bound3.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/compare_copy_constructible.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/count0.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/count1.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/count2.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/count3.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/equal_range0.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/equal_range1.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/equal_range2.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/equal_range3.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/find0.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/find1.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/find2.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/find3.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/lower_bound0.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/lower_bound1.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/lower_bound2.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/lower_bound3.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/upper_bound0.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/upper_bound1.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/upper_bound2.fail.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.ops/upper_bound3.fail.cpp vendor/libc++/dist/test/std/containers/associative/multiset/equal_range.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.cons/compare_copy_constructible.fail.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/compare.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.cons/compare_copy_constructible.fail.cpp vendor/libc++/dist/test/std/containers/container.adaptors/priority.queue/types.fail.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.defn/types.fail.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.defn/types.fail.cpp vendor/libc++/dist/test/std/containers/sequences/array/at.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/front_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/indexing.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_back_exception_safety.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_front_exception_safety.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/move_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/types.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/construct_default.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/reference.swap.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/construct_default.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.data/data.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.data/data_const.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/test_compare.h vendor/libc++/dist/test/std/containers/unord/unord.map/rehash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/compare_copy_constructible.fail.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/hash_copy_constructible.fail.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.elem/at.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_or_assign.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.swap/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/rehash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/compare_copy_constructible.fail.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/hash_copy_constructible.fail.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/rehash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/compare_copy_constructible.fail.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/hash_copy_constructible.fail.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/rehash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/compare_copy_constructible.fail.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/default.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/hash_copy_constructible.fail.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/complex.h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/tgmath_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/uchar_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun1.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun1_ref_t.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun1_t.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun_ref.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun_ref1.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun_ref_t.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/const_mem_fun_t.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun1.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun1_ref_t.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun1_t.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun_ref.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun_ref1.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun_ref_t.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.adaptors/depr.member.pointer.adaptors/mem_fun_t.cxx1z.fail.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.base/binary_function.pass.cpp vendor/libc++/dist/test/std/depr/depr.function.objects/depr.base/unary_function.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/is_error_code_enum.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/is_error_condition_enum.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp vendor/libc++/dist/test/std/experimental/algorithms/alg.search/search.pass.cpp vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/value_non_copyable_assign.fail.cpp vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/non_copyable_value.fail.cpp vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/reference_types.fail.cpp vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/ctor.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/directory_iterator.members/increment.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/class.path/path.member/path.decompose/path.decompose.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.copy/copy.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/hash.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/hash.pred.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/hash.pass.cpp vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/hash.pred.pass.cpp vendor/libc++/dist/test/std/experimental/iterator/ostream.joiner/ostream.joiner.cons/ostream_joiner.cons.pass.cpp vendor/libc++/dist/test/std/experimental/iterator/ostream.joiner/ostream.joiner.ops/ostream_joiner.op.assign.pass.cpp vendor/libc++/dist/test/std/experimental/language.support/support.coroutines/end.to.end/fullexpr-dtor.pass.cpp vendor/libc++/dist/test/std/experimental/memory/memory.resource/memory.resource.priv/protected_members.fail.cpp vendor/libc++/dist/test/std/experimental/numeric/numeric.ops/numeric.ops.lcm/lcm.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.syn/optional_includes_initializer_list.pass.cpp vendor/libc++/dist/test/std/experimental/string.view/string.view.cons/from_string1.fail.cpp vendor/libc++/dist/test/std/experimental/utilities/tuple/header.tuple.synop/includes.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/put_money.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/put_time.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.formatted/istream_extractors/streambuf.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/get_streambuf.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/get_streambuf_chart.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/getline_pointer_size.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/getline_pointer_size_chart.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/bool.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/double.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/float.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/int.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long_double.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/long_long.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/short.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_int.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_long.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_long_long.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/unsigned_short.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/CharT.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/CharT_pointer.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char_pointer.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char_to_wide.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/char_to_wide_pointer.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/signed_char.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/signed_char_pointer.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/unsigned_char.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.character/unsigned_char_pointer.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/basic_ios.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/ios_base.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/ostream.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters/streambuf.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.manip/endl.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.manip/ends.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.rvalue/CharT_pointer.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.unformatted/put.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.unformatted/write.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/quoted.manip/quoted_char.fail.cpp vendor/libc++/dist/test/std/input.output/iostream.format/quoted.manip/quoted_traits.fail.cpp vendor/libc++/dist/test/std/input.output/string.streams/stringbuf/stringbuf.cons/default.pass.cpp vendor/libc++/dist/test/std/input.output/string.streams/stringstream.cons/string.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.container/data.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.container/empty.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.container/size.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.primitives/iterator.operations/next.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.primitives/iterator.operations/prev.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.primitives/iterator.traits/empty.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.range/begin-end.fail.cpp vendor/libc++/dist/test/std/iterators/iterator.range/begin-end.pass.cpp vendor/libc++/dist/test/std/iterators/iterators.general/gcc_workaround.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/insert.iterators/insert.iterator/types.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.nonmember/make_move_iterator.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/default.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/default.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/iter.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.cons/reverse_iterator.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.make/make_reverse_iterator.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op!=/test.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op++/post.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op++/pre.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op+/difference_type.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op-/difference_type.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op.star/op_star.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op=/reverse_iterator.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.op==/test.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opdiff/test.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opgt/test.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.opgt=/test.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.oplt/test.pass.cpp vendor/libc++/dist/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.ops/reverse.iter.oplt=/test.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/default.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.ops/equal.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/istreambuf.iterator/istreambuf.iterator.cons/default.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/align_val_t.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/delete_align_val_t_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array11.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/delete_align_val_t_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_nothrow_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete11.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp vendor/libc++/dist/test/std/language.support/support.initlist/support.initlist.access/access.pass.cpp vendor/libc++/dist/test/std/language.support/support.initlist/support.initlist.range/begin_end.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/and.assign.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/and.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/lshift.assign.fail.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/lshift.assign.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/lshift.fail.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/lshift.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/not.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/or.assign.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/or.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/rshift.assign.fail.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/rshift.assign.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/rshift.fail.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/rshift.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/to_integer.fail.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/to_integer.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/xor.assign.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/xor.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/nullptr_t.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/ctype_base.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_fr_FR.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/curr_symbol.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.types/locale.category/category.pass.cpp vendor/libc++/dist/test/std/numerics/c.math/ctgmath.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/ccmplx/ccomplex.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/acos.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/acosh.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/asin.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/asinh.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/atanh.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/cos.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/cosh.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/sin.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/sinh.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.transcendentals/tanh.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/inclusive.scan/inclusive_scan.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/inclusive.scan/inclusive_scan_op.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/inclusive.scan/inclusive_scan_op_init.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/numeric.ops.lcm/lcm.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/reduce/reduce_init_op.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/transform.exclusive.scan/transform_exclusive_scan_init_bop_uop.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/transform.inclusive.scan/transform_inclusive_scan_bop_uop.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/transform.inclusive.scan/transform_inclusive_scan_bop_uop_init.pass.cpp vendor/libc++/dist/test/std/numerics/numeric.ops/transform.reduce/transform_reduce_iter_iter_init_bop_uop.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.disc/assign.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.disc/copy.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.disc/discard.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.ibits/assign.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.ibits/copy.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.ibits/discard.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.shuf/assign.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.shuf/copy.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.shuf/ctor_engine_copy.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.shuf/ctor_engine_move.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.shuf/discard.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.device/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.lognormal/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.t/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.extreme/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.pois/rand.dist.pois.gamma/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.dis/rand.dist.samp/rand.dist.samp.plinear/eval.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.lcong/discard.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.mers/assign.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.mers/copy.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.mers/discard.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.sub/assign.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.sub/copy.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.sub/discard.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/grep.pass.cpp vendor/libc++/dist/test/std/re/re.iter/re.regiter/re.regiter.incr/post.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.const/constants.pass.cpp vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/bad_backref.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.access/at.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/empty.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/copy_alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/move_alloc.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/move_assign_noexcept.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/string_view.fail.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/iterator.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/push_back.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/iterator.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.nonmembers/string.special/swap_noexcept.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_T_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_string.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_string_size_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_string_view.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_find.last.not.of/string_view_size.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char/lt.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.access/at.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.capacity/capacity.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.cons/default.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.cons/from_literal.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.cons/from_ptr_len.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.cons/from_string.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.cons/from_string1.fail.cpp vendor/libc++/dist/test/std/strings/string.view/string_view.literals/literal.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.async/async_race.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.shared_future/wait_until.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.members/ctor_func_alloc.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.task/futures.task.nonmembers/uses_allocator.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock.algorithm/try_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock_for.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock_until.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/copy_assign.fail.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/move_assign.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.cons/mutex.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock_for.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock_until.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/default.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock_shared.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/try_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/try_lock_shared.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/default.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock_shared.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_for.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_for.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_until.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_until.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_until_deadlock_bug.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.once/thread.once.onceflag/default.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.this/sleep_until.pass.cpp vendor/libc++/dist/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct_type.pass.cpp vendor/libc++/dist/test/std/utilities/allocator.adaptor/allocator.adaptor.types/is_always_equal.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.nonmembers/any.cast/any_cast_request_invalid_value_category.fail.cpp vendor/libc++/dist/test/std/utilities/any/any.nonmembers/any.cast/const_correctness.fail.cpp vendor/libc++/dist/test/std/utilities/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp vendor/libc++/dist/test/std/utilities/any/any.nonmembers/any.cast/reference_types.fail.cpp vendor/libc++/dist/test/std/utilities/any/any.nonmembers/make_any.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/arithmetic.operations/transparent.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bitwise.operations/transparent.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/comparisons/transparent.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.invoke/invoke_feature_test_macro.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.not_fn/not_fn.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.require/binary_function.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.require/unary_function.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/derive_from.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_F.fail.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_F.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/alloc_function.fail.cpp vendor/libc++/dist/test/std/utilities/function.objects/logical.operations/transparent.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/refwrap/refwrap.access/conversion.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/refwrap/refwrap.assign/copy_assign.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/refwrap/refwrap.const/copy_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/refwrap/refwrap.const/type_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/refwrap/weak_result.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/unord.hash/non_enum.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/unord.hash/pointer.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.members/allocate.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.members/allocate_hint.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.members/construct.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.members/deallocate.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.members/destroy.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.members/max_size.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.members/select_on_container_copy_construction.pass.cpp vendor/libc++/dist/test/std/utilities/memory/allocator.traits/allocator.traits.types/is_always_equal.pass.cpp vendor/libc++/dist/test/std/utilities/memory/default.allocator/allocator.members/allocate.size.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/specialized.addressof/addressof.temp.fail.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.value/uninitialized_value_construct_n.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move.pass.cpp vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.move/uninitialized_move_n.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.enab/enable_shared_from_this.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.ownerless/owner_less.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.obs/owner_before_shared_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.weak.obs/owner_before_weak_ptr.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/decay.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/result_of.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/result_of11.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_function.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_fundamental.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_assignable.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.nullopt/nullopt_t.fail.cpp vendor/libc++/dist/test/std/utilities/optional/optional.nullopt/nullopt_t.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/copy.fail.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/move.fail.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.observe/value.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.observe/value_const.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.observe/value_const_rvalue.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.observe/value_rvalue.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional_requires_destructible_object.fail.cpp vendor/libc++/dist/test/std/utilities/optional/optional.syn/optional_includes_initializer_list.pass.cpp vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.ctor/move_convert.single.pass.cpp vendor/libc++/dist/test/std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.observers/dereference.runtime.fail.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/to_ullong.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/to_ulong.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.system/consistency.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.arithmetic/op_++.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.arithmetic/op_++int.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.arithmetic/op_+=.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.general/ignore.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.general/tuple.smartptr.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/UTypes.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/alloc.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/implicit_deduction_guides.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type.fail.cpp vendor/libc++/dist/test/std/utilities/utility/as_const/as_const.fail.cpp vendor/libc++/dist/test/std/utilities/utility/as_const/as_const.pass.cpp vendor/libc++/dist/test/std/utilities/utility/forward/forward.fail.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pair.astuple/tuple_element.fail.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp vendor/libc++/dist/test/std/utilities/utility/synopsis.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.get/get_index.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.get/get_type.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.helpers/variant_alternative.fail.cpp vendor/libc++/dist/test/std/utilities/variant/variant.visit/visit.pass.cpp vendor/libc++/dist/test/support/any_helpers.h vendor/libc++/dist/test/support/container_test_types.h vendor/libc++/dist/test/support/counting_predicates.hpp vendor/libc++/dist/test/support/emplace_constructible.h vendor/libc++/dist/test/support/experimental_any_helpers.h vendor/libc++/dist/test/support/msvc_stdlib_force_include.hpp vendor/libc++/dist/test/support/nasty_containers.hpp vendor/libc++/dist/test/support/nasty_macros.hpp vendor/libc++/dist/test/support/platform_support.h vendor/libc++/dist/test/support/test_convertible.hpp vendor/libc++/dist/test/support/test_macros.h vendor/libc++/dist/utils/libcxx/compiler.py vendor/libc++/dist/utils/libcxx/test/config.py vendor/libc++/dist/utils/libcxx/test/target_info.py vendor/libc++/dist/utils/merge_archives.py vendor/libc++/dist/www/atomic_design.html vendor/libc++/dist/www/atomic_design_a.html vendor/libc++/dist/www/atomic_design_b.html vendor/libc++/dist/www/atomic_design_c.html vendor/libc++/dist/www/cxx1y_status.html vendor/libc++/dist/www/cxx1z_status.html vendor/libc++/dist/www/cxx2a_status.html vendor/libc++/dist/www/index.html vendor/libc++/dist/www/ts1z_status.html vendor/libc++/dist/www/type_traits_design.html vendor/libc++/dist/www/upcoming_meeting.html Modified: vendor/libc++/dist/.arcconfig ============================================================================== --- vendor/libc++/dist/.arcconfig Mon Dec 18 20:12:01 2017 (r326944) +++ vendor/libc++/dist/.arcconfig Mon Dec 18 20:12:08 2017 (r326945) @@ -1,4 +1,4 @@ { - "project_id" : "libcxx", + "repository.callsign" : "CXX", "conduit_uri" : "https://reviews.llvm.org/" } Modified: vendor/libc++/dist/CMakeLists.txt ============================================================================== --- vendor/libc++/dist/CMakeLists.txt Mon Dec 18 20:12:01 2017 (r326944) +++ vendor/libc++/dist/CMakeLists.txt Mon Dec 18 20:12:08 2017 (r326945) @@ -23,7 +23,7 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR project(libcxx CXX C) set(PACKAGE_NAME libcxx) - set(PACKAGE_VERSION 5.0.0) + set(PACKAGE_VERSION 6.0.0svn) set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") set(PACKAGE_BUGREPORT "llvm-bugs@lists.llvm.org") @@ -99,6 +99,9 @@ cmake_dependent_option(LIBCXX_INSTALL_EXPERIMENTAL_LIB "LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY;LIBCXX_INSTALL_LIBRARY" OFF) set(LIBCXX_ABI_VERSION 1 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.") +set(LIBCXX_ABI_DEFINES "" CACHE STRING "A semicolon separated list of ABI macros to define in the site config header.") option(LIBCXX_USE_COMPILER_RT "Use compiler-rt instead of libgcc" OFF) if (NOT LIBCXX_ENABLE_SHARED AND NOT LIBCXX_ENABLE_STATIC) @@ -337,6 +340,10 @@ if (LIBCXX_HAS_MUSL_LIBC AND NOT LIBCXX_INSTALL_SUPPOR "when building for Musl with LIBCXX_HAS_MUSL_LIBC.") endif() +if (LIBCXX_ABI_FORCE_ITANIUM AND LIBCXX_ABI_FORCE_MICROSOFT) + message(FATAL_ERROR "Only one of LIBCXX_ABI_FORCE_ITANIUM and LIBCXX_ABI_FORCE_MICROSOFT can be specified.") +endif () + #=============================================================================== # Configure System #=============================================================================== @@ -594,6 +601,8 @@ if (NOT LIBCXX_ABI_VERSION EQUAL "1") config_define(${LIBCXX_ABI_VERSION} _LIBCPP_ABI_VERSION) endif() config_define_if(LIBCXX_ABI_UNSTABLE _LIBCPP_ABI_UNSTABLE) +config_define_if(LIBCXX_ABI_FORCE_ITANIUM _LIBCPP_ABI_FORCE_ITANIUM) +config_define_if(LIBCXX_ABI_FORCE_MICROSOFT _LIBCPP_ABI_FORCE_MICROSOFT) config_define_if_not(LIBCXX_ENABLE_GLOBAL_FILESYSTEM_NAMESPACE _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE) config_define_if_not(LIBCXX_ENABLE_STDIN _LIBCPP_HAS_NO_STDIN) @@ -606,7 +615,20 @@ config_define_if(LIBCXX_HAS_PTHREAD_API _LIBCPP_HAS_TH config_define_if(LIBCXX_HAS_EXTERNAL_THREAD_API _LIBCPP_HAS_THREAD_API_EXTERNAL) 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) +if (LIBCXX_ABI_DEFINES) + set(abi_defines) + foreach (abi_define ${LIBCXX_ABI_DEFINES}) + if (NOT abi_define MATCHES "^_LIBCPP_ABI_") + message(SEND_ERROR "Invalid ABI macro ${abi_define} in LIBCXX_ABI_DEFINES") + endif() + list(APPEND abi_defines "#define ${abi_define}") + endforeach() + string(REPLACE ";" "\n" abi_defines "${abi_defines}") + config_define(${abi_defines} _LIBCPP_ABI_DEFINES) +endif() + # By default libc++ on Windows expects to use a shared library, which requires # the headers to use DLL import/export semantics. However when building a # static library only we modify the headers to disable DLL import/export. @@ -615,9 +637,10 @@ if (DEFINED WIN32 AND LIBCXX_ENABLE_STATIC AND NOT LIB config_define(ON _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) endif() +set(site_config_path "${LIBCXX_BINARY_DIR}/__config_site") if (LIBCXX_NEEDS_SITE_CONFIG) configure_file("include/__config_site.in" - "${LIBCXX_BINARY_DIR}/__config_site" + "${site_config_path}" @ONLY) # Provide the config definitions by included the generated __config_site @@ -627,6 +650,11 @@ if (LIBCXX_NEEDS_SITE_CONFIG) else() add_compile_flags("-include ${LIBCXX_BINARY_DIR}/__config_site") endif() +else() + if (EXISTS "${site_config_path}") + message(STATUS "Removing stale site configuration ${site_config_path}") + file(REMOVE "${site_config_path}") + endif() endif() #=============================================================================== @@ -647,11 +675,22 @@ endif() # # However, since some submission systems strip test/ subdirectories, check for # it before adding it. + if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/test") add_subdirectory(test) endif() if (LIBCXX_INCLUDE_TESTS) add_subdirectory(lib/abi) +endif() + +if (LIBCXX_STANDALONE_BUILD AND EXISTS "${LLVM_MAIN_SRC_DIR}/utils/llvm-lit") + include(AddLLVM) # for get_llvm_lit_path + # Make sure the llvm-lit script is generated into the bin directory, and do + # it after adding all tests, since the generated script will only work + # correctly discovered tests against test locations from the source tree that + # have already been discovered. + add_subdirectory(${LLVM_MAIN_SRC_DIR}/utils/llvm-lit + ${CMAKE_CURRENT_BINARY_DIR}/llvm-lit) endif() if (LIBCXX_INCLUDE_DOCS) Modified: vendor/libc++/dist/CREDITS.TXT ============================================================================== --- vendor/libc++/dist/CREDITS.TXT Mon Dec 18 20:12:01 2017 (r326944) +++ vendor/libc++/dist/CREDITS.TXT Mon Dec 18 20:12:08 2017 (r326945) @@ -41,6 +41,10 @@ N: Jonathan B Coe E: jbcoe@me.com D: Implementation of propagate_const. +N: Glen Joseph Fernandes +E: glenjofe@gmail.com +D: Implementation of to_address. + N: Eric Fiselier E: eric@efcs.ca D: LFTS support, patches and bug fixes. Modified: vendor/libc++/dist/appveyor-reqs-install.cmd ============================================================================== --- vendor/libc++/dist/appveyor-reqs-install.cmd Mon Dec 18 20:12:01 2017 (r326944) +++ vendor/libc++/dist/appveyor-reqs-install.cmd Mon Dec 18 20:12:08 2017 (r326945) @@ -9,7 +9,7 @@ cd C:\projects\deps :: Setup Compiler ::########################################################################### if NOT EXIST llvm-installer.exe ( - appveyor DownloadFile http://llvm.org/pre-releases/win-snapshots/LLVM-5.0.0-r303050-win32.exe -FileName llvm-installer.exe + appveyor DownloadFile http://prereleases.llvm.org/win-snapshots/LLVM-6.0.0-r316086-win32.exe -FileName llvm-installer.exe ) if "%CLANG_VERSION%"=="ToT" ( START /WAIT llvm-installer.exe /S /D=C:\"Program Files\LLVM" Modified: vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake ============================================================================== --- vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake Mon Dec 18 20:12:01 2017 (r326944) +++ vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake Mon Dec 18 20:12:08 2017 (r326945) @@ -56,7 +56,7 @@ macro(setup_abi_lib abidefines abilib abifiles abidirs if (LIBCXX_INSTALL_HEADERS) install(FILES "${LIBCXX_BINARY_INCLUDE_DIR}/${fpath}" DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1/${dstdir} - COMPONENT libcxx + COMPONENT cxx-headers PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) endif() Modified: vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake ============================================================================== --- vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake Mon Dec 18 20:12:01 2017 (r326944) +++ vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake Mon Dec 18 20:12:08 2017 (r326945) @@ -106,14 +106,22 @@ macro(configure_out_of_tree_llvm) set(LLVM_ENABLE_SPHINX OFF) endif() - # Required LIT Configuration ------------------------------------------------ - # Define the default arguments to use with 'lit', and an option for the user - # to override. - set(LIT_ARGS_DEFAULT "-sv --show-xfail --show-unsupported") - if (MSVC OR XCODE) - set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar") + # In a standalone build, we don't have llvm to automatically generate the + # llvm-lit script for us. So we need to provide an explicit directory that + # the configurator should write the script into. + set(LLVM_LIT_OUTPUT_DIR "${libcxx_BINARY_DIR}/bin") + + if (LLVM_INCLUDE_TESTS) + # Required LIT Configuration ------------------------------------------------ + # Define the default arguments to use with 'lit', and an option for the user + # to override. + set(LLVM_EXTERNAL_LIT "${LLVM_MAIN_SRC_DIR}/utils/lit/lit.py") + set(LIT_ARGS_DEFAULT "-sv --show-xfail --show-unsupported") + if (MSVC OR XCODE) + set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar") + endif() + set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit") endif() - set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit") # Required doc configuration if (LLVM_ENABLE_SPHINX) Modified: vendor/libc++/dist/docs/BuildingLibcxx.rst ============================================================================== --- vendor/libc++/dist/docs/BuildingLibcxx.rst Mon Dec 18 20:12:01 2017 (r326944) +++ vendor/libc++/dist/docs/BuildingLibcxx.rst Mon Dec 18 20:12:08 2017 (r326945) @@ -130,7 +130,7 @@ just specify a toolset. -DCMAKE_SYSTEM_NAME=Windows ^ -DCMAKE_C_COMPILER=clang-cl ^ -DCMAKE_C_FLAGS="-fms-compatibility-version=19.00 --target=i686--windows" ^ - -DCMAKE_CXX_COMPILER=clang-c ^ + -DCMAKE_CXX_COMPILER=clang-cl ^ -DCMAKE_CXX_FLAGS="-fms-compatibility-version=19.00 --target=i686--windows" ^ -DLLVM_PATH=/path/to/llvm/tree ^ -DLIBCXX_ENABLE_SHARED=YES ^ @@ -346,6 +346,13 @@ The following options allow building libc++ for a diff Build the "unstable" ABI version of libc++. Includes all ABI changing features on top of the current stable version. + +.. option:: LIBCXX_ABI_DEFINES:STRING + + **Default**: ``""`` + + A semicolon-separated list of ABI macros to persist in the site config header. + See ``include/__config`` for the list of ABI macros. .. _LLVM-specific variables: Modified: vendor/libc++/dist/docs/TestingLibcxx.rst ============================================================================== --- vendor/libc++/dist/docs/TestingLibcxx.rst Mon Dec 18 20:12:01 2017 (r326944) +++ vendor/libc++/dist/docs/TestingLibcxx.rst Mon Dec 18 20:12:08 2017 (r326945) @@ -112,7 +112,7 @@ configuration. Passing the option on the command line .. option:: std=<standard version> - **Values**: c++98, c++03, c++11, c++14, c++1z + **Values**: c++98, c++03, c++11, c++14, c++17, c++2a Change the standard version used when building the tests. Modified: vendor/libc++/dist/docs/UsingLibcxx.rst ============================================================================== --- vendor/libc++/dist/docs/UsingLibcxx.rst Mon Dec 18 20:12:01 2017 (r326944) +++ vendor/libc++/dist/docs/UsingLibcxx.rst Mon Dec 18 20:12:08 2017 (r326945) @@ -185,6 +185,26 @@ thread safety annotations. * Giving `set`, `map`, `multiset`, `multimap` a comparator which is not const callable. +**_LIBCPP_NO_VCRUNTIME**: + Microsoft's C and C++ headers are fairly entangled, and some of their C++ + headers are fairly hard to avoid. In particular, `vcruntime_new.h` gets pulled + in from a lot of other headers and provides definitions which clash with + libc++ headers, such as `nothrow_t` (note that `nothrow_t` is a struct, so + there's no way for libc++ to provide a compatible definition, since you can't + have multiple definitions). + + By default, libc++ solves this problem by deferring to Microsoft's vcruntime + headers where needed. However, it may be undesirable to depend on vcruntime + headers, since they may not always be available in cross-compilation setups, + or they may clash with other headers. The `_LIBCPP_NO_VCRUNTIME` macro + prevents libc++ from depending on vcruntime headers. Consequently, it also + prevents libc++ headers from being interoperable with vcruntime headers (from + the aforementioned clashes), so users of this macro are promising to not + attempt to combine libc++ headers with the problematic vcruntime headers. This + macro also currently prevents certain `operator new`/`operator delete` + replacement scenarios from working, e.g. replacing `operator new` and + expecting a non-replaced `operator new[]` to call the replaced `operator new`. + C++17 Specific Configuration Macros ----------------------------------- **_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES**: Modified: vendor/libc++/dist/docs/conf.py ============================================================================== --- vendor/libc++/dist/docs/conf.py Mon Dec 18 20:12:01 2017 (r326944) +++ vendor/libc++/dist/docs/conf.py Mon Dec 18 20:12:08 2017 (r326945) @@ -47,9 +47,9 @@ copyright = u'2011-2017, LLVM Project' # built documents. # # The short X.Y version. -version = '5.0' +version = '6.0' # The full version, including alpha/beta/rc tags. -release = '5.0' +release = '6.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. Added: vendor/libc++/dist/fuzzing/RoutineNames.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/fuzzing/RoutineNames.txt Mon Dec 18 20:12:08 2017 (r326945) @@ -0,0 +1,20 @@ +sort +stable_sort +partition +partition_copy +stable_partition +unique +unique_copy +nth_element +partial_sort +partial_sort_copy +make_heap +push_heap +pop_heap +regex_ECMAScript +regex_POSIX +regex_extended +regex_awk +regex_grep +regex_egrep +search Added: vendor/libc++/dist/fuzzing/fuzzing.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/fuzzing/fuzzing.cpp Mon Dec 18 20:12:08 2017 (r326945) @@ -0,0 +1,551 @@ +// -*- C++ -*- +//===------------------------- fuzzing.cpp -------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// A set of routines to use when fuzzing the algorithms in libc++ +// Each one tests a single algorithm. +// +// They all have the form of: +// int `algorithm`(const uint8_t *data, size_t size); +// +// They perform the operation, and then check to see if the results are correct. +// If so, they return zero, and non-zero otherwise. +// +// For example, sort calls std::sort, then checks two things: +// (1) The resulting vector is sorted +// (2) The resulting vector contains the same elements as the original data. + + + +#include "fuzzing.h" +#include <vector> +#include <algorithm> +#include <functional> +#include <regex> +#include <cassert> + +#include <iostream> + +// If we had C++14, we could use the four iterator version of is_permutation and equal + +namespace fuzzing { + +// This is a struct we can use to test the stable_XXX algorithms. +// perform the operation on the key, then check the order of the payload. + +struct stable_test { + uint8_t key; + size_t payload; + + stable_test(uint8_t k) : key(k), payload(0) {} + stable_test(uint8_t k, size_t p) : key(k), payload(p) {} + }; + +void swap(stable_test &lhs, stable_test &rhs) +{ + using std::swap; + swap(lhs.key, rhs.key); + swap(lhs.payload, rhs.payload); +} + +struct key_less +{ + bool operator () (const stable_test &lhs, const stable_test &rhs) const + { + return lhs.key < rhs.key; + } +}; + +struct payload_less +{ + bool operator () (const stable_test &lhs, const stable_test &rhs) const + { + return lhs.payload < rhs.payload; + } +}; + +struct total_less +{ + bool operator () (const stable_test &lhs, const stable_test &rhs) const + { + return lhs.key == rhs.key ? lhs.payload < rhs.payload : lhs.key < rhs.key; + } +}; + +bool operator==(const stable_test &lhs, const stable_test &rhs) +{ + return lhs.key == rhs.key && lhs.payload == rhs.payload; +} + + +template<typename T> +struct is_even +{ + bool operator () (const T &t) const + { + return t % 2 == 0; + } +}; + + +template<> +struct is_even<stable_test> +{ + bool operator () (const stable_test &t) const + { + return t.key % 2 == 0; + } +}; + +typedef std::vector<uint8_t> Vec; +typedef std::vector<stable_test> StableVec; + +// == sort == +int sort(const uint8_t *data, size_t size) +{ + Vec working(data, data + size); + std::sort(working.begin(), working.end()); + + if (!std::is_sorted(working.begin(), working.end())) return 1; + if (!std::is_permutation(data, data + size, working.begin())) return 99; + return 0; +} + + +// == stable_sort == +int stable_sort(const uint8_t *data, size_t size) +{ + StableVec input; + for (size_t i = 0; i < size; ++i) + input.push_back(stable_test(data[i], i)); + StableVec working = input; + std::stable_sort(working.begin(), working.end(), key_less()); + + if (!std::is_sorted(working.begin(), working.end(), key_less())) return 1; + auto iter = working.begin(); + while (iter != working.end()) + { + auto range = std::equal_range(iter, working.end(), *iter, key_less()); + if (!std::is_sorted(range.first, range.second, total_less())) return 2; + iter = range.second; + } + if (!std::is_permutation(input.begin(), input.end(), working.begin())) return 99; + return 0; +} + +// == partition == +int partition(const uint8_t *data, size_t size) +{ + Vec working(data, data + size); + auto iter = std::partition(working.begin(), working.end(), is_even<uint8_t>()); + + if (!std::all_of (working.begin(), iter, is_even<uint8_t>())) return 1; + if (!std::none_of(iter, working.end(), is_even<uint8_t>())) return 2; + if (!std::is_permutation(data, data + size, working.begin())) return 99; + return 0; +} + + +// == partition_copy == +int partition_copy(const uint8_t *data, size_t size) +{ + Vec v1, v2; + auto iter = std::partition_copy(data, data + size, + std::back_inserter<Vec>(v1), std::back_inserter<Vec>(v2), + is_even<uint8_t>()); + +// The two vectors should add up to the original size + if (v1.size() + v2.size() != size) return 1; + +// All of the even values should be in the first vector, and none in the second + if (!std::all_of (v1.begin(), v1.end(), is_even<uint8_t>())) return 2; + if (!std::none_of(v2.begin(), v2.end(), is_even<uint8_t>())) return 3; + +// Every value in both vectors has to be in the original + for (auto v: v1) + if (std::find(data, data + size, v) == data + size) return 4; + + for (auto v: v2) + if (std::find(data, data + size, v) == data + size) return 5; + + return 0; +} + +// == stable_partition == +int stable_partition (const uint8_t *data, size_t size) +{ + StableVec input; + for (size_t i = 0; i < size; ++i) + input.push_back(stable_test(data[i], i)); + StableVec working = input; + auto iter = std::stable_partition(working.begin(), working.end(), is_even<stable_test>()); + + if (!std::all_of (working.begin(), iter, is_even<stable_test>())) return 1; + if (!std::none_of(iter, working.end(), is_even<stable_test>())) return 2; + if (!std::is_sorted(working.begin(), iter, payload_less())) return 3; + if (!std::is_sorted(iter, working.end(), payload_less())) return 4; + if (!std::is_permutation(input.begin(), input.end(), working.begin())) return 99; + return 0; +} + +// == nth_element == +// use the first element as a position into the data +int nth_element (const uint8_t *data, size_t size) +{ + if (size <= 1) return 0; + const size_t partition_point = data[0] % size; + Vec working(data + 1, data + size); + const auto partition_iter = working.begin() + partition_point; + std::nth_element(working.begin(), partition_iter, working.end()); + +// nth may be the end iterator, in this case nth_element has no effect. + if (partition_iter == working.end()) + { + if (!std::equal(data + 1, data + size, working.begin())) return 98; + } + else + { + const uint8_t nth = *partition_iter; + if (!std::all_of(working.begin(), partition_iter, [=](uint8_t v) { return v <= nth; })) + return 1; + if (!std::all_of(partition_iter, working.end(), [=](uint8_t v) { return v >= nth; })) + return 2; + if (!std::is_permutation(data + 1, data + size, working.begin())) return 99; + } + + return 0; +} + +// == partial_sort == +// use the first element as a position into the data +int partial_sort (const uint8_t *data, size_t size) +{ + if (size <= 1) return 0; + const size_t sort_point = data[0] % size; + Vec working(data + 1, data + size); + const auto sort_iter = working.begin() + sort_point; + std::partial_sort(working.begin(), sort_iter, working.end()); + + if (sort_iter != working.end()) + { + const uint8_t nth = *std::min_element(sort_iter, working.end()); + if (!std::all_of(working.begin(), sort_iter, [=](uint8_t v) { return v <= nth; })) + return 1; + if (!std::all_of(sort_iter, working.end(), [=](uint8_t v) { return v >= nth; })) + return 2; + } + if (!std::is_sorted(working.begin(), sort_iter)) return 3; + if (!std::is_permutation(data + 1, data + size, working.begin())) return 99; + + return 0; +} + + +// == partial_sort_copy == +// use the first element as a count +int partial_sort_copy (const uint8_t *data, size_t size) +{ + if (size <= 1) return 0; + const size_t num_results = data[0] % size; + Vec results(num_results); + (void) std::partial_sort_copy(data + 1, data + size, results.begin(), results.end()); + +// The results have to be sorted + if (!std::is_sorted(results.begin(), results.end())) return 1; +// All the values in results have to be in the original data + for (auto v: results) + if (std::find(data + 1, data + size, v) == data + size) return 2; + +// The things in results have to be the smallest N in the original data + Vec sorted(data + 1, data + size); + std::sort(sorted.begin(), sorted.end()); + if (!std::equal(results.begin(), results.end(), sorted.begin())) return 3; + return 0; +} + +// The second sequence has been "uniqued" +template <typename Iter1, typename Iter2> +static bool compare_unique(Iter1 first1, Iter1 last1, Iter2 first2, Iter2 last2) +{ + assert(first1 != last1 && first2 != last2); + if (*first1 != *first2) return false; + + uint8_t last_value = *first1; + ++first1; ++first2; + while(first1 != last1 && first2 != last2) + { + // Skip over dups in the first sequence + while (*first1 == last_value) + if (++first1 == last1) return false; + if (*first1 != *first2) return false; + last_value = *first1; + ++first1; ++first2; + } + +// Still stuff left in the 'uniqued' sequence - oops + if (first1 == last1 && first2 != last2) return false; + +// Still stuff left in the original sequence - better be all the same + while (first1 != last1) + { + if (*first1 != last_value) return false; + ++first1; + } + return true; +} + +// == unique == +int unique (const uint8_t *data, size_t size) +{ + Vec working(data, data + size); + std::sort(working.begin(), working.end()); + Vec results = working; + Vec::iterator new_end = std::unique(results.begin(), results.end()); + Vec::iterator it; // scratch iterator + +// Check the size of the unique'd sequence. +// it should only be zero if the input sequence was empty. + if (results.begin() == new_end) + return working.size() == 0 ? 0 : 1; + +// 'results' is sorted + if (!std::is_sorted(results.begin(), new_end)) return 2; + +// All the elements in 'results' must be different + it = results.begin(); + uint8_t prev_value = *it++; + for (; it != new_end; ++it) + { + if (*it == prev_value) return 3; + prev_value = *it; + } + +// Every element in 'results' must be in 'working' + for (it = results.begin(); it != new_end; ++it) + if (std::find(working.begin(), working.end(), *it) == working.end()) + return 4; + +// Every element in 'working' must be in 'results' + for (auto v : working) + if (std::find(results.begin(), new_end, v) == new_end) + return 5; + + return 0; +} + +// == unique_copy == +int unique_copy (const uint8_t *data, size_t size) +{ + Vec working(data, data + size); + std::sort(working.begin(), working.end()); + Vec results; + (void) std::unique_copy(working.begin(), working.end(), + std::back_inserter<Vec>(results)); + Vec::iterator it; // scratch iterator + +// Check the size of the unique'd sequence. +// it should only be zero if the input sequence was empty. + if (results.size() == 0) + return working.size() == 0 ? 0 : 1; + +// 'results' is sorted + if (!std::is_sorted(results.begin(), results.end())) return 2; + +// All the elements in 'results' must be different + it = results.begin(); + uint8_t prev_value = *it++; + for (; it != results.end(); ++it) + { + if (*it == prev_value) return 3; + prev_value = *it; + } + +// Every element in 'results' must be in 'working' + for (auto v : results) + if (std::find(working.begin(), working.end(), v) == working.end()) + return 4; + +// Every element in 'working' must be in 'results' + for (auto v : working) + if (std::find(results.begin(), results.end(), v) == results.end()) + return 5; + + return 0; +} + + +// -- regex fuzzers +static int regex_helper(const uint8_t *data, size_t size, std::regex::flag_type flag) +{ + if (size > 0) + { + try + { + std::string s((const char *)data, size); + std::regex re(s, flag); + return std::regex_match(s, re) ? 1 : 0; + } + catch (std::regex_error &ex) {} + } + return 0; +} + + +int regex_ECMAScript (const uint8_t *data, size_t size) +{ + (void) regex_helper(data, size, std::regex_constants::ECMAScript); + return 0; +} + +int regex_POSIX (const uint8_t *data, size_t size) +{ + (void) regex_helper(data, size, std::regex_constants::basic); + return 0; +} + +int regex_extended (const uint8_t *data, size_t size) +{ + (void) regex_helper(data, size, std::regex_constants::extended); + return 0; +} + +int regex_awk (const uint8_t *data, size_t size) +{ + (void) regex_helper(data, size, std::regex_constants::awk); + return 0; +} + +int regex_grep (const uint8_t *data, size_t size) +{ + (void) regex_helper(data, size, std::regex_constants::grep); + return 0; +} + +int regex_egrep (const uint8_t *data, size_t size) +{ + (void) regex_helper(data, size, std::regex_constants::egrep); + return 0; +} + +// -- heap fuzzers +int make_heap (const uint8_t *data, size_t size) +{ + Vec working(data, data + size); + std::make_heap(working.begin(), working.end()); + + if (!std::is_heap(working.begin(), working.end())) return 1; + if (!std::is_permutation(data, data + size, working.begin())) return 99; + return 0; +} + +int push_heap (const uint8_t *data, size_t size) +{ + if (size < 2) return 0; + +// Make a heap from the first half of the data + Vec working(data, data + size); + auto iter = working.begin() + (size / 2); + std::make_heap(working.begin(), iter); + if (!std::is_heap(working.begin(), iter)) return 1; + +// Now push the rest onto the heap, one at a time + ++iter; + for (; iter != working.end(); ++iter) { + std::push_heap(working.begin(), iter); + if (!std::is_heap(working.begin(), iter)) return 2; + } + + if (!std::is_permutation(data, data + size, working.begin())) return 99; + return 0; +} + +int pop_heap (const uint8_t *data, size_t size) +{ + if (size < 2) return 0; + Vec working(data, data + size); + std::make_heap(working.begin(), working.end()); + +// Pop things off, one at a time + auto iter = --working.end(); + while (iter != working.begin()) { + std::pop_heap(working.begin(), iter); + if (!std::is_heap(working.begin(), --iter)) return 2; + } + + return 0; +} + + +// -- search fuzzers +int search (const uint8_t *data, size_t size) +{ + if (size < 2) return 0; + + const size_t pat_size = data[0] * (size - 1) / std::numeric_limits<uint8_t>::max(); + assert(pat_size <= size - 1); + const uint8_t *pat_begin = data + 1; + const uint8_t *pat_end = pat_begin + pat_size; + const uint8_t *data_end = data + size; + assert(pat_end <= data_end); +// std::cerr << "data[0] = " << size_t(data[0]) << " "; +// std::cerr << "Pattern size = " << pat_size << "; corpus is " << size - 1 << std::endl; + auto it = std::search(pat_end, data_end, pat_begin, pat_end); + if (it != data_end) // not found + if (!std::equal(pat_begin, pat_end, it)) + return 1; + return 0; +} + +template <typename S> +static int search_helper (const uint8_t *data, size_t size) +{ + if (size < 2) return 0; + + const size_t pat_size = data[0] * (size - 1) / std::numeric_limits<uint8_t>::max(); + const uint8_t *pat_begin = data + 1; + const uint8_t *pat_end = pat_begin + pat_size; + const uint8_t *data_end = data + size; + + auto it = std::search(pat_end, data_end, S(pat_begin, pat_end)); + if (it != data_end) // not found + if (!std::equal(pat_begin, pat_end, it)) + return 1; + return 0; +} + +// These are still in std::experimental +// int search_boyer_moore (const uint8_t *data, size_t size) +// { +// return search_helper<std::boyer_moore_searcher<const uint8_t *>>(data, size); +// } +// +// int search_boyer_moore_horspool (const uint8_t *data, size_t size) +// { +// return search_helper<std::boyer_moore_horspool_searcher<const uint8_t *>>(data, size); +// } + + +// -- set operation fuzzers +template <typename S> +static void set_helper (const uint8_t *data, size_t size, Vec &v1, Vec &v2) +{ + assert(size > 1); + + const size_t pat_size = data[0] * (size - 1) / std::numeric_limits<uint8_t>::max(); + const uint8_t *pat_begin = data + 1; + const uint8_t *pat_end = pat_begin + pat_size; + const uint8_t *data_end = data + size; + v1.assign(pat_begin, pat_end); + v2.assign(pat_end, data_end); + + std::sort(v1.begin(), v1.end()); + std::sort(v2.begin(), v2.end()); +} + +} // namespace fuzzing Added: vendor/libc++/dist/fuzzing/fuzzing.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/fuzzing/fuzzing.h Mon Dec 18 20:12:08 2017 (r326945) @@ -0,0 +1,62 @@ +// -*- C++ -*- +//===-------------------------- fuzzing.h --------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP_FUZZING +#define _LIBCPP_FUZZING + +#include <cstddef> // for size_t +#include <cstdint> // for uint8_t + +namespace fuzzing { + +// These all return 0 on success; != 0 on failure + int sort (const uint8_t *data, size_t size); + int stable_sort (const uint8_t *data, size_t size); + int partition (const uint8_t *data, size_t size); + int partition_copy (const uint8_t *data, size_t size); + int stable_partition (const uint8_t *data, size_t size); + int unique (const uint8_t *data, size_t size); + int unique_copy (const uint8_t *data, size_t size); + +// partition and stable_partition take Bi-Di iterators. +// Should test those, too + int nth_element (const uint8_t *data, size_t size); + int partial_sort (const uint8_t *data, size_t size); + int partial_sort_copy (const uint8_t *data, size_t size); + +// Heap operations + int make_heap (const uint8_t *data, size_t size); + int push_heap (const uint8_t *data, size_t size); + int pop_heap (const uint8_t *data, size_t size); + +// Various flavors of regex + int regex_ECMAScript (const uint8_t *data, size_t size); + int regex_POSIX (const uint8_t *data, size_t size); + int regex_extended (const uint8_t *data, size_t size); + int regex_awk (const uint8_t *data, size_t size); + int regex_grep (const uint8_t *data, size_t size); + int regex_egrep (const uint8_t *data, size_t size); + +// Searching + int search (const uint8_t *data, size_t size); +// int search_boyer_moore (const uint8_t *data, size_t size); +// int search_boyer_moore_horspool (const uint8_t *data, size_t size); + +// Set operations +// int includes (const uint8_t *data, size_t size); +// int set_union (const uint8_t *data, size_t size); +// int set_intersection (const uint8_t *data, size_t size); +// int set_difference (const uint8_t *data, size_t size); +// int set_symmetric_difference (const uint8_t *data, size_t size); +// int merge (const uint8_t *data, size_t size); + +} // namespace fuzzing + +#endif // _LIBCPP_FUZZING Modified: vendor/libc++/dist/include/CMakeLists.txt ============================================================================== --- vendor/libc++/dist/include/CMakeLists.txt Mon Dec 18 20:12:01 2017 (r326944) +++ vendor/libc++/dist/include/CMakeLists.txt Mon Dec 18 20:12:08 2017 (r326945) @@ -58,9 +58,12 @@ if (LIBCXX_INSTALL_HEADERS) COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=cxx-headers -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") + # Stripping is a no-op for headers + add_custom_target(install-cxx-headers-stripped DEPENDS install-cxx-headers) add_custom_target(libcxx-headers) add_custom_target(install-libcxx-headers DEPENDS install-cxx-headers) + add_custom_target(install-libcxx-headers-stripped DEPENDS install-cxx-headers-stripped) endif() endif() Modified: vendor/libc++/dist/include/__config ============================================================================== --- vendor/libc++/dist/include/__config Mon Dec 18 20:12:01 2017 (r326944) +++ vendor/libc++/dist/include/__config Mon Dec 18 20:12:08 2017 (r326945) @@ -33,7 +33,7 @@ #define _GNUC_VER_NEW 0 #endif -#define _LIBCPP_VERSION 5000 +#define _LIBCPP_VERSION 6000 #ifndef _LIBCPP_ABI_VERSION #define _LIBCPP_ABI_VERSION 1 @@ -45,6 +45,8 @@ #define _LIBCPP_OBJECT_FORMAT_MACHO 1 #elif defined(_WIN32) #define _LIBCPP_OBJECT_FORMAT_COFF 1 +#elif defined(__wasm__) +#define _LIBCPP_OBJECT_FORMAT_WASM 1 #else #error Unknown object file format #endif @@ -55,11 +57,11 @@ #define _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT // Fix deque iterator type in order to support incomplete types. #define _LIBCPP_ABI_INCOMPLETE_TYPES_IN_DEQUE -// Fix undefined behavior in how std::list stores it's linked nodes. +// Fix undefined behavior in how std::list stores its linked nodes. #define _LIBCPP_ABI_LIST_REMOVE_NODE_POINTER_UB // Fix undefined behavior in how __tree stores its end and parent nodes. #define _LIBCPP_ABI_TREE_REMOVE_NODE_POINTER_UB -// Fix undefined behavior in how __hash_table stores it's pointer types +// Fix undefined behavior in how __hash_table stores its pointer types. #define _LIBCPP_ABI_FIX_UNORDERED_NODE_POINTER_UB #define _LIBCPP_ABI_FORWARD_LIST_REMOVE_NODE_POINTER_UB #define _LIBCPP_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE @@ -76,9 +78,11 @@ // its vtable and typeinfo to libc++ rather than having all other libraries // using that class define their own copies. #define _LIBCPP_ABI_BAD_FUNCTION_CALL_KEY_FUNCTION - // Enable optimized version of __do_get_(un)signed which avoids redundant copies. #define _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET +// Use the smallest possible integer type to represent the index of the variant. +// Previously libc++ used "unsigned int" exclusivly. +#define _LIBCPP_ABI_VARIANT_INDEX_TYPE_OPTIMIZATION #elif _LIBCPP_ABI_VERSION == 1 #if !defined(_LIBCPP_OBJECT_FORMAT_COFF) // Enable compiling copies of now inline methods into the dylib to support @@ -121,6 +125,9 @@ #ifndef __has_feature #define __has_feature(__x) 0 #endif +#ifndef __has_cpp_attribute +#define __has_cpp_attribute(__x) 0 +#endif // '__is_identifier' returns '0' if '__x' is a reserved identifier provided by // the compiler and '1' otherwise. #ifndef __is_identifier @@ -157,11 +164,21 @@ // FIXME: ABI detection should be done via compiler builtin macros. This // is just a placeholder until Clang implements such macros. For now assume -// that Windows compilers pretending to be MSVC++ target the microsoft ABI. -#if defined(_WIN32) && defined(_MSC_VER) +// that Windows compilers pretending to be MSVC++ target the Microsoft ABI, +// and allow the user to explicitly specify the ABI to handle cases where this +// heuristic falls short. +#if defined(_LIBCPP_ABI_FORCE_ITANIUM) && defined(_LIBCPP_ABI_FORCE_MICROSOFT) +# error "Only one of _LIBCPP_ABI_FORCE_ITANIUM and _LIBCPP_ABI_FORCE_MICROSOFT can be defined" +#elif defined(_LIBCPP_ABI_FORCE_ITANIUM) +# define _LIBCPP_ABI_ITANIUM +#elif defined(_LIBCPP_ABI_FORCE_MICROSOFT) # define _LIBCPP_ABI_MICROSOFT #else -# define _LIBCPP_ABI_ITANIUM +# if defined(_WIN32) && defined(_MSC_VER) +# define _LIBCPP_ABI_MICROSOFT +# else +# define _LIBCPP_ABI_ITANIUM +# endif #endif *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201712182012.vBIKC9j0085451>