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/...
Dimitry Andric
dim at FreeBSD.org
Mon Dec 18 20:12:13 UTC 2017
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 at 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 at me.com
D: Implementation of propagate_const.
+N: Glen Joseph Fernandes
+E: glenjofe at gmail.com
+D: Implementation of to_address.
+
N: Eric Fiselier
E: eric at 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 ***
More information about the svn-src-vendor
mailing list