Date: Sat, 19 Jan 2019 10:05:36 +0000 (UTC) From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r343177 - in vendor/libc++/dist: . benchmarks cmake/Modules docs docs/DesignDocs fuzzing include include/experimental include/support/win32 lib lib/abi src src/experimental src/experime... Message-ID: <201901191005.x0JA5asp041107@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dim Date: Sat Jan 19 10:05:35 2019 New Revision: 343177 URL: https://svnweb.freebsd.org/changeset/base/343177 Log: Vendor import of libc++ trunk r351319 (just before the release_80 branch point): https://llvm.org/svn/llvm-project/libcxx/trunk@351319 Added: vendor/libc++/dist/benchmarks/CartesianBenchmarks.hpp vendor/libc++/dist/benchmarks/algorithms.partition_point.bench.cpp vendor/libc++/dist/benchmarks/function.bench.cpp vendor/libc++/dist/benchmarks/lit.cfg.py vendor/libc++/dist/benchmarks/lit.site.cfg.py.in vendor/libc++/dist/benchmarks/ordered_set.bench.cpp vendor/libc++/dist/docs/DesignDocs/FeatureTestMacros.rst vendor/libc++/dist/docs/FeatureTestMacroTable.rst vendor/libc++/dist/docs/ReleaseNotes.rst vendor/libc++/dist/include/bit vendor/libc++/dist/test/libcxx/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.depr_in_cxx14.fail.cpp vendor/libc++/dist/test/libcxx/algorithms/half_positive.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/deque/pop_back_empty.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/pop_back_empty.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/vector.cons/ vendor/libc++/dist/test/libcxx/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp vendor/libc++/dist/test/libcxx/depr/depr.auto.ptr/auto.ptr/auto_ptr.depr_in_cxx11.fail.cpp vendor/libc++/dist/test/libcxx/depr/depr.function.objects/adaptors.depr_in_cxx11.fail.cpp vendor/libc++/dist/test/libcxx/diagnostics/enable_nodiscard.fail.cpp vendor/libc++/dist/test/libcxx/diagnostics/enable_nodiscard_disable_after_cxx17.fail.cpp vendor/libc++/dist/test/libcxx/diagnostics/enable_nodiscard_disable_nodiscard_ext.fail.cpp vendor/libc++/dist/test/libcxx/diagnostics/nodiscard_aftercxx17.fail.cpp vendor/libc++/dist/test/libcxx/diagnostics/nodiscard_aftercxx17.pass.cpp vendor/libc++/dist/test/libcxx/diagnostics/nodiscard_extensions.fail.cpp vendor/libc++/dist/test/libcxx/diagnostics/nodiscard_extensions.pass.cpp vendor/libc++/dist/test/libcxx/experimental/diagnostics/ vendor/libc++/dist/test/libcxx/experimental/diagnostics/syserr/ vendor/libc++/dist/test/libcxx/experimental/diagnostics/syserr/use_header_warning.fail.cpp vendor/libc++/dist/test/libcxx/experimental/diagnostics/syserr/version.pass.cpp vendor/libc++/dist/test/libcxx/experimental/numerics/ vendor/libc++/dist/test/libcxx/experimental/numerics/numeric.ops/ vendor/libc++/dist/test/libcxx/experimental/numerics/numeric.ops/use_header_warning.fail.cpp vendor/libc++/dist/test/libcxx/experimental/numerics/numeric.ops/version.pass.cpp vendor/libc++/dist/test/libcxx/experimental/strings/ vendor/libc++/dist/test/libcxx/experimental/strings/string.view/ vendor/libc++/dist/test/libcxx/experimental/strings/string.view/use_header_warning.fail.cpp vendor/libc++/dist/test/libcxx/experimental/strings/string.view/version.pass.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/any/ vendor/libc++/dist/test/libcxx/experimental/utilities/any/use_header_warning.fail.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/any/version.pass.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/optional/ vendor/libc++/dist/test/libcxx/experimental/utilities/optional/use_header_warning.fail.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/optional/version.pass.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/ratio/ vendor/libc++/dist/test/libcxx/experimental/utilities/ratio/use_header_warning.fail.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/ratio/version.pass.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/time/ vendor/libc++/dist/test/libcxx/experimental/utilities/time/use_header_warning.fail.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/time/version.pass.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/tuple/ vendor/libc++/dist/test/libcxx/experimental/utilities/tuple/use_header_warning.fail.cpp vendor/libc++/dist/test/libcxx/experimental/utilities/tuple/version.pass.cpp vendor/libc++/dist/test/libcxx/input.output/file.streams/fstreams/fstream.close.pass.cpp vendor/libc++/dist/test/libcxx/language.support/support.dynamic/libcpp_deallocate.sh.cpp vendor/libc++/dist/test/libcxx/libcpp_alignof.pass.cpp vendor/libc++/dist/test/libcxx/memory/aligned_allocation_macro.pass.cpp vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/resize_default_initialized.pass.cpp vendor/libc++/dist/test/libcxx/utilities/optional/optional.object/triviality.abi.pass.cpp vendor/libc++/dist/test/libcxx/utilities/utility/pairs/pairs.pair/U_V.pass.cpp vendor/libc++/dist/test/libcxx/utilities/utility/pairs/pairs.pair/const_first_const_second.pass.cpp vendor/libc++/dist/test/libcxx/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp vendor/libc++/dist/test/libcxx/utilities/utility/pairs/pairs.pair/default.pass.cpp vendor/libc++/dist/test/libcxx/utilities/utility/pairs/pairs.pair/piecewise.pass.cpp vendor/libc++/dist/test/libcxx/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.min.max/requires_forward_iterator.fail.cpp vendor/libc++/dist/test/std/containers/associative/map/map.erasure/ vendor/libc++/dist/test/std/containers/associative/map/map.erasure/erase_if.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/merge.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.erasure/ vendor/libc++/dist/test/std/containers/associative/multimap/multimap.erasure/erase_if.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/merge.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/insert_emplace_allocator_requirements.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/merge.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/multiset.erasure/ vendor/libc++/dist/test/std/containers/associative/multiset/multiset.erasure/erase_if.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/merge.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/set.erasure/ vendor/libc++/dist/test/std/containers/associative/set/set.erasure/erase_if.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.erasure/ vendor/libc++/dist/test/std/containers/sequences/deque/deque.erasure/erase.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.erasure/erase_if.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.erasure/ vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.erasure/erase.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.erasure/erase_if.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.erasure/ vendor/libc++/dist/test/std/containers/sequences/list/list.erasure/erase.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.erasure/erase_if.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.erasure/ vendor/libc++/dist/test/std/containers/sequences/vector/vector.erasure/erase.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.erasure/erase_if.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/erase_if.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/merge.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/erase_if.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/merge.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/erase_if.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/insert_emplace_allocator_requirements.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/merge.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/erase_if.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/merge.pass.cpp vendor/libc++/dist/test/std/depr/depr.lib.binders/depr.lib.bind.1st/bind1st.depr_in_cxx11.fail.cpp vendor/libc++/dist/test/std/depr/depr.lib.binders/depr.lib.bind.2nd/bind2nd.depr_in_cxx11.fail.cpp vendor/libc++/dist/test/std/depr/depr.lib.binders/depr.lib.binder.1st/binder1st.depr_in_cxx11.fail.cpp vendor/libc++/dist/test/std/depr/depr.lib.binders/depr.lib.binder.2nd/binder2nd.depr_in_cxx11.fail.cpp vendor/libc++/dist/test/std/input.output/filesystems/class.path/path.nonmember/append_op.fail.cpp vendor/libc++/dist/test/std/input.output/filesystems/class.path/path.nonmember/comparison_ops.fail.cpp vendor/libc++/dist/test/std/iterators/iterator.primitives/iterator.traits/empty.fail.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size.sh.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.sh.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.sh.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.sh.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.sh.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.sh.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/ vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/algorithm.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/any.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/array.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/atomic.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/charconv.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/chrono.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/cmath.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/compare.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/complex.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/concepts.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/cstddef.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/deque.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/exception.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/execution.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/filesystem.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/functional.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/generate_feature_test_macro_components.py (contents, props changed) vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/iomanip.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/istream.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/iterator.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/limits.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/locale.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/map.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/memory.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/memory_resource.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/mutex.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/new.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/numeric.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/optional.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/ostream.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/regex.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/set.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/string.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/string_view.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/tuple.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/type_traits.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/unordered_map.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/unordered_set.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/utility.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/variant.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/vector.version.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.eng/rand.eng.mers/ctor_sseq_all_zero.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/inverted_character_classes.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.const/copy.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.const/copy_assign.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.const/move.pass.cpp vendor/libc++/dist/test/std/re/re.results/re.results.const/move_assign.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/ vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign2.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/assign3.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/compare.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/copy.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eof.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eq.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/eq_int_type.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/find.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/length.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/lt.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/move.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/not_eof.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/to_char_type.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/to_int_type.pass.cpp vendor/libc++/dist/test/std/strings/char.traits/char.traits.specializations/char.traits.specializations.char8_t/types.pass.cpp vendor/libc++/dist/test/std/strings/strings.erasure/ vendor/libc++/dist/test/std/strings/strings.erasure/erase.pass.cpp vendor/libc++/dist/test/std/strings/strings.erasure/erase_if.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.async/async_race.38682.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/negators/binary_negate.depr_in_cxx17.fail.cpp vendor/libc++/dist/test/std/utilities/function.objects/negators/not1.depr_in_cxx17.fail.cpp vendor/libc++/dist/test/std/utilities/function.objects/negators/not2.depr_in_cxx17.fail.cpp vendor/libc++/dist/test/std/utilities/function.objects/negators/unary_negate.depr_in_cxx17.fail.cpp vendor/libc++/dist/test/std/utilities/function.objects/refwrap/unwrap_ref_decay.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/refwrap/unwrap_reference.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/type_identity.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/special_members.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/triviality.pass.cpp vendor/libc++/dist/test/std/utilities/time/days.pass.cpp vendor/libc++/dist/test/std/utilities/time/months.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/ vendor/libc++/dist/test/std/utilities/time/time.cal/euclidian.h vendor/libc++/dist/test/std/utilities/time/time.cal/nothing_to_do.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.members/decrement.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.members/increment.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.members/plus_minus_equal.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/literals.fail.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/literals.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/minus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/plus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/time.cal.day.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.day/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.last/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.last/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.md/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.md/time.cal.md.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.md/time.cal.md.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.md/time.cal.md.members/day.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.md/time.cal.md.members/month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.md/time.cal.md.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.md/time.cal.md.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.md/time.cal.md.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.md/time.cal.md.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.md/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mdlast/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mdlast/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mdlast/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mdlast/month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mdlast/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mdlast/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mdlast/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.members/decrement.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.members/increment.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.members/plus_minus_equal.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.nonmembers/literals.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.nonmembers/minus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.nonmembers/plus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/time.cal.month.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.month/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwd/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwd/time.cal.mwd.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwd/time.cal.mwd.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwd/time.cal.mwd.members/month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwd/time.cal.mwd.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwd/time.cal.mwd.members/weekday_indexed.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwd/time.cal.mwd.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwd/time.cal.mwd.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwd/time.cal.mwd.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwd/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwdlast/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwdlast/time.cal.mwdlast.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwdlast/time.cal.mwdlast.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwdlast/time.cal.mwdlast.members/month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwdlast/time.cal.mwdlast.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwdlast/time.cal.mwdlast.members/weekday_last.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwdlast/time.cal.mwdlast.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwdlast/time.cal.mwdlast.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwdlast/time.cal.mwdlast.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.mwdlast/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.operators/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.operators/month_day.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.operators/month_day_last.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.operators/month_weekday.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.operators/month_weekday_last.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.operators/year_month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.operators/year_month_day.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.operators/year_month_day_last.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.operators/year_month_weekday.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.operators/year_month_weekday_last.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdidx/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdidx/time.cal.wdidx.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdidx/time.cal.wdidx.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdidx/time.cal.wdidx.members/index.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdidx/time.cal.wdidx.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdidx/time.cal.wdidx.members/weekday.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdidx/time.cal.wdidx.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdidx/time.cal.wdidx.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdidx/time.cal.wdidx.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdidx/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdlast/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdlast/time.cal.wdlast.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdlast/time.cal.wdlast.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdlast/time.cal.wdlast.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdlast/time.cal.wdlast.members/weekday.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdlast/time.cal.wdlast.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdlast/time.cal.wdlast.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdlast/time.cal.wdlast.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.wdlast/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/ctor.local_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/ctor.sys_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/decrement.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/increment.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/operator[].pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.members/plus_minus_equal.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/literals.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/minus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/plus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/time.cal.weekday.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.weekday/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.members/decrement.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.members/increment.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.members/is_leap.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.members/plus_minus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.members/plus_minus_equal.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.nonmembers/literals.fail.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.nonmembers/literals.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.nonmembers/minus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.nonmembers/plus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/time.cal.year.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.year/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/time.cal.ym.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/time.cal.ym.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/time.cal.ym.members/month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/time.cal.ym.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/time.cal.ym.members/plus_minus_equal_month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/time.cal.ym.members/plus_minus_equal_year.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/time.cal.ym.members/year.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/time.cal.ym.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/time.cal.ym.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/time.cal.ym.nonmembers/minus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/time.cal.ym.nonmembers/plus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/time.cal.ym.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ym/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ctor.local_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ctor.sys_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ctor.year_month_day_last.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/day.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.local_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/op.sys_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/plus_minus_equal_month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/plus_minus_equal_year.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.members/year.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.nonmembers/minus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.nonmembers/plus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/time.cal.ymd.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymd/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.members/day.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.members/month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.members/month_day_last.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.members/op_local_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.members/op_sys_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.members/plus_minus_equal_month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.members/plus_minus_equal_year.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.members/year.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.nonmembers/minus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.nonmembers/plus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymdlast/time.cal.ymdlast.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/ctor.local_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/ctor.sys_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/index.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.local_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/op.sys_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/plus_minus_equal_month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/plus_minus_equal_year.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/weekday.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/weekday_indexed.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.members/year.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.nonmembers/minus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.nonmembers/plus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/time.cal.ymwd.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwd/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.members/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.members/ctor.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.members/month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.members/ok.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.members/op_local_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.members/op_sys_days.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.members/plus_minus_equal_month.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.members/plus_minus_equal_year.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.members/weekday.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.members/year.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.nonmembers/ vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.nonmembers/comparisons.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.nonmembers/minus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.nonmembers/plus.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/time.cal.ymwdlast.nonmembers/streaming.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.cal/time.cal.ymwdlast/types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.file/ vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.file/consistency.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.file/file_time.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.file/now.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.file/rep_signed.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.system/local_time.types.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.system/sys.time.types.pass.cpp vendor/libc++/dist/test/std/utilities/time/weeks.pass.cpp vendor/libc++/dist/test/std/utilities/time/years.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.relops/relops_bool_conv.fail.cpp vendor/libc++/dist/test/support/truncate_fp.h vendor/libc++/dist/utils/ci/ vendor/libc++/dist/utils/ci/macos-backdeployment.sh (contents, props changed) vendor/libc++/dist/utils/ci/macos-trunk.sh (contents, props changed) vendor/libc++/dist/utils/docker/ vendor/libc++/dist/utils/docker/build_docker_image.sh (contents, props changed) vendor/libc++/dist/utils/docker/debian9/ vendor/libc++/dist/utils/docker/debian9/Dockerfile vendor/libc++/dist/utils/docker/scripts/ vendor/libc++/dist/utils/docker/scripts/build_gcc.sh (contents, props changed) vendor/libc++/dist/utils/docker/scripts/build_install_llvm.sh (contents, props changed) vendor/libc++/dist/utils/docker/scripts/checkout_git.sh (contents, props changed) vendor/libc++/dist/utils/docker/scripts/docker_start_buildbots.sh (contents, props changed) vendor/libc++/dist/utils/docker/scripts/install_clang_packages.sh (contents, props changed) vendor/libc++/dist/utils/docker/scripts/run_buildbot.sh (contents, props changed) vendor/libc++/dist/utils/google-benchmark/.clang-format vendor/libc++/dist/utils/google-benchmark/.travis-libcxx-setup.sh vendor/libc++/dist/utils/google-benchmark/.travis.yml vendor/libc++/dist/utils/google-benchmark/.ycm_extra_conf.py vendor/libc++/dist/utils/google-benchmark/WORKSPACE vendor/libc++/dist/utils/google-benchmark/appveyor.yml vendor/libc++/dist/utils/google-benchmark/mingw.py vendor/libc++/dist/utils/google-benchmark/src/benchmark_api_internal.cc vendor/libc++/dist/utils/google-benchmark/src/benchmark_runner.cc vendor/libc++/dist/utils/google-benchmark/src/benchmark_runner.h vendor/libc++/dist/utils/google-benchmark/test/AssemblyTests.cmake vendor/libc++/dist/utils/google-benchmark/test/display_aggregates_only_test.cc vendor/libc++/dist/utils/google-benchmark/test/memory_manager_test.cc vendor/libc++/dist/utils/google-benchmark/test/report_aggregates_only_test.cc vendor/libc++/dist/utils/google-benchmark/test/user_counters_thousands_test.cc vendor/libc++/dist/utils/libcxx/test/googlebenchmark.py Deleted: vendor/libc++/dist/include/experimental/dynarray vendor/libc++/dist/src/experimental/filesystem/ vendor/libc++/dist/test/libcxx/containers/sequences/list/list.special/ vendor/libc++/dist/test/libcxx/depr/depr.function.objects/depr.adaptors/ vendor/libc++/dist/test/libcxx/diagnostics/nodiscard.fail.cpp vendor/libc++/dist/test/libcxx/experimental/containers/ vendor/libc++/dist/test/libcxx/experimental/filesystem/class.directory_entry/ vendor/libc++/dist/test/libcxx/experimental/filesystem/class.path/ vendor/libc++/dist/test/libcxx/language.support/support.dynamic/alloc.errors/ vendor/libc++/dist/test/libcxx/test/ vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread.lock/ vendor/libc++/dist/test/libcxx/type_traits/is_floating_point.pass.cpp vendor/libc++/dist/test/libcxx/utilities/variant/variant.variant/variant.assign/ vendor/libc++/dist/test/libcxx/utilities/variant/variant.variant/variant.ctor/ vendor/libc++/dist/test/std/containers/associative/multiset/insert_allocator_requirements.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/insert_allocator_requirements.pass.cpp vendor/libc++/dist/test/std/containers/views/span.comparison/ vendor/libc++/dist/test/std/experimental/filesystem/Inputs/ vendor/libc++/dist/test/std/experimental/filesystem/class.directory_entry/ vendor/libc++/dist/test/std/experimental/filesystem/class.directory_iterator/ vendor/libc++/dist/test/std/experimental/filesystem/class.file_status/ vendor/libc++/dist/test/std/experimental/filesystem/class.filesystem_error/ vendor/libc++/dist/test/std/experimental/filesystem/class.path/ vendor/libc++/dist/test/std/experimental/filesystem/class.rec.dir.itr/ vendor/libc++/dist/test/std/experimental/filesystem/fs.enum/ vendor/libc++/dist/test/std/experimental/filesystem/fs.error.report/ vendor/libc++/dist/test/std/experimental/filesystem/fs.filesystem.synopsis/ vendor/libc++/dist/test/std/experimental/filesystem/fs.op.funcs/ vendor/libc++/dist/test/std/input.output/file.streams/c.files/no.global.filesystem.namespace/ vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size.fail.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align.fail.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_align_nothrow.fail.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_size_nothrow.fail.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align.fail.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_size_align_nothrow.fail.cpp vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.create/ vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.dltr/ vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/ vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/ vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/copy.fail.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/special_member_gen.pass.cpp vendor/libc++/dist/utils/gen_link_script/ vendor/libc++/dist/utils/google-benchmark/tools/compare_bench.py vendor/libc++/dist/utils/not/ vendor/libc++/dist/utils/sym_check/ Modified: vendor/libc++/dist/CMakeLists.txt vendor/libc++/dist/LICENSE.TXT vendor/libc++/dist/appveyor-reqs-install.cmd vendor/libc++/dist/appveyor.yml vendor/libc++/dist/benchmarks/CMakeLists.txt vendor/libc++/dist/benchmarks/algorithms.bench.cpp vendor/libc++/dist/benchmarks/string.bench.cpp vendor/libc++/dist/benchmarks/stringstream.bench.cpp vendor/libc++/dist/benchmarks/unordered_set_operations.bench.cpp vendor/libc++/dist/cmake/Modules/HandleCompilerRT.cmake vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake vendor/libc++/dist/docs/BuildingLibcxx.rst vendor/libc++/dist/docs/DesignDocs/AvailabilityMarkup.rst vendor/libc++/dist/docs/DesignDocs/CapturingConfigInfo.rst vendor/libc++/dist/docs/DesignDocs/VisibilityMacros.rst vendor/libc++/dist/docs/TestingLibcxx.rst vendor/libc++/dist/docs/UsingLibcxx.rst vendor/libc++/dist/docs/conf.py vendor/libc++/dist/docs/index.rst vendor/libc++/dist/fuzzing/fuzzing.cpp vendor/libc++/dist/include/CMakeLists.txt vendor/libc++/dist/include/__bit_reference vendor/libc++/dist/include/__config vendor/libc++/dist/include/__config_site.in vendor/libc++/dist/include/__debug vendor/libc++/dist/include/__functional_base vendor/libc++/dist/include/__hash_table vendor/libc++/dist/include/__libcpp_version vendor/libc++/dist/include/__locale vendor/libc++/dist/include/__mutex_base vendor/libc++/dist/include/__node_handle vendor/libc++/dist/include/__sso_allocator vendor/libc++/dist/include/__string vendor/libc++/dist/include/__threading_support vendor/libc++/dist/include/__tree vendor/libc++/dist/include/__tuple vendor/libc++/dist/include/algorithm vendor/libc++/dist/include/any vendor/libc++/dist/include/array vendor/libc++/dist/include/atomic vendor/libc++/dist/include/bitset vendor/libc++/dist/include/charconv vendor/libc++/dist/include/chrono vendor/libc++/dist/include/cmath vendor/libc++/dist/include/complex vendor/libc++/dist/include/cstddef vendor/libc++/dist/include/cstdlib vendor/libc++/dist/include/ctime vendor/libc++/dist/include/deque vendor/libc++/dist/include/exception vendor/libc++/dist/include/experimental/any vendor/libc++/dist/include/experimental/chrono vendor/libc++/dist/include/experimental/coroutine vendor/libc++/dist/include/experimental/memory_resource vendor/libc++/dist/include/experimental/numeric vendor/libc++/dist/include/experimental/optional vendor/libc++/dist/include/experimental/ratio vendor/libc++/dist/include/experimental/string_view vendor/libc++/dist/include/experimental/system_error vendor/libc++/dist/include/experimental/tuple vendor/libc++/dist/include/filesystem vendor/libc++/dist/include/forward_list vendor/libc++/dist/include/fstream vendor/libc++/dist/include/functional vendor/libc++/dist/include/future vendor/libc++/dist/include/iomanip vendor/libc++/dist/include/iosfwd vendor/libc++/dist/include/istream vendor/libc++/dist/include/iterator vendor/libc++/dist/include/limits vendor/libc++/dist/include/list vendor/libc++/dist/include/locale vendor/libc++/dist/include/map vendor/libc++/dist/include/memory vendor/libc++/dist/include/module.modulemap vendor/libc++/dist/include/mutex vendor/libc++/dist/include/new vendor/libc++/dist/include/numeric vendor/libc++/dist/include/optional vendor/libc++/dist/include/ostream 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/shared_mutex vendor/libc++/dist/include/span vendor/libc++/dist/include/sstream vendor/libc++/dist/include/stddef.h vendor/libc++/dist/include/stdexcept 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/thread 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/valarray vendor/libc++/dist/include/variant vendor/libc++/dist/include/vector vendor/libc++/dist/include/version vendor/libc++/dist/lib/CMakeLists.txt vendor/libc++/dist/lib/abi/CHANGELOG.TXT vendor/libc++/dist/lib/abi/CMakeLists.txt vendor/libc++/dist/lib/abi/x86_64-apple-darwin.v1.abilist vendor/libc++/dist/lib/abi/x86_64-apple-darwin.v2.abilist vendor/libc++/dist/lib/abi/x86_64-unknown-linux-gnu.v1.abilist vendor/libc++/dist/lib/libc++abi2.exp vendor/libc++/dist/src/experimental/memory_resource.cpp vendor/libc++/dist/src/filesystem/filesystem_common.h vendor/libc++/dist/src/filesystem/operations.cpp vendor/libc++/dist/src/future.cpp vendor/libc++/dist/src/iostream.cpp vendor/libc++/dist/src/new.cpp vendor/libc++/dist/src/support/runtime/exception_fallback.ipp vendor/libc++/dist/src/support/runtime/exception_glibcxx.ipp vendor/libc++/dist/src/support/runtime/exception_libcxxrt.ipp vendor/libc++/dist/src/support/runtime/exception_msvc.ipp vendor/libc++/dist/src/thread.cpp vendor/libc++/dist/test/CMakeLists.txt vendor/libc++/dist/test/libcxx/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.cxx1z.pass.cpp vendor/libc++/dist/test/libcxx/algorithms/debug_less.pass.cpp vendor/libc++/dist/test/libcxx/containers/associative/non_const_comparator.fail.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_back.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_cback.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_cfront.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_cindex.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_front.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_index.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_2.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_3.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_4.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_5.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_6.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_7.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/vector/db_iterators_8.pass.cpp vendor/libc++/dist/test/libcxx/containers/unord/non_const_comparator.fail.cpp vendor/libc++/dist/test/libcxx/containers/unord/unord.map/db_iterators_7.pass.cpp vendor/libc++/dist/test/libcxx/containers/unord/unord.map/db_iterators_8.pass.cpp vendor/libc++/dist/test/libcxx/containers/unord/unord.map/db_local_iterators_7.pass.cpp vendor/libc++/dist/test/libcxx/containers/unord/unord.map/db_local_iterators_8.pass.cpp vendor/libc++/dist/test/libcxx/depr/depr.function.objects/depr.adaptors.cxx1z.pass.cpp vendor/libc++/dist/test/libcxx/diagnostics/nodiscard.pass.cpp vendor/libc++/dist/test/libcxx/double_include.sh.cpp vendor/libc++/dist/test/libcxx/experimental/memory/memory.polymorphic.allocator.class/memory.polymorphic.allocator.mem/construct_piecewise_pair.pass.cpp vendor/libc++/dist/test/libcxx/experimental/memory/memory.resource.adaptor/memory.resource.adaptor.mem/db_deallocate.pass.cpp vendor/libc++/dist/test/libcxx/language.support/cxa_deleted_virtual.pass.cpp vendor/libc++/dist/test/libcxx/language.support/has_c11_features.pass.cpp vendor/libc++/dist/test/libcxx/language.support/support.dynamic/new_faligned_allocation.sh.cpp vendor/libc++/dist/test/libcxx/min_max_macros.sh.cpp vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db1.pass.cpp vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/erase_iter_db2.pass.cpp vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db1.pass.cpp vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db2.pass.cpp vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db3.pass.cpp vendor/libc++/dist/test/libcxx/strings/basic.string/string.modifiers/erase_iter_iter_db4.pass.cpp vendor/libc++/dist/test/libcxx/thread/thread.mutex/thread_safety_lock_guard.pass.cpp vendor/libc++/dist/test/libcxx/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp vendor/libc++/dist/test/libcxx/utilities/utility/pairs/pairs.pair/non_trivial_copy_move_ABI.pass.cpp vendor/libc++/dist/test/libcxx/utilities/utility/pairs/pairs.pair/pair.tuple_element.fail.cpp vendor/libc++/dist/test/libcxx/utilities/utility/pairs/pairs.pair/trivial_copy_move_ABI.pass.cpp vendor/libc++/dist/test/libcxx/utilities/variant/variant.variant/variant.helper/variant_alternative.fail.cpp vendor/libc++/dist/test/libcxx/utilities/variant/variant.variant/variant_size.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.random.sample/sample.fail.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.find.end/find_end_pred.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.is_permutation/is_permutation_pred.pass.cpp vendor/libc++/dist/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp vendor/libc++/dist/test/std/containers/Emplaceable.h vendor/libc++/dist/test/std/containers/associative/map/map.access/at.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.access/index_key.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.access/index_rv_key.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.access/max_size.pass.cpp vendor/libc++/dist/test/std/containers/associative/map/map.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/max_size.pass.cpp vendor/libc++/dist/test/std/containers/associative/multimap/multimap.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/clear.pass.cpp vendor/libc++/dist/test/std/containers/associative/multiset/max_size.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/clear.pass.cpp vendor/libc++/dist/test/std/containers/associative/set/max_size.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/queue/queue.defn/emplace.pass.cpp vendor/libc++/dist/test/std/containers/container.adaptors/stack/stack.defn/emplace.pass.cpp vendor/libc++/dist/test/std/containers/container.node/node_handle.pass.cpp vendor/libc++/dist/test/std/containers/map_allocator_requirement_test_templates.h vendor/libc++/dist/test/std/containers/sequences/array/array.data/data.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.data/data_const.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.tuple/get.fail.cpp vendor/libc++/dist/test/std/containers/sequences/array/array.tuple/tuple_element.fail.cpp vendor/libc++/dist/test/std/containers/sequences/array/begin.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/compare.pass.cpp vendor/libc++/dist/test/std/containers/sequences/array/size_and_alignment.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.capacity/max_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/erase_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/erase_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/resize_size_value.pass.cpp vendor/libc++/dist/test/std/containers/sequences/forwardlist/max_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.capacity/max_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.cons/input_iterator.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/merge.pass.cpp vendor/libc++/dist/test/std/containers/sequences/list/list.ops/merge_comp.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/construct_default.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.capacity/max_size.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/default_noexcept.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/move.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp vendor/libc++/dist/test/std/containers/set_allocator_requirement_test_templates.h vendor/libc++/dist/test/std/containers/unord/unord.map/compare.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/max_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/assign_copy.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/range.pass.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.elem/index.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/equal_range_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/equal_range_non_const.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/local_iterators.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/max_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/rehash.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/reserve.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/swap_member.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_copy.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multimap/unord.multimap.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/clear.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/erase_range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/max_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_copy.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/clear.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/erase_range.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/max_size.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/assign_copy.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/assign_init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/assign_move.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/init.pass.cpp vendor/libc++/dist/test/std/containers/unord/unord.set/unord.set.cnstr/range.pass.cpp vendor/libc++/dist/test/std/containers/views/span.cons/array.fail.cpp vendor/libc++/dist/test/std/containers/views/span.cons/array.pass.cpp vendor/libc++/dist/test/std/containers/views/span.cons/assign.pass.cpp vendor/libc++/dist/test/std/containers/views/span.cons/container.fail.cpp vendor/libc++/dist/test/std/containers/views/span.cons/container.pass.cpp vendor/libc++/dist/test/std/containers/views/span.cons/copy.pass.cpp vendor/libc++/dist/test/std/containers/views/span.cons/deduct.pass.cpp vendor/libc++/dist/test/std/containers/views/span.cons/default.fail.cpp vendor/libc++/dist/test/std/containers/views/span.cons/default.pass.cpp vendor/libc++/dist/test/std/containers/views/span.cons/ptr_len.fail.cpp vendor/libc++/dist/test/std/containers/views/span.cons/ptr_len.pass.cpp vendor/libc++/dist/test/std/containers/views/span.cons/ptr_ptr.fail.cpp vendor/libc++/dist/test/std/containers/views/span.cons/ptr_ptr.pass.cpp vendor/libc++/dist/test/std/containers/views/span.cons/span.fail.cpp vendor/libc++/dist/test/std/containers/views/span.cons/span.pass.cpp vendor/libc++/dist/test/std/containers/views/span.cons/stdarray.pass.cpp vendor/libc++/dist/test/std/containers/views/span.elem/data.pass.cpp vendor/libc++/dist/test/std/containers/views/span.elem/op_idx.pass.cpp vendor/libc++/dist/test/std/containers/views/span.iterators/begin.pass.cpp vendor/libc++/dist/test/std/containers/views/span.iterators/end.pass.cpp vendor/libc++/dist/test/std/containers/views/span.iterators/rbegin.pass.cpp vendor/libc++/dist/test/std/containers/views/span.iterators/rend.pass.cpp vendor/libc++/dist/test/std/containers/views/span.objectrep/as_bytes.pass.cpp vendor/libc++/dist/test/std/containers/views/span.objectrep/as_writeable_bytes.fail.cpp vendor/libc++/dist/test/std/containers/views/span.objectrep/as_writeable_bytes.pass.cpp vendor/libc++/dist/test/std/containers/views/span.obs/empty.pass.cpp vendor/libc++/dist/test/std/containers/views/span.obs/size.pass.cpp vendor/libc++/dist/test/std/containers/views/span.obs/size_bytes.pass.cpp vendor/libc++/dist/test/std/containers/views/span.sub/first.pass.cpp vendor/libc++/dist/test/std/containers/views/span.sub/last.pass.cpp vendor/libc++/dist/test/std/containers/views/span.sub/subspan.pass.cpp vendor/libc++/dist/test/std/containers/views/types.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/float_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/math_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/stdlib_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.c.headers/uchar_h.pass.cpp vendor/libc++/dist/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/overflow.pass.cpp vendor/libc++/dist/test/std/experimental/simd/simd.access/default.pass.cpp vendor/libc++/dist/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/increment.pass.cpp vendor/libc++/dist/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.nonmembers/begin_end.pass.cpp vendor/libc++/dist/test/std/input.output/filesystems/class.path/path.member/path.compare.pass.cpp vendor/libc++/dist/test/std/input.output/filesystems/class.path/path.member/path.gen/lexically_relative_and_proximate.pass.cpp vendor/libc++/dist/test/std/input.output/filesystems/class.path/path.nonmember/append_op.pass.cpp vendor/libc++/dist/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/increment.pass.cpp vendor/libc++/dist/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.nonmembers/begin_end.pass.cpp vendor/libc++/dist/test/std/input.output/filesystems/fs.op.funcs/fs.op.last_write_time/last_write_time.pass.cpp vendor/libc++/dist/test/std/input.output/filesystems/fs.op.funcs/fs.op.permissions/permissions.pass.cpp vendor/libc++/dist/test/std/input.output/filesystems/fs.op.funcs/fs.op.proximate/proximate.pass.cpp vendor/libc++/dist/test/std/input.output/filesystems/fs.op.funcs/fs.op.relative/relative.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/get_money.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/ext.manip/get_time.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.formatted.arithmetic/int.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/short.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.formatted/istream_extractors/signed_char_pointer.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.formatted/istream_extractors/unsigned_char_pointer.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.formatted/istream_extractors/wchar_t_pointer.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.rvalue/rvalue.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/get.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/get_chart.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/get_pointer_size.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/get_pointer_size_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/input.streams/istream.unformatted/ignore_0xff.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/read.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/readsome.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/seekg.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/seekg_off.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/minmax_showbase.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/std.manip/resetiosflags.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/std.manip/setbase.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/std.manip/setfill.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/std.manip/setiosflags.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/std.manip/setprecision.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/std.manip/setw.pass.cpp vendor/libc++/dist/test/std/input.output/iostreams.base/ios/basic.ios.members/narrow.pass.cpp vendor/libc++/dist/test/std/iterators/iterator.primitives/iterator.traits/iterator.pass.cpp vendor/libc++/dist/test/std/language.support/cmp/cmp.partialord/partialord.pass.cpp vendor/libc++/dist/test/std/language.support/cmp/cmp.strongord/strongord.pass.cpp vendor/libc++/dist/test/std/language.support/cmp/cmp.weakord/weakord.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/sized_delete_array_fsizeddeallocation.sh.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/sized_delete_fsizeddeallocation.sh.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/ptr.launder/launder.types.fail.cpp vendor/libc++/dist/test/std/language.support/support.exception/uncaught/uncaught_exceptions.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/c.limits/cfloat.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.limits/limits/numeric.limits.members/denorm_min.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp vendor/libc++/dist/test/std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/cstdlib.pass.cpp vendor/libc++/dist/test/std/language.support/support.runtime/ctime.pass.cpp vendor/libc++/dist/test/std/language.support/support.start.term/quick_exit.pass.cpp vendor/libc++/dist/test/std/language.support/support.start.term/quick_exit_check1.fail.cpp vendor/libc++/dist/test/std/language.support/support.start.term/quick_exit_check2.fail.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.collate/locale.collate.byname/transform.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_out.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.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_zh_CN.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_fr_FR.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_zh_CN.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.byname/grouping.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/neg_format.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/pos_format.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.moneypunct.byname/thousands_sep.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/test_min_max.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/test_neg_one.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_date_wide.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_one_wide.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.put.byname/put1.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/grouping.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/facet.numpunct/locale.numpunct.byname/thousands_sep.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/char_pointer.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp vendor/libc++/dist/test/std/numerics/c.math/cmath.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.ops/stream_input.pass.cpp vendor/libc++/dist/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/basic.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/ecma.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/extended.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.match/parse_curly_brackets.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/awk.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/basic.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/ecma.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/extended.pass.cpp vendor/libc++/dist/test/std/re/re.alg/re.alg.search/invert_neg_word_search.pass.cpp vendor/libc++/dist/test/std/re/re.grammar/excessive_brace_count.pass.cpp vendor/libc++/dist/test/std/re/re.traits/lookup_collatename.pass.cpp vendor/libc++/dist/test/std/re/re.traits/transform.pass.cpp vendor/libc++/dist/test/std/re/re.traits/transform_primary.pass.cpp vendor/libc++/dist/test/std/re/re.traits/translate_nocase.pass.cpp vendor/libc++/dist/test/std/strings/basic.string.hash/enabled_hashes.pass.cpp vendor/libc++/dist/test/std/strings/basic.string.hash/strings.pass.cpp vendor/libc++/dist/test/std/strings/basic.string.literals/literal.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/over_max_size.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/reserve.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/string_view_deduction.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/string_view_size_size_deduction.fail.cpp vendor/libc++/dist/test/std/strings/basic.string/string.cons/string_view_size_size_deduction.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.iterators/iterators.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/cctype.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/cstring.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/cuchar.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/cwchar.pass.cpp vendor/libc++/dist/test/std/strings/c.strings/cwctype.pass.cpp vendor/libc++/dist/test/std/strings/string.classes/typedefs.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stod.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stof.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoi.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stol.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoll.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoul.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoull.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/to_string.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/to_wstring.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/assign.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_string.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.hash/string_view.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.iterators/begin.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.iterators/end.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.iterators/rbegin.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.iterators/rend.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string.view.ops/copy.pass.cpp vendor/libc++/dist/test/std/strings/string.view/string_view.literals/literal.pass.cpp vendor/libc++/dist/test/std/strings/string.view/types.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.shared_future/wait_until.pass.cpp vendor/libc++/dist/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp vendor/libc++/dist/test/std/thread/thread.condition/thread.condition.condvarany/notify_one.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/adopt_lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/mutex.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_try_to_lock.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/lock.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.constr/F.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.this/sleep_until.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.assign/copy.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.assign/move.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.assign/value.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.cons/copy.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.cons/in_place_type.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.cons/move.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.cons/value.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.modifiers/reset.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.modifiers/swap.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.nonmembers/any.cast/any_cast_pointer.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/make_any.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.nonmembers/swap.pass.cpp vendor/libc++/dist/test/std/utilities/charconv/charconv.from.chars/integral.pass.cpp vendor/libc++/dist/test/std/utilities/charconv/charconv.to.chars/integral.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/nested.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp vendor/libc++/dist/test/std/utilities/function.objects/refwrap/type_properties.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/default.allocator/allocator.members/allocate.pass.cpp vendor/libc++/dist/test/std/utilities/memory/pointer.traits/pointer.traits.functions/pointer_to.pass.cpp vendor/libc++/dist/test/std/utilities/memory/pointer.traits/pointer_to.pass.cpp vendor/libc++/dist/test/std/utilities/memory/storage.iterator/raw_storage_iterator.base.pass.cpp vendor/libc++/dist/test/std/utilities/memory/storage.iterator/raw_storage_iterator.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/make_shared.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.other/aligned_storage.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.type.synop/endian.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary.prop.query/alignment_of.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_integral.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_default_constructible.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.bad_optional_access/default.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.bad_optional_access/derive.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.assign/move.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.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.specalg/make_optional.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/flip_one.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/reset_one.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/set_one.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/test.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/includes.pass.cpp vendor/libc++/dist/test/std/utilities/time/date.time/ctime.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.literals/literals.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.literals/literals1.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.nonmember/op_divide_duration.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.special/max.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.special/min.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.special/zero.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.point/time.point.arithmetic/op_+=.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.point/time.point.arithmetic/op_-=.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.point/time.point.special/max.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.point/time.point.special/min.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.traits/time.traits.duration_values/max.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.traits/time.traits.duration_values/min.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.traits/time.traits.duration_values/zero.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/TupleFunction.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.assign/move.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/PR20855_tuple_ref_binding_diagnostics.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.fail.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_incomplete.pass.cpp vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_structured_bindings.pass.cpp vendor/libc++/dist/test/std/utilities/type.index/type.index.hash/hash.pass.cpp vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/piecewise.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.bad_variant_access/bad_variant_access.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.relops/relops.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.ctor/T.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.ctor/copy.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.ctor/default.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_init_list_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_init_list_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.ctor/move.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_init_list_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_init_list_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.status/index.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.status/valueless_by_exception.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.swap/swap.pass.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/archetypes.hpp vendor/libc++/dist/test/support/archetypes.ipp vendor/libc++/dist/test/support/counting_predicates.hpp vendor/libc++/dist/test/support/filesystem_dynamic_test_helper.py vendor/libc++/dist/test/support/filesystem_test_helper.hpp vendor/libc++/dist/test/support/min_allocator.h vendor/libc++/dist/test/support/nasty_macros.hpp vendor/libc++/dist/test/support/poisoned_hash_helper.hpp vendor/libc++/dist/test/support/test_comparisons.h vendor/libc++/dist/test/support/test_macros.h vendor/libc++/dist/test/support/unique_ptr_test_helper.h vendor/libc++/dist/utils/google-benchmark/.gitignore vendor/libc++/dist/utils/google-benchmark/AUTHORS vendor/libc++/dist/utils/google-benchmark/CMakeLists.txt vendor/libc++/dist/utils/google-benchmark/CONTRIBUTORS vendor/libc++/dist/utils/google-benchmark/README.md vendor/libc++/dist/utils/google-benchmark/cmake/CXXFeatureCheck.cmake vendor/libc++/dist/utils/google-benchmark/cmake/GetGitVersion.cmake vendor/libc++/dist/utils/google-benchmark/cmake/HandleGTest.cmake vendor/libc++/dist/utils/google-benchmark/docs/tools.md vendor/libc++/dist/utils/google-benchmark/include/benchmark/benchmark.h vendor/libc++/dist/utils/google-benchmark/src/benchmark.cc vendor/libc++/dist/utils/google-benchmark/src/benchmark_api_internal.h vendor/libc++/dist/utils/google-benchmark/src/benchmark_register.cc vendor/libc++/dist/utils/google-benchmark/src/colorprint.cc vendor/libc++/dist/utils/google-benchmark/src/complexity.cc vendor/libc++/dist/utils/google-benchmark/src/console_reporter.cc vendor/libc++/dist/utils/google-benchmark/src/csv_reporter.cc vendor/libc++/dist/utils/google-benchmark/src/cycleclock.h vendor/libc++/dist/utils/google-benchmark/src/internal_macros.h vendor/libc++/dist/utils/google-benchmark/src/json_reporter.cc vendor/libc++/dist/utils/google-benchmark/src/reporter.cc vendor/libc++/dist/utils/google-benchmark/src/sleep.cc vendor/libc++/dist/utils/google-benchmark/src/statistics.cc vendor/libc++/dist/utils/google-benchmark/src/string_util.h vendor/libc++/dist/utils/google-benchmark/src/sysinfo.cc vendor/libc++/dist/utils/google-benchmark/src/thread_manager.h vendor/libc++/dist/utils/google-benchmark/src/timers.cc vendor/libc++/dist/utils/google-benchmark/test/CMakeLists.txt vendor/libc++/dist/utils/google-benchmark/test/complexity_test.cc vendor/libc++/dist/utils/google-benchmark/test/output_test.h vendor/libc++/dist/utils/google-benchmark/test/output_test_helper.cc vendor/libc++/dist/utils/google-benchmark/test/register_benchmark_test.cc vendor/libc++/dist/utils/google-benchmark/test/reporter_output_test.cc vendor/libc++/dist/utils/google-benchmark/test/skip_with_error_test.cc vendor/libc++/dist/utils/google-benchmark/test/string_util_gtest.cc vendor/libc++/dist/utils/google-benchmark/test/user_counters_tabular_test.cc vendor/libc++/dist/utils/google-benchmark/test/user_counters_test.cc vendor/libc++/dist/utils/google-benchmark/tools/compare.py vendor/libc++/dist/utils/google-benchmark/tools/gbench/Inputs/test3_run0.json vendor/libc++/dist/utils/google-benchmark/tools/gbench/Inputs/test3_run1.json vendor/libc++/dist/utils/google-benchmark/tools/gbench/report.py vendor/libc++/dist/utils/google-benchmark/tools/gbench/util.py vendor/libc++/dist/utils/libcxx/test/config.py vendor/libc++/dist/utils/libcxx/test/format.py vendor/libc++/dist/utils/libcxx/test/target_info.py 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/upcoming_meeting.html Modified: vendor/libc++/dist/CMakeLists.txt ============================================================================== --- vendor/libc++/dist/CMakeLists.txt Sat Jan 19 10:05:15 2019 (r343176) +++ vendor/libc++/dist/CMakeLists.txt Sat Jan 19 10:05:35 2019 (r343177) @@ -27,7 +27,7 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR project(libcxx CXX C) set(PACKAGE_NAME libcxx) - set(PACKAGE_VERSION 7.0.0svn) + set(PACKAGE_VERSION 8.0.0svn) set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") set(PACKAGE_BUGREPORT "llvm-bugs@lists.llvm.org") @@ -50,9 +50,14 @@ MACRO_ENSURE_OUT_OF_SOURCE_BUILD( "${PROJECT_NAME} requires an out of source build. Please create a separate build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there." ) +if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC") + message(STATUS "Configuring for clang-cl") + set(LIBCXX_TARGETING_CLANG_CL ON) +endif() if (MSVC) set(LIBCXX_TARGETING_MSVC ON) + message(STATUS "Configuring for MSVC") else() set(LIBCXX_TARGETING_MSVC OFF) endif() @@ -77,7 +82,12 @@ option(LIBCXX_ENABLE_FILESYSTEM "Build filesystem as p option(LIBCXX_INCLUDE_TESTS "Build the libc++ tests." ${LLVM_INCLUDE_TESTS}) # Benchmark options ----------------------------------------------------------- -option(LIBCXX_INCLUDE_BENCHMARKS "Build the libc++ benchmarks and their dependancies" ON) +option(LIBCXX_INCLUDE_BENCHMARKS "Build the libc++ benchmarks and their dependencies" ON) + +set(LIBCXX_BENCHMARK_TEST_ARGS_DEFAULT --benchmark_min_time=0.01) +set(LIBCXX_BENCHMARK_TEST_ARGS "${LIBCXX_BENCHMARK_TEST_ARGS_DEFAULT}" CACHE STRING + "Arguments to pass when running the benchmarks using check-cxx-benchmarks") + set(LIBCXX_BENCHMARK_NATIVE_STDLIB "" CACHE STRING "Build the benchmarks against the specified native STL. The value must be one of libc++/libstdc++") @@ -111,15 +121,12 @@ cmake_dependent_option(LIBCXX_INSTALL_FILESYSTEM_LIBRA "Install libc++fs.a" ON "LIBCXX_ENABLE_FILESYSTEM;LIBCXX_INSTALL_LIBRARY" OFF) -if (FUCHSIA) - set(DEFAULT_ABI_VERSION 2) -else() - set(DEFAULT_ABI_VERSION 1) -endif() -set(LIBCXX_ABI_VERSION ${DEFAULT_ABI_VERSION} CACHE STRING "ABI version of libc++.") +set(LIBCXX_ABI_VERSION "1" CACHE STRING "ABI version of libc++. Can be either 1 or 2, where 2 is currently not stable. Defaults to 1.") +set(LIBCXX_ABI_NAMESPACE "" CACHE STRING "The inline ABI namespace used by libc++. It defaults to __n where `n` is the current ABI version.") 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.") +option(LIBCXX_HIDE_FROM_ABI_PER_TU_BY_DEFAULT "Enable per TU ABI insulation by default. To be used by vendors." OFF) 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) @@ -175,7 +182,7 @@ cmake_dependent_option(LIBCXX_STATICALLY_LINK_ABI_IN_S cmake_dependent_option(LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY "Statically link the ABI library to shared library" ON - "LIBCXX_ENABLE_STATIC_ABI_LIBRARY;LIBCXX_ENABLE_STATIC" OFF) + "LIBCXX_ENABLE_STATIC_ABI_LIBRARY;LIBCXX_ENABLE_SHARED" OFF) # Generate and install a linker script inplace of libc++.so. The linker script # will link libc++ to the correct ABI library. This option is on by default @@ -276,6 +283,9 @@ endif() option(LIBCXX_CONFIGURE_IDE "Configure libcxx for use within an IDE" ${LIBCXX_CONFIGURE_IDE_DEFAULT}) +option(LIBCXX_HERMETIC_STATIC_LIBRARY + "Do not export any symbols from the static library." OFF) + #=============================================================================== # Check option configurations #=============================================================================== @@ -502,14 +512,16 @@ remove_flags(-Wno-pedantic -pedantic-errors -pedantic) # Required flags ============================================================== set(LIBCXX_STANDARD_VER c++11 CACHE INTERNAL "internal option to change build dialect") -if (LIBCXX_HAS_MUSL_LIBC) +if (LIBCXX_HAS_MUSL_LIBC OR LIBCXX_TARGETING_CLANG_CL) # musl's pthread implementations uses volatile types in their structs which is # not a constexpr in C++11 but is in C++14, so we use C++14 with musl. set(LIBCXX_STANDARD_VER c++14 CACHE INTERNAL "internal option to change build dialect") endif() add_compile_flags_if_supported(-std=${LIBCXX_STANDARD_VER}) +add_compile_flags_if_supported("/std:${LIBCXX_STANDARD_VER}") mangle_name("LIBCXX_SUPPORTS_STD_EQ_${LIBCXX_STANDARD_VER}_FLAG" SUPPORTS_DIALECT_NAME) -if(NOT ${SUPPORTS_DIALECT_NAME}) +mangle_name("LIBCXX_SUPPORTS_STD_COLON_${LIBCXX_STANDARD_VER}_FLAG" SUPPORTS_DIALECT_NAME_MSVC) +if(NOT ${SUPPORTS_DIALECT_NAME} AND NOT ${SUPPORTS_DIALECT_NAME_MSVC}) if(NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC" AND NOT "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC") message(FATAL_ERROR "C++11 or greater is required but the compiler does not support ${LIBCXX_STANDARD_VER}") endif() @@ -544,11 +556,29 @@ add_definitions(-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) add_compile_flags_if_supported( -Wall -Wextra -W -Wwrite-strings -Wno-unused-parameter -Wno-long-long - -Werror=return-type) + -Werror=return-type -Wextra-semi) if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") add_compile_flags_if_supported( -Wno-user-defined-literals -Wno-covered-switch-default) + if (LIBCXX_TARGETING_CLANG_CL) + add_compile_flags_if_supported( + -Wno-c++98-compat + -Wno-c++98-compat-pedantic + -Wno-c++11-compat + -Wno-undef + -Wno-reserved-id-macro + -Wno-gnu-include-next + -Wno-gcc-compat # For ignoring "'diagnose_if' is a clang extension" warnings + -Wno-zero-as-null-pointer-constant # FIXME: Remove this and fix all occurrences. + -Wno-deprecated-dynamic-exception-spec # For auto_ptr + -Wno-sign-conversion + -Wno-old-style-cast + -Wno-deprecated # FIXME: Remove this and fix all occurrences. + -Wno-shift-sign-overflow # FIXME: Why do we need this with clang-cl but not clang? + -Wno-double-promotion # FIXME: remove me + ) + endif() elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU") add_compile_flags_if_supported( -Wno-literal-suffix @@ -621,47 +651,67 @@ endif() # Sanitizer flags ============================================================= -# Configure for sanitizers. If LIBCXX_STANDALONE_BUILD then we have to do -# the flag translation ourselves. Othewise LLVM's CMakeList.txt will handle it. -if (LIBCXX_STANDALONE_BUILD) - set(LLVM_USE_SANITIZER "" CACHE STRING - "Define the sanitizer used to build the library and tests") +function(get_sanitizer_flags OUT_VAR USE_SANITIZER) + set(SANITIZER_FLAGS) + set(USE_SANITIZER "${USE_SANITIZER}") # NOTE: LLVM_USE_SANITIZER checks for a UNIX like system instead of MSVC. # But we don't have LLVM_ON_UNIX so checking for MSVC is the best we can do. - if (LLVM_USE_SANITIZER AND NOT MSVC) - add_flags_if_supported("-fno-omit-frame-pointer") - add_flags_if_supported("-gline-tables-only") + if (USE_SANITIZER AND NOT MSVC) + append_flags_if_supported(SANITIZER_FLAGS "-fno-omit-frame-pointer") + append_flags_if_supported(SANITIZER_FLAGS "-gline-tables-only") if (NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG" AND - NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "RELWITHDEBINFO") - add_flags_if_supported("-gline-tables-only") + NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "RELWITHDEBINFO") + append_flags_if_supported(SANITIZER_FLAGS "-gline-tables-only") endif() - if (LLVM_USE_SANITIZER STREQUAL "Address") - add_flags("-fsanitize=address") - elseif (LLVM_USE_SANITIZER MATCHES "Memory(WithOrigins)?") - add_flags(-fsanitize=memory) - if (LLVM_USE_SANITIZER STREQUAL "MemoryWithOrigins") - add_flags("-fsanitize-memory-track-origins") + if (USE_SANITIZER STREQUAL "Address") + append_flags(SANITIZER_FLAGS "-fsanitize=address") + elseif (USE_SANITIZER MATCHES "Memory(WithOrigins)?") + append_flags(SANITIZER_FLAGS -fsanitize=memory) + if (USE_SANITIZER STREQUAL "MemoryWithOrigins") + append_flags(SANITIZER_FLAGS "-fsanitize-memory-track-origins") endif() - elseif (LLVM_USE_SANITIZER STREQUAL "Undefined") - add_flags("-fsanitize=undefined -fno-sanitize=vptr,function -fno-sanitize-recover=all") - elseif (LLVM_USE_SANITIZER STREQUAL "Thread") - add_flags(-fsanitize=thread) + elseif (USE_SANITIZER STREQUAL "Undefined") + append_flags(SANITIZER_FLAGS "-fsanitize=undefined -fno-sanitize=vptr,function -fno-sanitize-recover=all") + elseif (USE_SANITIZER STREQUAL "Thread") + append_flags(SANITIZER_FLAGS -fsanitize=thread) else() - message(WARNING "Unsupported value of LLVM_USE_SANITIZER: ${LLVM_USE_SANITIZER}") + message(WARNING "Unsupported value of LLVM_USE_SANITIZER: ${USE_SANITIZER}") endif() - elseif(LLVM_USE_SANITIZER AND MSVC) + elseif(USE_SANITIZER AND MSVC) message(WARNING "LLVM_USE_SANITIZER is not supported on this platform.") endif() + set(${OUT_VAR} "${SANITIZER_FLAGS}" PARENT_SCOPE) +endfunction() + +# Configure for sanitizers. If LIBCXX_STANDALONE_BUILD then we have to do +# the flag translation ourselves. Othewise LLVM's CMakeList.txt will handle it. +if (LIBCXX_STANDALONE_BUILD) + set(LLVM_USE_SANITIZER "" CACHE STRING + "Define the sanitizer used to build the library and tests") endif() +get_sanitizer_flags(SANITIZER_FLAGS "${LLVM_USE_SANITIZER}") +if (LIBCXX_STANDALONE_BUILD AND SANITIZER_FLAGS) + add_flags(${SANITIZER_FLAGS}) +endif() # Configuration file flags ===================================================== -if (NOT LIBCXX_ABI_VERSION EQUAL DEFAULT_ABI_VERSION) +if (NOT LIBCXX_ABI_VERSION EQUAL 1) config_define(${LIBCXX_ABI_VERSION} _LIBCPP_ABI_VERSION) endif() +if (NOT LIBCXX_ABI_NAMESPACE STREQUAL "") + if (NOT LIBCXX_ABI_NAMESPACE MATCHES "__.*") + message(WARNING "LIBCXX_ABI_NAMESPACE must be a reserved identifier.") + endif() + if (LIBCXX_ABI_NAMESPACE MATCHES "__[0-9]+$") + message(FATAL_ERROR "LIBCXX_ABI_NAMESPACE '${LIBCXX_ABI_NAMESPACE}' is reserved for use by libc++.") + endif() + config_define(${LIBCXX_ABI_NAMESPACE} _LIBCPP_ABI_NAMESPACE) +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(LIBCXX_HIDE_FROM_ABI_PER_TU_BY_DEFAULT _LIBCPP_HIDE_FROM_ABI_PER_TU_BY_DEFAULT) 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) @@ -724,6 +774,18 @@ include_directories(include) add_subdirectory(include) add_subdirectory(lib) +set(LIBCXX_TEST_DEPS "") + +if (LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY) + list(APPEND LIBCXX_TEST_DEPS cxx_experimental) +endif() +if (LIBCXX_ENABLE_FILESYSTEM) + list(APPEND LIBCXX_TEST_DEPS cxx_filesystem) +endif() + +if (LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY) + list(APPEND LIBCXX_TEST_DEPS cxx_external_threads) +endif() if (LIBCXX_INCLUDE_BENCHMARKS) add_subdirectory(benchmarks) Modified: vendor/libc++/dist/LICENSE.TXT ============================================================================== --- vendor/libc++/dist/LICENSE.TXT Sat Jan 19 10:05:15 2019 (r343176) +++ vendor/libc++/dist/LICENSE.TXT Sat Jan 19 10:05:35 2019 (r343177) @@ -14,7 +14,7 @@ Full text of the relevant licenses is included below. University of Illinois/NCSA Open Source License -Copyright (c) 2009-2017 by the contributors listed in CREDITS.TXT +Copyright (c) 2009-2019 by the contributors listed in CREDITS.TXT All rights reserved. Modified: vendor/libc++/dist/appveyor-reqs-install.cmd ============================================================================== --- vendor/libc++/dist/appveyor-reqs-install.cmd Sat Jan 19 10:05:15 2019 (r343176) +++ vendor/libc++/dist/appveyor-reqs-install.cmd Sat Jan 19 10:05:35 2019 (r343177) @@ -9,7 +9,7 @@ cd C:\projects\deps :: Setup Compiler ::########################################################################### if NOT EXIST llvm-installer.exe ( - appveyor DownloadFile http://prereleases.llvm.org/win-snapshots/LLVM-7.0.0-r325576-win32.exe -FileName llvm-installer.exe + appveyor DownloadFile https://prereleases.llvm.org/win-snapshots/LLVM-8.0.0-r345380-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/appveyor.yml ============================================================================== --- vendor/libc++/dist/appveyor.yml Sat Jan 19 10:05:15 2019 (r343176) +++ vendor/libc++/dist/appveyor.yml Sat Jan 19 10:05:35 2019 (r343177) @@ -19,14 +19,6 @@ environment: MAKE_PROGRAM: ninja APPVEYOR_SAVE_CACHE_ON_ERROR: true - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - CMAKE_OPTIONS: -DCMAKE_C_COMPILER=clang-cl.exe -DCMAKE_CXX_COMPILER=clang-cl.exe - CLANG_VERSION: 4 - MSVC_SETUP_PATH: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat - MSVC_SETUP_ARG: x86_amd64 - GENERATOR: Ninja - MAKE_PROGRAM: ninja - APPVEYOR_SAVE_CACHE_ON_ERROR: true - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 MINGW_PATH: C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin GENERATOR: MinGW Makefiles MAKE_PROGRAM: mingw32-make Modified: vendor/libc++/dist/benchmarks/CMakeLists.txt ============================================================================== --- vendor/libc++/dist/benchmarks/CMakeLists.txt Sat Jan 19 10:05:15 2019 (r343176) +++ vendor/libc++/dist/benchmarks/CMakeLists.txt Sat Jan 19 10:05:35 2019 (r343177) @@ -11,17 +11,21 @@ set(BENCHMARK_LIBCXX_COMPILE_FLAGS -isystem ${LIBCXX_SOURCE_DIR}/include -L${LIBCXX_LIBRARY_DIR} -Wl,-rpath,${LIBCXX_LIBRARY_DIR} + ${SANITIZER_FLAGS} ) if (DEFINED LIBCXX_CXX_ABI_LIBRARY_PATH) list(APPEND BENCHMARK_LIBCXX_COMPILE_FLAGS -L${LIBCXX_CXX_ABI_LIBRARY_PATH} -Wl,-rpath,${LIBCXX_CXX_ABI_LIBRARY_PATH}) endif() +if (LIBCXX_NEEDS_SITE_CONFIG) + list(APPEND BENCHMARK_LIBCXX_COMPILE_FLAGS -include "${LIBCXX_BINARY_DIR}/__config_site") +endif() split_list(BENCHMARK_LIBCXX_COMPILE_FLAGS) ExternalProject_Add(google-benchmark-libcxx EXCLUDE_FROM_ALL ON - DEPENDS cxx + DEPENDS cxx cxx-headers PREFIX benchmark-libcxx SOURCE_DIR ${LIBCXX_SOURCE_DIR}/utils/google-benchmark INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/benchmark-libcxx @@ -67,8 +71,19 @@ add_custom_target(cxx-benchmarks) set(BENCHMARK_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}) set(BENCHMARK_LIBCXX_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/benchmark-libcxx) set(BENCHMARK_NATIVE_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/benchmark-native) + +check_flag_supported("-std=c++17") +mangle_name("LIBCXX_SUPPORTS_STD_EQ_c++17_FLAG" BENCHMARK_SUPPORTS_STD_CXX17_FLAG) +if (${BENCHMARK_SUPPORTS_STD_CXX17_FLAG}) + set(BENCHMARK_DIALECT_FLAG "-std=c++17") +else() + # If the compiler doesn't support -std=c++17, attempt to fall back to -std=c++1z while still + # requiring C++17 language features. + set(BENCHMARK_DIALECT_FLAG "-std=c++1z") +endif() + set(BENCHMARK_TEST_COMPILE_FLAGS - -std=c++17 -O2 + ${BENCHMARK_DIALECT_FLAG} -O2 -I${BENCHMARK_LIBCXX_INSTALL}/include -I${LIBCXX_SOURCE_DIR}/test/support ) @@ -76,11 +91,18 @@ set(BENCHMARK_TEST_LIBCXX_COMPILE_FLAGS -nostdinc++ -isystem ${LIBCXX_SOURCE_DIR}/include ${BENCHMARK_TEST_COMPILE_FLAGS} + ${SANITIZER_FLAGS} -Wno-user-defined-literals ) +if (LIBCXX_NEEDS_SITE_CONFIG) + list(APPEND BENCHMARK_TEST_LIBCXX_COMPILE_FLAGS + -include "${LIBCXX_BINARY_DIR}/__config_site") +endif() + set(BENCHMARK_TEST_LIBCXX_LINK_FLAGS -nodefaultlibs -L${BENCHMARK_LIBCXX_INSTALL}/lib/ + ${SANITIZER_FLAGS} ) set(BENCHMARK_TEST_NATIVE_COMPILE_FLAGS ${BENCHMARK_NATIVE_TARGET_FLAGS} @@ -95,10 +117,25 @@ split_list(BENCHMARK_TEST_LIBCXX_COMPILE_FLAGS) split_list(BENCHMARK_TEST_LIBCXX_LINK_FLAGS) split_list(BENCHMARK_TEST_NATIVE_COMPILE_FLAGS) split_list(BENCHMARK_TEST_NATIVE_LINK_FLAGS) -macro(add_benchmark_test name source_file) + +if (LIBCXX_BENCHMARK_NATIVE_STDLIB STREQUAL "libstdc++") + find_library(LIBSTDCXX_FILESYSTEM_TEST stdc++fs + PATHS ${LIBCXX_BENCHMARK_NATIVE_GCC_TOOLCHAIN} + PATH_SUFFIXES lib lib64 + DOC "The libstdc++ filesystem library used by the benchmarks" + ) + if (NOT "${LIBSTDCXX_FILESYSTEM_TEST}" STREQUAL "LIBSTDCXX_FILESYSTEM_TEST-NOTFOUND") + set(LIBSTDCXX_FILESYSTEM_LIB "stdc++fs") + endif() +endif() + +set(libcxx_benchmark_targets) + +function(add_benchmark_test name source_file) set(libcxx_target ${name}_libcxx) + list(APPEND libcxx_benchmark_targets ${libcxx_target}) add_executable(${libcxx_target} EXCLUDE_FROM_ALL ${source_file}) - add_dependencies(${libcxx_target} cxx google-benchmark-libcxx) + add_dependencies(${libcxx_target} cxx cxx-headers google-benchmark-libcxx) add_dependencies(cxx-benchmarks ${libcxx_target}) if (LIBCXX_ENABLE_SHARED) target_link_libraries(${libcxx_target} cxx_shared) @@ -108,7 +145,13 @@ macro(add_benchmark_test name source_file) if (TARGET cxx_experimental) target_link_libraries(${libcxx_target} cxx_experimental) endif() + if (TARGET cxx_filesystem) + target_link_libraries(${libcxx_target} cxx_filesystem) + endif() target_link_libraries(${libcxx_target} -lbenchmark) + if (LLVM_USE_SANITIZER) + target_link_libraries(${libcxx_target} -ldl) + endif() set_target_properties(${libcxx_target} PROPERTIES OUTPUT_NAME "${name}.libcxx.out" @@ -116,15 +159,19 @@ macro(add_benchmark_test name source_file) COMPILE_FLAGS "${BENCHMARK_TEST_LIBCXX_COMPILE_FLAGS}" LINK_FLAGS "${BENCHMARK_TEST_LIBCXX_LINK_FLAGS}") if (LIBCXX_BENCHMARK_NATIVE_STDLIB) + if (LIBCXX_BENCHMARK_NATIVE_STDLIB STREQUAL "libstdc++" AND NOT DEFINED LIBSTDCXX_FILESYSTEM_LIB + AND "${name}" STREQUAL "filesystem") + return() + endif() set(native_target ${name}_native) add_executable(${native_target} EXCLUDE_FROM_ALL ${source_file}) add_dependencies(${native_target} google-benchmark-native google-benchmark-libcxx) target_link_libraries(${native_target} -lbenchmark) if (LIBCXX_BENCHMARK_NATIVE_STDLIB STREQUAL "libstdc++") - target_link_libraries(${native_target} -lstdc++fs) + target_link_libraries(${native_target} ${LIBSTDCXX_FILESYSTEM_LIB}) elseif (LIBCXX_BENCHMARK_NATIVE_STDLIB STREQUAL "libc++") - target_link_libraries(${native_target} -lc++experimental) + target_link_libraries(${native_target} -lc++fs -lc++experimental) endif() if (LIBCXX_HAS_PTHREAD_LIB) target_link_libraries(${native_target} -pthread) @@ -138,7 +185,7 @@ macro(add_benchmark_test name source_file) COMPILE_FLAGS "${BENCHMARK_TEST_NATIVE_COMPILE_FLAGS}" LINK_FLAGS "${BENCHMARK_TEST_NATIVE_LINK_FLAGS}") endif() -endmacro() +endfunction() #============================================================================== @@ -155,3 +202,23 @@ foreach(test_path ${BENCHMARK_TESTS}) endif() add_benchmark_test(${test_name} ${test_file}) endforeach() + +if (LIBCXX_INCLUDE_TESTS) + include(AddLLVM) + + if (NOT DEFINED LIBCXX_TEST_DEPS) + message(FATAL_ERROR "Expected LIBCXX_TEST_DEPS to be defined") + endif() + + configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in + ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py) + + set(BENCHMARK_LIT_ARGS "--show-all --show-xfail --show-unsupported ${LIT_ARGS_DEFAULT}") + + add_lit_target(check-cxx-benchmarks + "Running libcxx benchmarks tests" + ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS cxx-benchmarks ${LIBCXX_TEST_DEPS} + ARGS ${BENCHMARK_LIT_ARGS}) +endif() Added: vendor/libc++/dist/benchmarks/CartesianBenchmarks.hpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/benchmarks/CartesianBenchmarks.hpp Sat Jan 19 10:05:35 2019 (r343177) @@ -0,0 +1,135 @@ +//===----------------------------------------------------------------------===// +// +// 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. +// +//===----------------------------------------------------------------------===// + + +#include <string> +#include <tuple> +#include <type_traits> +#include <vector> + +#include "benchmark/benchmark.h" +#include "test_macros.h" + +namespace internal { + +template <class D, class E, size_t I> +struct EnumValue : std::integral_constant<E, static_cast<E>(I)> { + static std::string name() { return std::string("_") + D::Names[I]; } +}; + +template <class D, class E, size_t ...Idxs> +constexpr auto makeEnumValueTuple(std::index_sequence<Idxs...>) { + return std::make_tuple(EnumValue<D, E, Idxs>{}...); +} + +template <class B> +static auto skip(const B& Bench, int) -> decltype(Bench.skip()) { + return Bench.skip(); +} +template <class B> +static auto skip(const B& Bench, char) { + return false; +} + +template <class B, class Args, size_t... Is> +void makeBenchmarkFromValuesImpl(const Args& A, std::index_sequence<Is...>) { + for (auto& V : A) { + B Bench{std::get<Is>(V)...}; + if (!internal::skip(Bench, 0)) { + benchmark::RegisterBenchmark(Bench.name().c_str(), + [=](benchmark::State& S) { Bench.run(S); }); + } + } +} + +template <class B, class... Args> +void makeBenchmarkFromValues(const std::vector<std::tuple<Args...> >& A) { + makeBenchmarkFromValuesImpl<B>(A, std::index_sequence_for<Args...>()); +} + +template <template <class...> class B, class Args, class... U> +void makeBenchmarkImpl(const Args& A, std::tuple<U...> t) { + makeBenchmarkFromValues<B<U...> >(A); +} + +template <template <class...> class B, class Args, class... U, + class... T, class... Tuples> +void makeBenchmarkImpl(const Args& A, std::tuple<U...>, std::tuple<T...>, + Tuples... rest) { + (internal::makeBenchmarkImpl<B>(A, std::tuple<U..., T>(), rest...), ...); +} + +template <class R, class T> +void allValueCombinations(R& Result, const T& Final) { + return Result.push_back(Final); +} + +template <class R, class T, class V, class... Vs> +void allValueCombinations(R& Result, const T& Prev, const V& Value, + const Vs&... Values) { + for (const auto& E : Value) { + allValueCombinations(Result, std::tuple_cat(Prev, std::make_tuple(E)), + Values...); + } +} + +} // namespace internal + +// CRTP class that enables using enum types as a dimension for +// makeCartesianProductBenchmark below. +// The type passed to `B` will be a std::integral_constant<E, e>, with the +// additional static function `name()` that returns the stringified name of the +// label. +// +// Eg: +// enum class MyEnum { A, B }; +// struct AllMyEnum : EnumValuesAsTuple<AllMyEnum, MyEnum, 2> { +// static constexpr absl::string_view Names[] = {"A", "B"}; +// }; +template <class Derived, class EnumType, size_t NumLabels> +using EnumValuesAsTuple = + decltype(internal::makeEnumValueTuple<Derived, EnumType>( + std::make_index_sequence<NumLabels>{})); + +// Instantiates B<T0, T1, ..., TN> where <Ti...> are the combinations in the +// cartesian product of `Tuples...`, and pass (arg0, ..., argN) as constructor +// arguments where `(argi...)` are the combination in the cartesian product of +// the runtime values of `A...`. +// B<T...> requires: +// - std::string name(args...): The name of the benchmark. +// - void run(benchmark::State&, args...): The body of the benchmark. +// It can also optionally provide: +// - bool skip(args...): When `true`, skips the combination. Default is false. +// +// Returns int to facilitate registration. The return value is unspecified. +template <template <class...> class B, class... Tuples, class... Args> +int makeCartesianProductBenchmark(const Args&... A) { + std::vector<std::tuple<typename Args::value_type...> > V; + internal::allValueCombinations(V, std::tuple<>(), A...); + internal::makeBenchmarkImpl<B>(V, std::tuple<>(), Tuples()...); + return 0; +} + +template <class B, class... Args> +int makeCartesianProductBenchmark(const Args&... A) { + std::vector<std::tuple<typename Args::value_type...> > V; + internal::allValueCombinations(V, std::tuple<>(), A...); + internal::makeBenchmarkFromValues<B>(V); + return 0; +} + +// When `opaque` is true, this function hides the runtime state of `value` from +// the optimizer. +// It returns `value`. +template <class T> +TEST_ALWAYS_INLINE inline T maybeOpaque(T value, bool opaque) { + if (opaque) benchmark::DoNotOptimize(value); + return value; +} + Modified: vendor/libc++/dist/benchmarks/algorithms.bench.cpp ============================================================================== --- vendor/libc++/dist/benchmarks/algorithms.bench.cpp Sat Jan 19 10:05:15 2019 (r343176) +++ vendor/libc++/dist/benchmarks/algorithms.bench.cpp Sat Jan 19 10:05:35 2019 (r343177) @@ -1,62 +1,270 @@ -#include <unordered_set> -#include <vector> + +#include <algorithm> #include <cstdint> +#include <map> +#include <random> +#include <string> +#include <utility> +#include <vector> -#include "benchmark/benchmark.h" +#include "CartesianBenchmarks.hpp" #include "GenerateInput.hpp" +#include "benchmark/benchmark.h" +#include "test_macros.h" -constexpr std::size_t TestNumInputs = 1024; +namespace { -template <class GenInputs> -void BM_Sort(benchmark::State& st, GenInputs gen) { - using ValueType = typename decltype(gen(0))::value_type; - const auto in = gen(st.range(0)); - std::vector<ValueType> inputs[5]; - auto reset_inputs = [&]() { - for (auto& C : inputs) { - C = in; - benchmark::DoNotOptimize(C.data()); - } - }; - reset_inputs(); - while (st.KeepRunning()) { - for (auto& I : inputs) { - std::sort(I.data(), I.data() + I.size()); - benchmark::DoNotOptimize(I.data()); - } - st.PauseTiming(); - reset_inputs(); - benchmark::ClobberMemory(); - st.ResumeTiming(); +enum class ValueType { Uint32, String }; +struct AllValueTypes : EnumValuesAsTuple<AllValueTypes, ValueType, 2> { + static constexpr const char* Names[] = {"uint32", "string"}; +}; + +template <class V> +using Value = + std::conditional_t<V() == ValueType::Uint32, uint32_t, std::string>; + +enum class Order { + Random, + Ascending, + Descending, + SingleElement, + PipeOrgan, + Heap +}; +struct AllOrders : EnumValuesAsTuple<AllOrders, Order, 6> { + static constexpr const char* Names[] = {"Random", "Ascending", + "Descending", "SingleElement", + "PipeOrgan", "Heap"}; +}; + +void fillValues(std::vector<uint32_t>& V, size_t N, Order O) { + if (O == Order::SingleElement) { + V.resize(N, 0); + } else { + while (V.size() < N) + V.push_back(V.size()); + } +} + +void fillValues(std::vector<std::string>& V, size_t N, Order O) { + + if (O == Order::SingleElement) { + V.resize(N, getRandomString(1024)); + } else { + while (V.size() < N) + V.push_back(getRandomString(1024)); + } +} + +template <class T> +void sortValues(T& V, Order O) { + assert(std::is_sorted(V.begin(), V.end())); + switch (O) { + case Order::Random: { + std::random_device R; + std::mt19937 M(R()); + std::shuffle(V.begin(), V.end(), M); + break; + } + case Order::Ascending: + std::sort(V.begin(), V.end()); + break; + case Order::Descending: + std::sort(V.begin(), V.end(), std::greater<>()); + break; + case Order::SingleElement: + // Nothing to do + break; + case Order::PipeOrgan: + std::sort(V.begin(), V.end()); + std::reverse(V.begin() + V.size() / 2, V.end()); + break; + case Order::Heap: + std::make_heap(V.begin(), V.end()); + break; + } +} + +template <class ValueType> +std::vector<std::vector<Value<ValueType> > > makeOrderedValues(size_t N, + Order O) { + // Let's make sure that all random sequences of the same size are the same. + // That way we can compare the different algorithms with the same input. + static std::map<std::pair<size_t, Order>, std::vector<Value<ValueType> > > + Cached; + + auto& Values = Cached[{N, O}]; + if (Values.empty()) { + fillValues(Values, N, O); + sortValues(Values, O); + }; + const size_t NumCopies = std::max(size_t{1}, 1000 / N); + return { NumCopies, Values }; +} + +template <class T, class U> +TEST_ALWAYS_INLINE void resetCopies(benchmark::State& state, T& Copies, + U& Orig) { + state.PauseTiming(); + for (auto& Copy : Copies) + Copy = Orig; + state.ResumeTiming(); +} + +template <class ValueType, class F> +void runOpOnCopies(benchmark::State& state, size_t Quantity, Order O, + bool CountElements, F f) { + auto Copies = makeOrderedValues<ValueType>(Quantity, O); + const auto Orig = Copies[0]; + + const size_t Batch = CountElements ? Copies.size() * Quantity : Copies.size(); + while (state.KeepRunningBatch(Batch)) { + for (auto& Copy : Copies) { + f(Copy); + benchmark::DoNotOptimize(Copy); } + resetCopies(state, Copies, Orig); + } } -BENCHMARK_CAPTURE(BM_Sort, random_uint32, - getRandomIntegerInputs<uint32_t>)->Arg(TestNumInputs); +template <class ValueType, class Order> +struct Sort { + size_t Quantity; -BENCHMARK_CAPTURE(BM_Sort, sorted_ascending_uint32, - getSortedIntegerInputs<uint32_t>)->Arg(TestNumInputs); + void run(benchmark::State& state) const { + runOpOnCopies<ValueType>(state, Quantity, Order(), false, [](auto& Copy) { + std::sort(Copy.begin(), Copy.end()); + }); + } -BENCHMARK_CAPTURE(BM_Sort, sorted_descending_uint32, - getReverseSortedIntegerInputs<uint32_t>)->Arg(TestNumInputs); + bool skip() const { return Order() == ::Order::Heap; } -BENCHMARK_CAPTURE(BM_Sort, single_element_uint32, - getDuplicateIntegerInputs<uint32_t>)->Arg(TestNumInputs); + std::string name() const { + return "BM_Sort" + ValueType::name() + Order::name() + "_" + + std::to_string(Quantity); + }; +}; -BENCHMARK_CAPTURE(BM_Sort, pipe_organ_uint32, - getPipeOrganIntegerInputs<uint32_t>)->Arg(TestNumInputs); +template <class ValueType, class Order> +struct StableSort { + size_t Quantity; -BENCHMARK_CAPTURE(BM_Sort, random_strings, - getRandomStringInputs)->Arg(TestNumInputs); + void run(benchmark::State& state) const { + runOpOnCopies<ValueType>(state, Quantity, Order(), false, [](auto& Copy) { + std::stable_sort(Copy.begin(), Copy.end()); + }); + } -BENCHMARK_CAPTURE(BM_Sort, sorted_ascending_strings, - getSortedStringInputs)->Arg(TestNumInputs); + bool skip() const { return Order() == ::Order::Heap; } -BENCHMARK_CAPTURE(BM_Sort, sorted_descending_strings, - getReverseSortedStringInputs)->Arg(TestNumInputs); + std::string name() const { + return "BM_StableSort" + ValueType::name() + Order::name() + "_" + + std::to_string(Quantity); + }; +}; -BENCHMARK_CAPTURE(BM_Sort, single_element_strings, - getDuplicateStringInputs)->Arg(TestNumInputs); +template <class ValueType, class Order> +struct MakeHeap { + size_t Quantity; + void run(benchmark::State& state) const { + runOpOnCopies<ValueType>(state, Quantity, Order(), false, [](auto& Copy) { + std::make_heap(Copy.begin(), Copy.end()); + }); + } -BENCHMARK_MAIN(); + std::string name() const { + return "BM_MakeHeap" + ValueType::name() + Order::name() + "_" + + std::to_string(Quantity); + }; +}; + +template <class ValueType> +struct SortHeap { + size_t Quantity; + + void run(benchmark::State& state) const { + runOpOnCopies<ValueType>( + state, Quantity, Order::Heap, false, + [](auto& Copy) { std::sort_heap(Copy.begin(), Copy.end()); }); + } + + std::string name() const { + return "BM_SortHeap" + ValueType::name() + "_" + std::to_string(Quantity); + }; +}; + +template <class ValueType, class Order> +struct MakeThenSortHeap { + size_t Quantity; + + void run(benchmark::State& state) const { + runOpOnCopies<ValueType>(state, Quantity, Order(), false, [](auto& Copy) { + std::make_heap(Copy.begin(), Copy.end()); + std::sort_heap(Copy.begin(), Copy.end()); + }); + } + + std::string name() const { + return "BM_MakeThenSortHeap" + ValueType::name() + Order::name() + "_" + + std::to_string(Quantity); + }; +}; + +template <class ValueType, class Order> +struct PushHeap { + size_t Quantity; + + void run(benchmark::State& state) const { + runOpOnCopies<ValueType>(state, Quantity, Order(), true, [](auto& Copy) { + for (auto I = Copy.begin(), E = Copy.end(); I != E; ++I) { + std::push_heap(Copy.begin(), I + 1); + } + }); + } + + bool skip() const { return Order() == ::Order::Heap; } + + std::string name() const { + return "BM_PushHeap" + ValueType::name() + Order::name() + "_" + + std::to_string(Quantity); + }; +}; + +template <class ValueType> +struct PopHeap { + size_t Quantity; + + void run(benchmark::State& state) const { + runOpOnCopies<ValueType>(state, Quantity, Order(), true, [](auto& Copy) { + for (auto B = Copy.begin(), I = Copy.end(); I != B; --I) { + std::pop_heap(B, I); + } + }); + } + + std::string name() const { + return "BM_PopHeap" + ValueType::name() + "_" + std::to_string(Quantity); + }; +}; + +} // namespace + +int main(int argc, char** argv) { + benchmark::Initialize(&argc, argv); + if (benchmark::ReportUnrecognizedArguments(argc, argv)) + return 1; + + const std::vector<size_t> Quantities = {1 << 0, 1 << 2, 1 << 4, 1 << 6, + 1 << 8, 1 << 10, 1 << 14, 1 << 18}; + makeCartesianProductBenchmark<Sort, AllValueTypes, AllOrders>(Quantities); + makeCartesianProductBenchmark<StableSort, AllValueTypes, AllOrders>( + Quantities); + makeCartesianProductBenchmark<MakeHeap, AllValueTypes, AllOrders>(Quantities); + makeCartesianProductBenchmark<SortHeap, AllValueTypes>(Quantities); + makeCartesianProductBenchmark<MakeThenSortHeap, AllValueTypes, AllOrders>( + Quantities); + makeCartesianProductBenchmark<PushHeap, AllValueTypes, AllOrders>(Quantities); + makeCartesianProductBenchmark<PopHeap, AllValueTypes>(Quantities); + benchmark::RunSpecifiedBenchmarks(); +} Added: vendor/libc++/dist/benchmarks/algorithms.partition_point.bench.cpp ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/benchmarks/algorithms.partition_point.bench.cpp Sat Jan 19 10:05:35 2019 (r343177) @@ -0,0 +1,124 @@ +#include <array> +#include <algorithm> +#include <cassert> +#include <cstdint> +#include <tuple> +#include <vector> + +#include "benchmark/benchmark.h" + +#include "CartesianBenchmarks.hpp" +#include "GenerateInput.hpp" + +namespace { + +template <typename I, typename N> +std::array<I, 10> every_10th_percentile_N(I first, N n) { + N step = n / 10; + std::array<I, 10> res; + + for (size_t i = 0; i < 10; ++i) { + res[i] = first; + std::advance(first, step); + } + + return res; +} + +template <class IntT> +struct TestIntBase { + static std::vector<IntT> generateInput(size_t size) { + std::vector<IntT> Res(size); + std::generate(Res.begin(), Res.end(), + [] { return getRandomInteger<IntT>(); }); + return Res; + } +}; + +struct TestInt32 : TestIntBase<std::int32_t> { + static constexpr const char* Name = "TestInt32"; +}; + +struct TestInt64 : TestIntBase<std::int64_t> { + static constexpr const char* Name = "TestInt64"; +}; + +struct TestUint32 : TestIntBase<std::uint32_t> { + static constexpr const char* Name = "TestUint32"; +}; + +struct TestMediumString { + static constexpr const char* Name = "TestMediumString"; + static constexpr size_t StringSize = 32; + + static std::vector<std::string> generateInput(size_t size) { + std::vector<std::string> Res(size); + std::generate(Res.begin(), Res.end(), [] { return getRandomString(StringSize); }); + return Res; + } +}; + +using AllTestTypes = std::tuple<TestInt32, TestInt64, TestUint32, TestMediumString>; + +struct LowerBoundAlg { + template <class I, class V> + I operator()(I first, I last, const V& value) const { + return std::lower_bound(first, last, value); + } + + static constexpr const char* Name = "LowerBoundAlg"; +}; + +struct UpperBoundAlg { + template <class I, class V> + I operator()(I first, I last, const V& value) const { + return std::upper_bound(first, last, value); + } + + static constexpr const char* Name = "UpperBoundAlg"; +}; + +struct EqualRangeAlg { + template <class I, class V> + std::pair<I, I> operator()(I first, I last, const V& value) const { + return std::equal_range(first, last, value); + } + + static constexpr const char* Name = "EqualRangeAlg"; +}; + +using AllAlgs = std::tuple<LowerBoundAlg, UpperBoundAlg, EqualRangeAlg>; + +template <class Alg, class TestType> +struct PartitionPointBench { + size_t Quantity; + + std::string name() const { + return std::string("PartitionPointBench_") + Alg::Name + "_" + + TestType::Name + '/' + std::to_string(Quantity); + } + + void run(benchmark::State& state) const { + auto Data = TestType::generateInput(Quantity); + std::sort(Data.begin(), Data.end()); *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201901191005.x0JA5asp041107>