svn commit: r292928 - in vendor/libc++/dist: . cmake cmake/Modules docs docs/DesignDocs include include/experimental include/ext include/support/musl lib src src/include src/support src/support/new...

Dimitry Andric dim at FreeBSD.org
Wed Dec 30 11:54:11 UTC 2015


Author: dim
Date: Wed Dec 30 11:54:09 2015
New Revision: 292928
URL: https://svnweb.freebsd.org/changeset/base/292928

Log:
  Vendor import of libc++ trunk r256633:
  https://llvm.org/svn/llvm-project/libcxx/trunk@256633

Added:
  vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake
  vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake
  vendor/libc++/dist/docs/
  vendor/libc++/dist/docs/BuildingLibcxx.rst
  vendor/libc++/dist/docs/CMakeLists.txt   (contents, props changed)
  vendor/libc++/dist/docs/DesignDocs/
  vendor/libc++/dist/docs/DesignDocs/ABIVersioning.rst
  vendor/libc++/dist/docs/DesignDocs/CapturingConfigInfo.rst
  vendor/libc++/dist/docs/Makefile.sphinx   (contents, props changed)
  vendor/libc++/dist/docs/README.txt   (contents, props changed)
  vendor/libc++/dist/docs/TestingLibcxx.rst
  vendor/libc++/dist/docs/UsingLibcxx.rst
  vendor/libc++/dist/docs/conf.py   (contents, props changed)
  vendor/libc++/dist/docs/index.rst
  vendor/libc++/dist/include/__config_site.in   (contents, props changed)
  vendor/libc++/dist/include/__nullptr
  vendor/libc++/dist/include/ctype.h   (contents, props changed)
  vendor/libc++/dist/include/errno.h   (contents, props changed)
  vendor/libc++/dist/include/experimental/any
  vendor/libc++/dist/include/experimental/functional
  vendor/libc++/dist/include/float.h   (contents, props changed)
  vendor/libc++/dist/include/inttypes.h   (contents, props changed)
  vendor/libc++/dist/include/math.h   (contents, props changed)
  vendor/libc++/dist/include/setjmp.h   (contents, props changed)
  vendor/libc++/dist/include/stddef.h   (contents, props changed)
  vendor/libc++/dist/include/stdio.h   (contents, props changed)
  vendor/libc++/dist/include/stdlib.h   (contents, props changed)
  vendor/libc++/dist/include/support/musl/
  vendor/libc++/dist/include/support/musl/xlocale.h   (contents, props changed)
  vendor/libc++/dist/include/wchar.h   (contents, props changed)
  vendor/libc++/dist/include/wctype.h   (contents, props changed)
  vendor/libc++/dist/src/any.cpp   (contents, props changed)
  vendor/libc++/dist/src/include/
  vendor/libc++/dist/src/include/atomic_support.h   (contents, props changed)
  vendor/libc++/dist/src/include/config_elast.h   (contents, props changed)
  vendor/libc++/dist/test/libcxx/atomics/
  vendor/libc++/dist/test/libcxx/atomics/libcpp-has-no-threads.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/atomics/libcpp-has-no-threads.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/containers/sequences/
  vendor/libc++/dist/test/libcxx/containers/sequences/deque/
  vendor/libc++/dist/test/libcxx/containers/sequences/deque/incomplete.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/containers/sequences/vector/
  vendor/libc++/dist/test/libcxx/containers/sequences/vector/asan.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/containers/sequences/vector/asan_throw.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/experimental/any/
  vendor/libc++/dist/test/libcxx/experimental/any/size_and_alignment.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/experimental/any/small_type.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/experimental/any/version.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.cons/default_throws_bad_alloc.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/thread/
  vendor/libc++/dist/test/libcxx/thread/futures/
  vendor/libc++/dist/test/libcxx/thread/futures/version.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/type_traits/lazy_metafunctions.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/utilities/time/
  vendor/libc++/dist/test/libcxx/utilities/time/date.time/
  vendor/libc++/dist/test/libcxx/utilities/time/date.time/asctime.thread-unsafe.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/utilities/time/date.time/ctime.thread-unsafe.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/utilities/time/date.time/gmtime.thread-unsafe.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/libcxx/utilities/time/date.time/localtime.thread-unsafe.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/atomics/atomics.flag/init03.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_helpers.h   (contents, props changed)
  vendor/libc++/dist/test/std/containers/associative/map/allocator_mismatch.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/associative/multimap/allocator_mismatch.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/associative/multiset/allocator_mismatch.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/associative/set/allocator_mismatch.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/sequences/array/array.tuple/get_const_rv.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/sequences/deque/allocator_mismatch.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/sequences/forwardlist/allocator_mismatch.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/sequences/list/allocator_mismatch.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/sequences/list/incomplete_type.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/sequences/vector/allocator_mismatch.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/allocator_mismatch.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/clear.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/emplace.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/emplace_hint.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_const_iter.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db1.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_db2.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db1.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db2.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db3.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_iter_iter_db4.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_key.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/erase_range.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_const_lvalue.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_const_lvalue.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_hint_rvalue.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_init.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_or_assign.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_range.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/insert_rvalue.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.modifiers/try.emplace.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.multimap/allocator_mismatch.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.multiset/allocator_mismatch.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/containers/unord/unord.set/allocator_mismatch.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/depr/depr.c.headers/extern_c.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/depr/depr.c.headers/math_h_isinf.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/depr/depr.c.headers/math_h_isnan.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/algorithms/alg.search/
  vendor/libc++/dist/test/std/experimental/algorithms/alg.search/search.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/
  vendor/libc++/dist/test/std/experimental/any/any.class/
  vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/
  vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/copy.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/move.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/value.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/value_non_copyable_assign.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/
  vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/copy.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/default.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/move.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/non_copyable_value.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/value.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.class/any.modifiers/
  vendor/libc++/dist/test/std/experimental/any/any.class/any.modifiers/clear.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.class/any.modifiers/swap.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.class/any.observers/
  vendor/libc++/dist/test/std/experimental/any/any.class/any.observers/empty.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.class/any.observers/type.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.class/nothing_to_do.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.nonmembers/
  vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/
  vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/any_cast_pointer.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/const_correctness.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/reference_types.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/any/any.nonmembers/swap.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/
  vendor/libc++/dist/test/std/experimental/func/func.searchers/
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/default.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/hash.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/hash.pred.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore/pred.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/default.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/hash.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/hash.pred.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.boyer_moore_horspool/pred.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/default.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/default.pred.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/func.searchers.default.creation/
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/func.searchers.default.creation/make_default_searcher.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/func.searchers/func.searchers.default/func.searchers.default.creation/make_default_searcher.pred.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/func.searchers/nothing_to_do.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/header.functional.synop/
  vendor/libc++/dist/test/std/experimental/func/header.functional.synop/includes.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/experimental/func/nothing_to_do.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/bad_repeat.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/strings/basic.string/allocator_mismatch.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/thread/thread.condition/thread.condition.condvarany/wait_terminates.sh.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/copy_assign.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/allocator.adaptor/scoped.adaptor.operators/move_assign.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.isbind/is_bind_expression_03.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/function.objects/func.require/bullet_1_and_2.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/function.objects/func.require/bullet_3_and_4.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/function.objects/func.require/bullet_5.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/function.objects/func.require/invoke_helpers.h   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_nullptr.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/intseq/intseq.make/make_integer_seq_fallback.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/intseq/intseq.make/make_integer_seq_fallback.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.logical/
  vendor/libc++/dist/test/std/utilities/meta/meta.logical/conjunction.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.logical/disjunction.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.logical/negation.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_array.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_class.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_enum.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_floating_point.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_function.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_integral.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_lvalue_reference.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_member_object_pointer.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_member_pointer.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_null_pointer.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_pointer.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_rvalue_reference.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_union.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/is_void.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_arithmetic.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_compound.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_fundamental.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_member_pointer.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_object.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_reference.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.comp/is_scalar.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/date.time/
  vendor/libc++/dist/test/std/utilities/time/date.time/ctime.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.alg/
  vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.alg/abs.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.alg/abs.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/ceil.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/ceil.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/floor.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/floor.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/round.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.duration/time.duration.cast/round.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/ceil.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/ceil.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/floor.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/floor.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/round.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/time/time.point/time.point.cast/round.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_const_rv.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/get_const_rv.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/utility/as_const/
  vendor/libc++/dist/test/std/utilities/utility/as_const/as_const.fail.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/utility/as_const/as_const.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/utility/pairs/pair.astuple/get_const_rv.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/default-sfinae.pass.cpp   (contents, props changed)
  vendor/libc++/dist/test/support/any_helpers.h   (contents, props changed)
  vendor/libc++/dist/test/support/disable_missing_braces_warning.h   (contents, props changed)
  vendor/libc++/dist/utils/gen_link_script/
  vendor/libc++/dist/utils/gen_link_script/gen_link_script.py   (contents, props changed)
  vendor/libc++/dist/www/kona.html   (contents, props changed)
Deleted:
  vendor/libc++/dist/src/config_elast.h
  vendor/libc++/dist/src/support/atomic_support.h
  vendor/libc++/dist/src/support/newlib/
  vendor/libc++/dist/test/std/atomics/libcpp-has-no-threads.fail.cpp
  vendor/libc++/dist/test/std/atomics/libcpp-has-no-threads.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/vector/asan.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/vector/asan_throw.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.map/unorder.map.modifiers/
  vendor/libc++/dist/test/std/thread/futures/test_allocator.h
  vendor/libc++/dist/test/std/thread/futures/version.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.condition/thread.condition.condvarany/wait.exception.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.exception.pass.cpp
  vendor/libc++/dist/test/std/utilities/date.time/
  vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/no-variadics.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke_int_0.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke_no_variadics.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke_void_0.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert01.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert02.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert03.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default01.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default02.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move01.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move02.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert01.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert02.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert03.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert04.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert05.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert06.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/move_convert07.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer01.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer02.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer03.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter01.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter02.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter03.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter04.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter05.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter06.pass.cpp
Modified:
  vendor/libc++/dist/CMakeLists.txt
  vendor/libc++/dist/TODO.TXT
  vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake
  vendor/libc++/dist/cmake/config-ix.cmake
  vendor/libc++/dist/include/CMakeLists.txt
  vendor/libc++/dist/include/__config
  vendor/libc++/dist/include/__functional_03
  vendor/libc++/dist/include/__functional_base
  vendor/libc++/dist/include/__functional_base_03
  vendor/libc++/dist/include/__hash_table
  vendor/libc++/dist/include/__locale
  vendor/libc++/dist/include/__mutex_base
  vendor/libc++/dist/include/__split_buffer
  vendor/libc++/dist/include/__std_stream
  vendor/libc++/dist/include/__tree
  vendor/libc++/dist/include/__tuple
  vendor/libc++/dist/include/algorithm
  vendor/libc++/dist/include/array
  vendor/libc++/dist/include/atomic
  vendor/libc++/dist/include/bitset
  vendor/libc++/dist/include/cctype
  vendor/libc++/dist/include/cerrno
  vendor/libc++/dist/include/cfenv
  vendor/libc++/dist/include/cfloat
  vendor/libc++/dist/include/chrono
  vendor/libc++/dist/include/cinttypes
  vendor/libc++/dist/include/cmath
  vendor/libc++/dist/include/complex.h
  vendor/libc++/dist/include/condition_variable
  vendor/libc++/dist/include/csetjmp
  vendor/libc++/dist/include/cstddef
  vendor/libc++/dist/include/cstdio
  vendor/libc++/dist/include/cstdlib
  vendor/libc++/dist/include/cwchar
  vendor/libc++/dist/include/cwctype
  vendor/libc++/dist/include/deque
  vendor/libc++/dist/include/exception
  vendor/libc++/dist/include/experimental/algorithm
  vendor/libc++/dist/include/experimental/dynarray
  vendor/libc++/dist/include/ext/hash_map
  vendor/libc++/dist/include/forward_list
  vendor/libc++/dist/include/functional
  vendor/libc++/dist/include/future
  vendor/libc++/dist/include/ios
  vendor/libc++/dist/include/istream
  vendor/libc++/dist/include/iterator
  vendor/libc++/dist/include/list
  vendor/libc++/dist/include/locale
  vendor/libc++/dist/include/map
  vendor/libc++/dist/include/memory
  vendor/libc++/dist/include/module.modulemap
  vendor/libc++/dist/include/mutex
  vendor/libc++/dist/include/ostream
  vendor/libc++/dist/include/random
  vendor/libc++/dist/include/ratio
  vendor/libc++/dist/include/regex
  vendor/libc++/dist/include/scoped_allocator
  vendor/libc++/dist/include/set
  vendor/libc++/dist/include/sstream
  vendor/libc++/dist/include/streambuf
  vendor/libc++/dist/include/string
  vendor/libc++/dist/include/system_error
  vendor/libc++/dist/include/thread
  vendor/libc++/dist/include/tuple
  vendor/libc++/dist/include/type_traits
  vendor/libc++/dist/include/unordered_map
  vendor/libc++/dist/include/utility
  vendor/libc++/dist/include/valarray
  vendor/libc++/dist/include/vector
  vendor/libc++/dist/lib/CMakeLists.txt
  vendor/libc++/dist/lib/libc++abi2.exp
  vendor/libc++/dist/src/exception.cpp
  vendor/libc++/dist/src/future.cpp
  vendor/libc++/dist/src/ios.cpp
  vendor/libc++/dist/src/locale.cpp
  vendor/libc++/dist/src/memory.cpp
  vendor/libc++/dist/src/mutex.cpp
  vendor/libc++/dist/src/new.cpp
  vendor/libc++/dist/src/stdexcept.cpp
  vendor/libc++/dist/src/system_error.cpp
  vendor/libc++/dist/src/typeinfo.cpp
  vendor/libc++/dist/test/CMakeLists.txt
  vendor/libc++/dist/test/libcxx/compiler.py
  vendor/libc++/dist/test/libcxx/double_include.sh.cpp
  vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.cons/default.pass.cpp
  vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.data/default.pass.cpp
  vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.overview/at.pass.cpp
  vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.overview/front_back.pass.cpp
  vendor/libc++/dist/test/libcxx/test/config.py
  vendor/libc++/dist/test/libcxx/test/format.py
  vendor/libc++/dist/test/libcxx/test/target_info.py
  vendor/libc++/dist/test/libcxx/test/tracing.py
  vendor/libc++/dist/test/libcxx/type_traits/convert_to_integral.pass.cpp
  vendor/libc++/dist/test/libcxx/utilities/memory/util.smartptr/race_condition.pass.cpp
  vendor/libc++/dist/test/lit.site.cfg.in
  vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.partitions/stable_partition.pass.cpp
  vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/mismatch/mismatch.pass.cpp
  vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/mismatch/mismatch_pred.pass.cpp
  vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.set.operations/includes/includes.pass.cpp
  vendor/libc++/dist/test/std/algorithms/alg.sorting/alg.set.operations/includes/includes_comp.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.flag/atomic_flag_clear.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.flag/atomic_flag_clear_explicit.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.flag/clear.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.flag/default.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.flag/init.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.generic/address.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.generic/bool.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.generic/integral.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.generic/trivially_copyable.fail.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_exchange_explicit.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_add_explicit.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_and.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_and_explicit.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_or.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_or_explicit.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_sub_explicit.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_xor.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_fetch_xor_explicit.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_init.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_is_lock_free.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_load_explicit.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_store_explicit.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_var_init.pass.cpp
  vendor/libc++/dist/test/std/atomics/atomics.types.operations/atomics.types.operations.req/ctor.pass.cpp
  vendor/libc++/dist/test/std/containers/associative/map/compare.pass.cpp
  vendor/libc++/dist/test/std/containers/associative/map/map.access/at.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.cons/default_noexcept.pass.cpp
  vendor/libc++/dist/test/std/containers/associative/map/map.cons/dtor_noexcept.pass.cpp
  vendor/libc++/dist/test/std/containers/associative/map/map.cons/move_assign_noexcept.pass.cpp
  vendor/libc++/dist/test/std/containers/associative/map/map.cons/move_noexcept.pass.cpp
  vendor/libc++/dist/test/std/containers/associative/map/map.special/swap_noexcept.pass.cpp
  vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/default_noexcept.pass.cpp
  vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/dtor_noexcept.pass.cpp
  vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move_assign_noexcept.pass.cpp
  vendor/libc++/dist/test/std/containers/associative/multimap/multimap.cons/move_noexcept.pass.cpp
  vendor/libc++/dist/test/std/containers/associative/multimap/multimap.special/swap_noexcept.pass.cpp
  vendor/libc++/dist/test/std/containers/associative/multimap/scary.pass.cpp
  vendor/libc++/dist/test/std/containers/associative/multiset/scary.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/array/array.cons/initializer_list.pass.cpp
  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.fill/fill.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/array/array.size/size.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/array/array.special/swap.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/array/array.swap/swap.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/get.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/array/array.tuple/get_const.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/array/array.tuple/get_rv.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/array/at.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/array/begin.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/array/front_back.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/array/indexing.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/deque/deque.capacity/resize_size.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/deque/deque.capacity/resize_size_value.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/deque/deque.capacity/shrink_to_fit.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/assign_iter_iter.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/deque/deque.cons/assign_size_value.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/emplace.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/insert_rvalue.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/insert_size_value.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/insert_value.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_back_exception_safety.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/deque/deque.modifiers/push_front_exception_safety.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/move.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.cons/move_alloc.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_exception_safety.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_one.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.spec/equal.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/forwardlist/forwardlist.spec/relational.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/insert_iter_iter_iter.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/insert_iter_size_value.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/insert_iter_value.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/push_back_exception_safety.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/list/list.modifiers/push_front_exception_safety.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/vector.bool/move_assign_noexcept.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/vector/vector.cons/move_assign_noexcept.pass.cpp
  vendor/libc++/dist/test/std/containers/sequences/vector/vector.modifiers/push_back_exception_safety.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.map/bucket_count.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.map/compare.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.map/load_factor.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.map/max_bucket_count.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.map/max_load_factor.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.map/rehash.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.map/reserve.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.map/swap_member.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.map/unord.map.cnstr/move.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.swap/swap_non_member.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/unord.multimap.swap/swap_noexcept.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.multiset/rehash.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.multiset/reserve.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.set/rehash.pass.cpp
  vendor/libc++/dist/test/std/containers/unord/unord.set/reserve.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/auto.ptr.conv/convert_to_auto_ptr_ref.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.auto.ptr/auto.ptr/element_type.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.c.headers/inttypes_h.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.c.headers/locale_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/setjmp_h.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.c.headers/signal_h.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.c.headers/stdarg_h.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.c.headers/stddef_h.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.c.headers/stdint_h.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.c.headers/stdio_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/time_h.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.c.headers/wchar_h.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.ios.members/io_state.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.ios.members/open_mode.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.ios.members/seek_dir.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.ios.members/streamoff.pass.cpp
  vendor/libc++/dist/test/std/depr/depr.ios.members/streampos.pass.cpp
  vendor/libc++/dist/test/std/depr/exception.unexpected/unexpected.handler/unexpected_handler.pass.cpp
  vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.overview/error_category.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/copy.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/emplace.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.assign/move.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/const_T.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/copy.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/move.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/value.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.observe/value_const.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.object/optional.object.swap/swap.pass.cpp
  vendor/libc++/dist/test/std/experimental/optional/optional.specalg/swap.pass.cpp
  vendor/libc++/dist/test/std/experimental/string.view/string.view.access/at.pass.cpp
  vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.pointer_size.pass.cpp
  vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.size_size_sv.pass.cpp
  vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp
  vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp
  vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/copy.pass.cpp
  vendor/libc++/dist/test/std/experimental/string.view/string.view.ops/substr.pass.cpp
  vendor/libc++/dist/test/std/experimental/utilities/tuple/tuple.apply/arg_type.pass.cpp
  vendor/libc++/dist/test/std/experimental/utilities/tuple/tuple.apply/extended_types.pass.cpp
  vendor/libc++/dist/test/std/experimental/utilities/tuple/tuple.apply/types.pass.cpp
  vendor/libc++/dist/test/std/input.output/file.streams/c.files/cstdio.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_sentry/destruct.pass.cpp
  vendor/libc++/dist/test/std/input.output/iostreams.base/ios.base/ios.types/ios_failure/ctor_string_error_code.pass.cpp
  vendor/libc++/dist/test/std/input.output/iostreams.base/ios/basic.ios.members/copyfmt.pass.cpp
  vendor/libc++/dist/test/std/input.output/iostreams.base/ios/basic.ios.members/set_rdbuf.pass.cpp
  vendor/libc++/dist/test/std/input.output/iostreams.base/ios/iostate.flags/clear.pass.cpp
  vendor/libc++/dist/test/std/input.output/iostreams.base/ios/iostate.flags/exceptions_iostate.pass.cpp
  vendor/libc++/dist/test/std/input.output/iostreams.base/ios/iostate.flags/setstate.pass.cpp
  vendor/libc++/dist/test/std/input.output/string.streams/stringbuf/stringbuf.virtuals/overflow.pass.cpp
  vendor/libc++/dist/test/std/input.output/string.streams/stringbuf/stringbuf.virtuals/pbackfail.pass.cpp
  vendor/libc++/dist/test/std/iterators/iterator.primitives/iterator.operations/next.pass.cpp
  vendor/libc++/dist/test/std/iterators/stream.iterators/ostream.iterator/ostream.iterator.ops/assign_t.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.dynamic/alloc.errors/new.handler/new_handler.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_nothrow.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.exception/except.nested/assign.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.exception/except.nested/ctor_copy.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.exception/except.nested/ctor_default.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.exception/except.nested/rethrow_if_nested.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.exception/except.nested/rethrow_nested.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.exception/except.nested/throw_with_nested.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.exception/exception.terminate/terminate.handler/terminate_handler.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.exception/propagation/current_exception.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.exception/propagation/make_exception_ptr.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.exception/propagation/rethrow_exception.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.exception/uncaught/uncaught_exception.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.exception/uncaught/uncaught_exceptions.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.runtime/csignal.pass.cpp
  vendor/libc++/dist/test/std/language.support/support.runtime/cstdarg.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.types/nullptr_t.pass.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/char16_t_in.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_length.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_out.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char16_t_unshift.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_in.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_length.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_out.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char32_t_unshift.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char_in.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char_length.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char_out.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/char_unshift.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/utf_sanity_check.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_in.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.codecvt/locale.codecvt.members/wchar_t_length.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.ctype/locale.codecvt/locale.codecvt.members/wchar_t_unshift.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp
  vendor/libc++/dist/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp
  vendor/libc++/dist/test/std/localization/locales/locale.convenience/conversions/conversions.string/ctor_err_string.pass.cpp
  vendor/libc++/dist/test/std/localization/locales/locale.global.templates/use_facet.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.members/combine.pass.cpp
  vendor/libc++/dist/test/std/numerics/rand/rand.device/ctor.pass.cpp
  vendor/libc++/dist/test/std/numerics/rand/rand.device/eval.pass.cpp
  vendor/libc++/dist/test/std/re/re.alg/re.alg.search/grep.pass.cpp
  vendor/libc++/dist/test/std/re/re.regex/re.regex.assign/assign.pass.cpp
  vendor/libc++/dist/test/std/re/re.regex/re.regex.construct/bad_escape.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.access/at.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.capacity/capacity.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.capacity/max_size.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.capacity/resize_size.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.capacity/resize_size_char.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.cons/move_assign_noexcept.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.cons/substr.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_append/string_size_size.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/string.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_assign/string_size_size.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_copy/copy.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_erase/size_size.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_pointer_size.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_size_char.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_string.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_insert/size_string_size_size.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_pointer_size.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_size_char.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_pointer_size.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_string.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_compare/size_size_string_size_size.pass.cpp
  vendor/libc++/dist/test/std/strings/basic.string/string.ops/string_substr/substr.pass.cpp
  vendor/libc++/dist/test/std/strings/c.strings/cctype.pass.cpp
  vendor/libc++/dist/test/std/strings/c.strings/cwchar.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/stold.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/thread/futures/futures.async/async.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.async/async_race.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/alloc_ctor.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/copy_assign.fail.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/copy_ctor.fail.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/default.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/dtor.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/get_future.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/move_assign.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/move_ctor.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/set_exception.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/set_exception_at_thread_exit.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/set_lvalue.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/set_lvalue_at_thread_exit.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/set_rvalue.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/set_value_at_thread_exit_const.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/set_value_at_thread_exit_void.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/set_value_const.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/set_value_void.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/swap.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.promise/uses_allocator.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.shared_future/copy_assign.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.shared_future/copy_ctor.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.shared_future/ctor_future.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.shared_future/dtor.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.shared_future/get.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.shared_future/move_assign.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.shared_future/move_ctor.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.shared_future/wait.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.shared_future/wait_for.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.shared_future/wait_until.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/assign_copy.fail.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/assign_move.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor1.fail.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor2.fail.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor_copy.fail.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor_default.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor_func.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor_func_alloc.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/ctor_move.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/dtor.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/get_future.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/make_ready_at_thread_exit.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/operator.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/reset.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.members/swap.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.nonmembers/swap.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/futures.task.nonmembers/uses_allocator.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.tas/types.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.unique_future/copy_assign.fail.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.unique_future/copy_ctor.fail.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.unique_future/dtor.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.unique_future/get.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.unique_future/share.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.unique_future/wait.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.unique_future/wait_for.pass.cpp
  vendor/libc++/dist/test/std/thread/futures/futures.unique_future/wait_until.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.condition/notify_all_at_thread_exit.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.condition/thread.condition.condvar/notify_one.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock.algorithm/try_lock.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/default.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_assign.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/move_ctor.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_adopt_lock.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_defer_lock.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_duration.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.cons/mutex_time_point.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.shared/thread.lock.shared.locking/lock.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock_for.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/try_lock_until.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/unlock.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.mod/member_swap.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.mod/nonmember_swap.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.mod/release.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.obs/mutex.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.obs/op_bool.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.obs/owns_lock.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/types.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.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock_for.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/try_lock_until.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.unique/thread.lock.unique.locking/unlock.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/assign.fail.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/copy.fail.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/lock_shared.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/lock_shared.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_for.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_for.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_shared_until.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/thread.sharedtimedmutex.class/try_lock_until.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.mutex/thread.once/thread.once.callonce/call_once.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.assign/move2.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.class/thread.thread.destr/dtor.pass.cpp
  vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.class/thread.thread.member/detach.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/copy.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_function_object.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_int_0.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_lvalue.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_rvalue.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/bind/func.bind/func.bind.bind/invoke_void_0.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/bind/func.bind/func.bind.isbind/is_bind_expression.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/func.invoke/invoke.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/func.memfn/member_function.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke.fail.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke.pass.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/refwrap/refwrap.const/type_ctor.fail.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/refwrap/refwrap.helpers/ref_1.fail.cpp
  vendor/libc++/dist/test/std/utilities/function.objects/unord.hash/integral.pass.cpp
  vendor/libc++/dist/test/std/utilities/intseq/intseq.make/make_integer_seq.fail.cpp
  vendor/libc++/dist/test/std/utilities/intseq/intseq.make/make_integer_seq.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/construct.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/default.allocator/allocator.members/max_size.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy_n.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.fill.n/uninitialized_fill_n.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/storage.iterator/raw_storag_iterator.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/deleter.h
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/move01.fail.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move01.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/move02.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter04.fail.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move01.fail.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move02.fail.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move03.fail.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move04.fail.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert01.fail.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert02.fail.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert03.fail.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert04.fail.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.asgn/move_convert13.fail.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/auto_pointer.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/pointer_deleter04.fail.cpp
  vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/auto_ptr.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_allocator_throw.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/nullptr_t_deleter_throw.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_allocator_throw.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_deleter_throw.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/pointer_throw.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/weak_ptr.pass.cpp
  vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.weak/util.smartptr.ownerless/owner_less.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_base_of.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_convertible_fallback.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.rel/is_same.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.trans/meta.trans.other/common_type.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.trans/meta.trans.ref/add_lvalue_ref.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.prop.query/extent.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary.prop.query/rank.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary.prop.query/void_t.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/nullptr.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/has_virtual_destructor.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_abstract.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_assignable.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_const.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_assignable.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_copy_constructible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_default_constructible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_destructible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_empty.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_final.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_literal_type.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_assignable.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_move_constructible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_assignable.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_constructible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_assignable.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_constructible.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/meta/meta.unary/meta.unary.prop/is_nothrow_destructible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_assignable.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_constructible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_pod.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_polymorphic.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_standard_layout.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivial.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_assignable.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_constructible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_assignable.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copy_constructible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_copyable.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_default_constructible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_destructible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_assignable.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_trivially_move_constructible.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp
  vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.prop/is_volatile.pass.cpp
  vendor/libc++/dist/test/std/utilities/ratio/ratio.comparison/ratio_equal.pass.cpp
  vendor/libc++/dist/test/std/utilities/ratio/ratio.comparison/ratio_greater.pass.cpp
  vendor/libc++/dist/test/std/utilities/ratio/ratio.comparison/ratio_greater_equal.pass.cpp
  vendor/libc++/dist/test/std/utilities/ratio/ratio.comparison/ratio_less.pass.cpp
  vendor/libc++/dist/test/std/utilities/ratio/ratio.comparison/ratio_less_equal.pass.cpp
  vendor/libc++/dist/test/std/utilities/ratio/ratio.comparison/ratio_not_equal.pass.cpp
  vendor/libc++/dist/test/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp
  vendor/libc++/dist/test/std/utilities/template.bitset/bitset.cons/string_ctor.pass.cpp
  vendor/libc++/dist/test/std/utilities/template.bitset/bitset.cons/ull_ctor.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/time/time.traits/time.traits.is_fp/treat_as_floating_point.pass.cpp
  vendor/libc++/dist/test/std/utilities/tuple/tuple.tuple/tuple.elem/tuple.by.type.pass.cpp
  vendor/libc++/dist/test/std/utilities/utility/declval/declval.pass.cpp
  vendor/libc++/dist/test/std/utilities/utility/forward/move_if_noexcept.pass.cpp
  vendor/libc++/dist/test/std/utilities/utility/pairs/pair.astuple/pairs.by.type.pass.cpp
  vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp
  vendor/libc++/dist/test/std/utilities/utility/pairs/pairs.pair/swap.pass.cpp
  vendor/libc++/dist/test/support/allocators.h
  vendor/libc++/dist/test/support/count_new.hpp
  vendor/libc++/dist/test/support/test_allocator.h
  vendor/libc++/dist/test/support/test_macros.h
  vendor/libc++/dist/test/testit
  vendor/libc++/dist/www/cxx1y_status.html
  vendor/libc++/dist/www/cxx1z_status.html
  vendor/libc++/dist/www/index.html
  vendor/libc++/dist/www/ts1z_status.html

Modified: vendor/libc++/dist/CMakeLists.txt
==============================================================================
--- vendor/libc++/dist/CMakeLists.txt	Wed Dec 30 11:53:21 2015	(r292927)
+++ vendor/libc++/dist/CMakeLists.txt	Wed Dec 30 11:54:09 2015	(r292928)
@@ -3,13 +3,16 @@
 #===============================================================================
 # Setup Project
 #===============================================================================
-
-project(libcxx CXX C)
 cmake_minimum_required(VERSION 2.8)
 
 if(POLICY CMP0042)
   cmake_policy(SET CMP0042 NEW) # Set MACOSX_RPATH=YES by default
 endif()
+if(POLICY CMP0022)
+  cmake_policy(SET CMP0022 NEW) # Required when interacting with LLVM and Clang
+endif()
+
+project(libcxx CXX C)
 
 set(PACKAGE_NAME libcxx)
 set(PACKAGE_VERSION trunk-svn)
@@ -30,61 +33,40 @@ MACRO_ENSURE_OUT_OF_SOURCE_BUILD(
  build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there."
  )
 
-if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
-  set(LIBCXX_LIBDIR_SUFFIX "" CACHE STRING
-      "Define suffix of library directory name (32/64)")
-
-  set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
-  set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
-
-  set(LIBCXX_BUILT_STANDALONE 1)
-else()
-  set(LIBCXX_LIBDIR_SUFFIX ${LLVM_LIBDIR_SUFFIX})
+# Find the LLVM sources and simulate LLVM CMake options.
+include(HandleOutOfTreeLLVM)
+if (LIBCXX_BUILT_STANDALONE AND NOT LLVM_FOUND)
+  message(WARNING "UNSUPPORTED LIBCXX CONFIGURATION DETECTED: "
+                  "llvm-config not found and LLVM_PATH not defined.\n"
+                  "Reconfigure with -DLLVM_CONFIG=path/to/llvm-config "
+                  "or -DLLVM_PATH=path/to/llvm-source-root.")
 endif()
 
 #===============================================================================
 # Setup CMake Options
 #===============================================================================
 
-# Define options.
-option(LIBCXX_ENABLE_EXCEPTIONS "Use exceptions." ON)
-option(LIBCXX_ENABLE_RTTI "Use run time type information." ON)
+# Basic options ---------------------------------------------------------------
 option(LIBCXX_ENABLE_ASSERTIONS "Enable assertions independent of build mode." ON)
-option(LIBCXX_ENABLE_PEDANTIC "Compile with pedantic enabled." ON)
-option(LIBCXX_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF)
-option(LIBCXX_ENABLE_CXX1Y "Enable -std=c++1y and use of c++1y language features if the compiler supports it." OFF)
 option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON)
-option(LIBCXX_ENABLE_GLOBAL_FILESYSTEM_NAMESPACE "Build libc++ with support for the global filesystem namespace." ON)
-option(LIBCXX_ENABLE_STDIN "Build libc++ with support for stdin/std::cin." ON)
-option(LIBCXX_ENABLE_STDOUT "Build libc++ with support for stdout/std::cout." ON)
-option(LIBCXX_ENABLE_THREADS "Build libc++ with support for threads." ON)
-option(LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS "Build libc++ with support for thread-unsafe C functions" ON)
-option(LIBCXX_BUILD_32_BITS "Build 32 bit libc++" OFF)
-option(LIBCXX_ENABLE_MONOTONIC_CLOCK
-  "Build libc++ with support for a monotonic clock.
-   This option may only be used when LIBCXX_ENABLE_THREADS=OFF." ON)
+
+option(LIBCXX_INCLUDE_TESTS "Build the libc++ tests." ${LLVM_INCLUDE_TESTS})
+option(LIBCXX_INCLUDE_DOCS "Build the libc++ documentation." ${LLVM_INCLUDE_DOCS})
+set(LIBCXX_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING
+    "Define suffix of library directory name (32/64)")
 option(LIBCXX_INSTALL_HEADERS "Install the libc++ headers." ON)
+option(LIBCXX_INSTALL_LIBRARY "Install the libc++ library." ON)
 option(LIBCXX_INSTALL_SUPPORT_HEADERS "Install libc++ support headers." ON)
-option(LIBCXX_GENERATE_COVERAGE "Enable generating code coverage." OFF)
-set(LIBCXX_COVERAGE_LIBRARY "" CACHE STRING
-       "The Profile-rt library used to build with code coverage")
-option(LIBCXX_ENABLE_STATIC_ABI_LIBRARY "Statically link the ABI library" OFF)
-set(LIBCXX_SYSROOT "" CACHE STRING "Use alternate sysroot.")
-set(LIBCXX_GCC_TOOLCHAIN "" CACHE STRING "Use alternate GCC toolchain.")
-if (LIBCXX_BUILT_STANDALONE)
-  set(LLVM_USE_SANITIZER "" CACHE STRING
-      "Define the sanitizer used to build the library and tests")
-endif()
-
-if (LIBCXX_ENABLE_STATIC_ABI_LIBRARY)
-  if (APPLE)
-    message(FATAL_ERROR "LIBCXX_ENABLE_STATIC_ABI_LIBRARY is not supported on OS X")
-  else()
-    message(WARNING "LIBCXX_ENABLE_STATIC_ABI_LIBRARY is an experimental option")
-  endif()
-endif()
+set(LIBCXX_ABI_VERSION 1 CACHE STRING "ABI version of libc++.")
+option(LIBCXX_ABI_UNSTABLE "Unstable ABI of libc++." OFF)
 
+# ABI Library options ---------------------------------------------------------
+set(LIBCXX_CXX_ABI "${LIBCXX_CXX_ABI}" CACHE STRING
+    "Specify C++ ABI library to use." FORCE)
 set(CXXABIS none libcxxabi libcxxrt libstdc++ libsupc++)
+set_property(CACHE LIBCXX_CXX_ABI PROPERTY STRINGS ;${CXXABIS})
+
+# Setup the default options if LIBCXX_CXX_ABI is not specified.
 if (NOT LIBCXX_CXX_ABI)
   if (NOT DEFINED LIBCXX_BUILT_STANDALONE AND
       IS_DIRECTORY "${CMAKE_SOURCE_DIR}/projects/libcxxabi")
@@ -97,14 +79,139 @@ if (NOT LIBCXX_CXX_ABI)
 else ()
   set(LIBCXX_CXX_ABI_LIBNAME "${LIBCXX_CXX_ABI}")
 endif ()
-set(LIBCXX_CXX_ABI "${LIBCXX_CXX_ABI}" CACHE STRING
-    "Specify C++ ABI library to use." FORCE)
-set_property(CACHE LIBCXX_CXX_ABI PROPERTY STRINGS ;${CXXABIS})
+
+# Use a static copy of the ABI library when linking libc++. This option
+# cannot be used with LIBCXX_ENABLE_ABI_LINKER_SCRIPT.
+option(LIBCXX_ENABLE_STATIC_ABI_LIBRARY "Statically link the ABI library" OFF)
+
+# Generate and install a linker script inplace of libc++.so. The linker script
+# will link libc++ to the correct ABI library. This option is on by default
+# On UNIX platforms other than Apple unless 'LIBCXX_ENABLE_STATIC_ABI_LIBRARY'
+# is on. This option is also disabled when the ABI library is not specified
+# or is specified to be "none".
+set(ENABLE_LINKER_SCRIPT_DEFAULT_VALUE OFF)
+if (LLVM_HAVE_LINK_VERSION_SCRIPT AND NOT LIBCXX_ENABLE_STATIC_ABI_LIBRARY
+      AND NOT LIBCXX_CXX_ABI_LIBNAME STREQUAL "none"
+      AND PYTHONINTERP_FOUND)
+    set(ENABLE_LINKER_SCRIPT_DEFAULT_VALUE ON)
+endif()
+
+option(LIBCXX_ENABLE_ABI_LINKER_SCRIPT
+      "Use and install a linker script for the given ABI library"
+      ${ENABLE_LINKER_SCRIPT_DEFAULT_VALUE})
 
 # Build libc++abi with libunwind. We need this option to determine whether to
 # link with libunwind or libgcc_s while running the test cases.
 option(LIBCXXABI_USE_LLVM_UNWINDER "Build and use the LLVM unwinder." OFF)
 
+# Target options --------------------------------------------------------------
+option(LIBCXX_BUILD_32_BITS "Build 32 bit libc++." ${LLVM_BUILD_32_BITS})
+set(LIBCXX_SYSROOT "" CACHE STRING "Use alternate sysroot.")
+set(LIBCXX_GCC_TOOLCHAIN "" CACHE STRING "Use alternate GCC toolchain.")
+
+# Feature options -------------------------------------------------------------
+option(LIBCXX_ENABLE_EXCEPTIONS "Use exceptions." ON)
+option(LIBCXX_ENABLE_RTTI "Use run time type information." ON)
+option(LIBCXX_ENABLE_GLOBAL_FILESYSTEM_NAMESPACE "Build libc++ with support for the global filesystem namespace." ON)
+option(LIBCXX_ENABLE_STDIN "Build libc++ with support for stdin/std::cin." ON)
+option(LIBCXX_ENABLE_STDOUT "Build libc++ with support for stdout/std::cout." ON)
+option(LIBCXX_ENABLE_THREADS "Build libc++ with support for threads." ON)
+option(LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS "Build libc++ with support for thread-unsafe C functions" ON)
+option(LIBCXX_ENABLE_MONOTONIC_CLOCK
+  "Build libc++ with support for a monotonic clock.
+   This option may only be set to OFF when LIBCXX_ENABLE_THREADS=OFF." ON)
+option(LIBCXX_HAS_MUSL_LIBC "Build libc++ with support for the Musl C library" OFF)
+
+# Misc options ----------------------------------------------------------------
+# FIXME: Turn -pedantic back ON. It is currently off because it warns
+# about #include_next which is used everywhere.
+option(LIBCXX_ENABLE_PEDANTIC "Compile with pedantic enabled." OFF)
+option(LIBCXX_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF)
+
+option(LIBCXX_GENERATE_COVERAGE "Enable generating code coverage." OFF)
+set(LIBCXX_COVERAGE_LIBRARY "" CACHE STRING
+    "The Profile-rt library used to build with code coverage")
+
+# Don't allow a user to accidentally overwrite the system libc++ installation on Darwin.
+# If the user specifies -DCMAKE_INSTALL_PREFIX=/usr the install rules for libc++
+# will not be generated and a warning will be issued.
+option(LIBCXX_OVERRIDE_DARWIN_INSTALL "Enable overwriting darwins libc++ installation." OFF)
+mark_as_advanced(LIBCXX_OVERRIDE_DARWIN_INSTALL) # Don't show this option by default.
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT LIBCXX_OVERRIDE_DARWIN_INSTALL)
+  if ("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr")
+    message(WARNING "Disabling libc++ install rules because installation would "
+                    "overwrite the systems installation. Configure with "
+                    "-DLIBCXX_OVERRIDE_DARWIN_INSTALL=ON to suppress this behaviour.")
+    mark_as_advanced(CLEAR LIBCXX_OVERRIDE_DARWIN_INSTALL) # Show the override option.
+    set(LIBCXX_INSTALL_HEADERS OFF)
+    set(LIBCXX_INSTALL_LIBRARY OFF)
+  endif()
+endif()
+
+set(LIBCXX_CONFIGURE_IDE_DEFAULT OFF)
+if (XCODE OR MSVC_IDE)
+  set(LIBCXX_CONFIGURE_IDE_DEFAULT ON)
+endif()
+option(LIBCXX_CONFIGURE_IDE "Configure libcxx for use within an IDE"
+      ${LIBCXX_CONFIGURE_IDE_DEFAULT})
+
+#===============================================================================
+# Check option configurations
+#===============================================================================
+
+# Ensure LIBCXX_ENABLE_MONOTONIC_CLOCK is set to ON only when
+# LIBCXX_ENABLE_THREADS is on.
+if(LIBCXX_ENABLE_THREADS AND NOT LIBCXX_ENABLE_MONOTONIC_CLOCK)
+  message(FATAL_ERROR "LIBCXX_ENABLE_MONOTONIC_CLOCK can only be set to OFF"
+                      " when LIBCXX_ENABLE_THREADS is also set to OFF.")
+endif()
+
+# Ensure LLVM_USE_SANITIZER is not specified when LIBCXX_GENERATE_COVERAGE
+# is ON.
+if (LLVM_USE_SANITIZER AND LIBCXX_GENERATE_COVERAGE)
+  message(FATAL_ERROR "LLVM_USE_SANITIZER cannot be used with LIBCXX_GENERATE_COVERAGE")
+endif()
+
+# Set LIBCXX_BUILD_32_BITS to (LIBCXX_BUILD_32_BITS OR LLVM_BUILD_32_BITS)
+# and check that we can build with 32 bits if requested.
+if (CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32)
+  if (LIBCXX_BUILD_32_BITS AND NOT LLVM_BUILD_32_BITS) # Don't duplicate the output from LLVM
+    message(STATUS "Building 32 bits executables and libraries.")
+  endif()
+elseif(LIBCXX_BUILD_32_BITS)
+  message(FATAL_ERROR "LIBCXX_BUILD_32_BITS=ON is not supported on this platform.")
+endif()
+
+# Check that this option is not enabled on Apple and emit a usage warning.
+if (LIBCXX_ENABLE_STATIC_ABI_LIBRARY)
+  if (APPLE)
+    message(FATAL_ERROR "LIBCXX_ENABLE_STATIC_ABI_LIBRARY is not supported on OS X")
+  else()
+    message(WARNING "LIBCXX_ENABLE_STATIC_ABI_LIBRARY is an experimental option")
+  endif()
+endif()
+
+if (LIBCXX_ENABLE_ABI_LINKER_SCRIPT)
+    if (APPLE)
+      message(FATAL_ERROR "LIBCXX_ENABLE_ABI_LINKER_SCRIPT cannot be used on APPLE targets")
+    endif()
+    if (NOT PYTHONINTERP_FOUND)
+      message(FATAL_ERROR "LIBCXX_ENABLE_ABI_LINKER_SCRIPT requires python but it was not found.")
+    endif()
+endif()
+
+if (LIBCXX_ENABLE_STATIC_ABI_LIBRARY AND LIBCXX_ENABLE_ABI_LINKER_SCRIPT)
+    message(FATAL_ERROR "Conflicting options given.
+        LIBCXX_ENABLE_STATIC_ABI_LIBRARY cannot be specified with
+        LIBCXX_ENABLE_ABI_LINKER_SCRIPT")
+endif()
+
+if (LIBCXX_HAS_MUSL_LIBC AND NOT LIBCXX_INSTALL_SUPPORT_HEADERS)
+  message(FATAL_ERROR "LIBCXX_INSTALL_SUPPORT_HEADERS can not be turned off"
+                      "when building for Musl with LIBCXX_HAS_MUSL_LIBC.")
+endif()
+
 #===============================================================================
 # Configure System
 #===============================================================================
@@ -114,232 +221,183 @@ set(LIBCXX_SOURCE_DIR  ${CMAKE_CURRENT_S
 set(LIBCXX_BINARY_DIR  ${CMAKE_CURRENT_BINARY_DIR})
 set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX})
 
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBCXX_LIBRARY_DIR})
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBCXX_LIBRARY_DIR})
+
 # Declare libc++ configuration variables.
 # They are intended for use as follows:
 # LIBCXX_CXX_FLAGS: General flags for both the compiler and linker.
 # LIBCXX_COMPILE_FLAGS: Compile only flags.
 # LIBCXX_LINK_FLAGS: Linker only flags.
-set(LIBCXX_CXX_FLAGS "")
 set(LIBCXX_COMPILE_FLAGS "")
 set(LIBCXX_LINK_FLAGS "")
+set(LIBCXX_LIBRARIES "")
 
 # Configure compiler.
 include(config-ix)
-# Configure ABI library
-include(HandleLibCXXABI)
+
 # Configure coverage options.
 if (LIBCXX_GENERATE_COVERAGE)
   include(CodeCoverage)
   set(CMAKE_BUILD_TYPE "COVERAGE" CACHE STRING "" FORCE)
 endif()
 
+string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
+
 #===============================================================================
 # Setup Compiler Flags
 #===============================================================================
 
-# Get required flags.
-# On all systems the system c++ standard library headers need to be excluded.
-if (MSVC)
-  # MSVC only has -X, which disables all default includes; including the crt.
-  # Thus, we do nothing and hope we don't accidentally include any of the C++
-  # headers.
-else()
-  if (LIBCXX_HAS_NOSTDINCXX_FLAG)
-    list(APPEND LIBCXX_COMPILE_FLAGS -nostdinc++)
-    string(REPLACE "-stdlib=libc++" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-    string(REPLACE "-stdlib=libstdc++" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-  endif()
-  # If c++1y has been enabled then attempt to use it. Fail if it is no supported
-  # by the compiler. Otherwise choose c++11 and ensure the compiler supports it.
-  if (LIBCXX_ENABLE_CXX1Y)
-    if (LIBCXX_HAS_STDCXX1Y_FLAG)
-      set(LIBCXX_STD_VERSION c++1y)
-    else()
-      message(FATAL_ERROR "c++1y was enabled but the compiler does not support it.")
-    endif()
-  else()
-    if (LIBCXX_HAS_STDCXX11_FLAG)
-      set(LIBCXX_STD_VERSION c++11)
-    else()
-      message(FATAL_ERROR "c++11 is required by libc++ but is not supported by the compiler")
-    endif()
-  endif()
-  # LIBCXX_STD_VERSION should always be set at this point.
-  list(APPEND LIBCXX_CXX_FLAGS "-std=${LIBCXX_STD_VERSION}")
-endif()
+include(HandleLibCXXABI) # Steup the ABI library flags
 
-macro(append_if list condition var)
-  if (${condition})
-    list(APPEND ${list} ${var})
-  endif()
-endmacro()
+# Include macros for adding and removing libc++ flags.
+include(HandleLibcxxFlags)
 
-# Get warning flags
-if (NOT MSVC)
-  append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WALL_FLAG -Wall)
-  list(APPEND LIBCXX_COMPILE_FLAGS -Werror=return-type)
+# Remove flags that may have snuck in.
+remove_flags(-DNDEBUG -UNDEBUG -D_DEBUG
+             -stdlib=libc++ -stdlib=libstdc++ -lc++abi -m32)
+
+# FIXME(EricWF): See the FIXME on LIBCXX_ENABLE_PEDANTIC.
+# Remove the -pedantic flag and -Wno-pedantic and -pedantic-errors
+# so they don't get transformed into -Wno and -errors respectivly.
+remove_flags(-Wno-pedantic -pedantic-errors -pedantic)
+
+# Required flags ==============================================================
+add_compile_flags_if_supported(-std=c++11)
+if (NOT MSVC AND NOT LIBCXX_SUPPORTS_STD_EQ_CXX11_FLAG)
+  message(FATAL_ERROR "C++11 is required but the compiler does not support -std=c++11")
 endif()
 
-append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_W_FLAG -W)
-append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WNO_UNUSED_PARAMETER_FLAG -Wno-unused-parameter)
-append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WWRITE_STRINGS_FLAG -Wwrite-strings)
-append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WNO_LONG_LONG_FLAG -Wno-long-long)
+# On all systems the system c++ standard library headers need to be excluded.
+# MSVC only has -X, which disables all default includes; including the crt.
+# Thus, we do nothing and hope we don't accidentally include any of the C++
+# headers
+add_compile_flags_if_supported(-nostdinc++)
+
+# Target flags ================================================================
+add_flags_if(LIBCXX_BUILD_32_BITS -m32)
+add_flags_if(LIBCXX_TARGET_TRIPLE "-target ${LIBCXX_TARGET_TRIPLE}")
+add_flags_if(LIBCXX_SYSROOT "--sysroot ${LIBCXX_SYSROOT}")
+add_flags_if(LIBCXX_GCC_TOOLCHAIN "-gcc-toolchain ${LIBCXX_GCC_TOOLCHAIN}")
+
+# Warning flags ===============================================================
+add_definitions(-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+add_compile_flags_if_supported(
+    -Wall -W -Wwrite-strings
+    -Wno-unused-parameter -Wno-long-long
+    -Werror=return-type)
 if (LIBCXX_ENABLE_WERROR)
-  append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WERROR_FLAG -Werror)
-  append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WX_FLAG -WX)
+  add_compile_flags_if_supported(-Werror)
+  add_compile_flags_if_supported(-WX)
 else()
-  append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_WNO_ERROR_FLAG -Wno-error)
-  append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_NO_WX_FLAG -WX-)
+  # TODO(EricWF) Remove this. We shouldn't be suppressing errors when -Werror is
+  # added elsewhere.
+  add_compile_flags_if_supported(-Wno-error)
 endif()
 if (LIBCXX_ENABLE_PEDANTIC)
-  append_if(LIBCXX_COMPILE_FLAGS LIBCXX_HAS_PEDANTIC_FLAG -pedantic)
+  add_compile_flags_if_supported(-pedantic)
 endif()
 
-# Get feature flags.
-# Exceptions
+# Exception flags =============================================================
 if (LIBCXX_ENABLE_EXCEPTIONS)
   # Catches C++ exceptions only and tells the compiler to assume that extern C
   # functions never throw a C++ exception.
-  append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_EHSC_FLAG -EHsc)
+  add_compile_flags_if_supported(-EHsc)
 else()
-  list(APPEND LIBCXX_CXX_FLAGS -D_LIBCPP_NO_EXCEPTIONS)
-  append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_NO_EHS_FLAG -EHs-)
-  append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_NO_EHA_FLAG -EHa-)
-  append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_FNO_EXCEPTIONS_FLAG -fno-exceptions)
+  add_definitions(-D_LIBCPP_NO_EXCEPTIONS)
+  add_compile_flags_if_supported(-EHs- -EHa-)
+  add_compile_flags_if_supported(-fno-exceptions)
 endif()
-# RTTI
+
+# RTTI flags ==================================================================
 if (NOT LIBCXX_ENABLE_RTTI)
-  list(APPEND LIBCXX_CXX_FLAGS -D_LIBCPP_NO_RTTI)
-  append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_NO_GR_FLAG -GR-)
-  append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_FNO_RTTI_FLAG -fno-rtti)
+  add_definitions(-D_LIBCPP_NO_RTTI)
+  add_compile_flags_if_supported(-GR-)
+  add_compile_flags_if_supported(-fno-rtti)
 endif()
-# Assert
-string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
+
+# Assertion flags =============================================================
+define_if(LIBCXX_ENABLE_ASSERTIONS -UNDEBUG)
+define_if_not(LIBCXX_ENABLE_ASSERTIONS -DNDEBUG)
 if (LIBCXX_ENABLE_ASSERTIONS)
   # MSVC doesn't like _DEBUG on release builds. See PR 4379.
-  if (NOT MSVC)
-    list(APPEND LIBCXX_COMPILE_FLAGS -D_DEBUG)
-  endif()
-  # On Release builds cmake automatically defines NDEBUG, so we
-  # explicitly undefine it:
-  if (uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE")
-    list(APPEND LIBCXX_COMPILE_FLAGS -UNDEBUG)
-  endif()
-else()
-  if (NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE")
-    list(APPEND LIBCXX_COMPILE_FLAGS -DNDEBUG)
-  endif()
-endif()
-# Static library
-if (NOT LIBCXX_ENABLE_SHARED)
-  list(APPEND LIBCXX_COMPILE_FLAGS -D_LIBCPP_BUILD_STATIC)
-endif()
-
-if (CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32)
-  if (LIBCXX_BUILD_32_BITS)
-    message(STATUS "Building 32 bits executables and libraries.")
-    list(APPEND LIBCXX_CXX_FLAGS "-m32")
-  endif()
-elseif(LIBCXX_BUILD_32_BITS)
-  message(FATAL_ERROR "LIBCXX_BUILD_32_BITS=ON is not supported on this platform.")
-endif()
-# This is the _ONLY_ place where add_definitions is called.
-if (MSVC)
-  add_definitions(-D_CRT_SECURE_NO_WARNINGS)
-endif()
-
-# LIBCXX_ENABLE_GLOBAL_FILESYSTEM_NAMESPACE configuration
-if (NOT LIBCXX_ENABLE_GLOBAL_FILESYSTEM_NAMESPACE)
-  add_definitions(-D_LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE)
-endif()
-
-# LIBCXX_ENABLE_STDIN configuration
-if (NOT LIBCXX_ENABLE_STDIN)
-  add_definitions(-D_LIBCPP_HAS_NO_STDIN)
-endif()
-
-# LIBCXX_ENABLE_STDOUT configuration
-if (NOT LIBCXX_ENABLE_STDOUT)
-  add_definitions(-D_LIBCPP_HAS_NO_STDOUT)
+  define_if_not(MSVC -D_DEBUG)
 endif()
 
-# LIBCXX_ENABLE_THREADS configuration
-if (NOT LIBCXX_ENABLE_THREADS)
-  add_definitions(-D_LIBCPP_HAS_NO_THREADS)
-  if (NOT LIBCXX_ENABLE_MONOTONIC_CLOCK)
-    add_definitions(-D_LIBCPP_HAS_NO_MONOTONIC_CLOCK)
-  endif()
-# Ensure LIBCXX_ENABLE_MONOTONIC_CLOCK is set to ON.
-elseif(NOT LIBCXX_ENABLE_MONOTONIC_CLOCK)
-  message(FATAL_ERROR "LIBCXX_ENABLE_MONOTONIC_CLOCK can only be set to OFF"
-                      " when LIBCXX_ENABLE_THREADS is also set to OFF.")
-endif()
+# Feature flags ===============================================================
+define_if(MSVC -D_CRT_SECURE_NO_WARNINGS)
 
-# LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS configuration
-if (NOT LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS)
-  add_definitions(-D_LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS)
-endif()
+# Sanitizer flags =============================================================
 
 # Configure for sanitizers. If LIBCXX_BUILT_STANDALONE then we have to do
 # the flag translation ourselves. Othewise LLVM's CMakeList.txt will handle it.
 if (LIBCXX_BUILT_STANDALONE)
+  set(LLVM_USE_SANITIZER "" CACHE STRING
+      "Define the sanitizer used to build the library and tests")
   # 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)
-    append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_FNO_OMIT_FRAME_POINTER_FLAG
-              "-fno-omit-frame-pointer")
+    add_flags_if_supported("-fno-omit-frame-pointer")
+    add_flags_if_supported("-gline-tables-only")
+
     if (NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG" AND
         NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "RELWITHDEBINFO")
-      append_if(LIBCXX_CXX_FLAGS LIBCXX_HAS_GLINE_TABLES_ONLY_FLAG
-                "-gline-tables-only")
+        add_flags_if_supported("-gline-tables-only")
     endif()
     if (LLVM_USE_SANITIZER STREQUAL "Address")
-      list(APPEND LIBCXX_CXX_FLAGS "-fsanitize=address")
+      add_flags("-fsanitize=address")
     elseif (LLVM_USE_SANITIZER MATCHES "Memory(WithOrigins)?")
-      list(APPEND LIBCXX_CXX_FLAGS "-fsanitize=memory")
+      add_flags(-fsanitize=memory)
       if (LLVM_USE_SANITIZER STREQUAL "MemoryWithOrigins")
-        list(APPEND LIBCXX_CXX_FLAGS "-fsanitize-memory-track-origins")
+        add_flags("-fsanitize-memory-track-origins")
       endif()
     elseif (LLVM_USE_SANITIZER STREQUAL "Undefined")
-      list(APPEND LIBCXX_CXX_FLAGS
-          "-fsanitize=undefined -fno-sanitize=vptr,function -fno-sanitize-recover")
+      add_flags("-fsanitize=undefined -fno-sanitize=vptr,function -fno-sanitize-recover=all")
     elseif (LLVM_USE_SANITIZER STREQUAL "Thread")
-      list(APPEND LIBCXX_CXX_FLAGS "-fsanitize=thread")
+      add_flags(-fsanitize=thread)
     else()
       message(WARNING "Unsupported value of LLVM_USE_SANITIZER: ${LLVM_USE_SANITIZER}")
     endif()
-  elseif(MSVC)
-    message(WARNING "LLVM_USE_SANITIZER is not supported with MSVC")
+  elseif(LLVM_USE_SANITIZER AND MSVC)
+    message(WARNING "LLVM_USE_SANITIZER is not supported on this platform.")
   endif()
 endif()
 
-append_if(LIBCXX_CXX_FLAGS LIBCXX_TARGET_TRIPLE
-          "-target ${LIBCXX_TARGET_TRIPLE}")
+# Configuration file flags =====================================================
+if (NOT LIBCXX_ABI_VERSION EQUAL "1")
+  config_define(${LIBCXX_ABI_VERSION} _LIBCPP_ABI_VERSION)
+endif()
+config_define_if(LIBCXX_ABI_UNSTABLE _LIBCPP_ABI_UNSTABLE)
 
-append_if(LIBCXX_CXX_FLAGS LIBCXX_SYSROOT "--sysroot ${LIBCXX_SYSROOT}")
-append_if(LIBCXX_CXX_FLAGS LIBCXX_GCC_TOOLCHAIN
-          "-gcc-toolchain ${LIBCXX_GCC_TOOLCHAIN}")
+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)
+config_define_if_not(LIBCXX_ENABLE_STDOUT _LIBCPP_HAS_NO_STDOUT)
+config_define_if_not(LIBCXX_ENABLE_THREADS _LIBCPP_HAS_NO_THREADS)
+config_define_if_not(LIBCXX_ENABLE_MONOTONIC_CLOCK _LIBCPP_HAS_NO_MONOTONIC_CLOCK)
+config_define_if_not(LIBCXX_ENABLE_THREAD_UNSAFE_C_FUNCTIONS _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS)
 
-if (LLVM_USE_SANITIZER AND LIBCXX_GENERATE_COVERAGE)
-  message(FATAL_ERROR "LLVM_USE_SANITIZER cannot be used with LIBCXX_GENERATE_COVERAGE")
-endif()
+config_define_if(LIBCXX_HAS_MUSL_LIBC _LIBCPP_HAS_MUSL_LIBC)
 
-string(REPLACE ";" " " LIBCXX_CXX_FLAGS "${LIBCXX_CXX_FLAGS}")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LIBCXX_CXX_FLAGS}")
+if (LIBCXX_NEEDS_SITE_CONFIG)
+  configure_file(
+    include/__config_site.in
+    ${LIBCXX_BINARY_DIR}/__config_site
+    @ONLY)
+  # Provide the config definitions by included the generated __config_site
+  # file at compile time.
+  add_compile_flags("-include ${LIBCXX_BINARY_DIR}/__config_site")
+endif()
 
 #===============================================================================
-# Setup Source Code
+# Setup Source Code And Tests
 #===============================================================================
-
 include_directories(include)
 add_subdirectory(include)
-
-# Add source code. This also contains all of the logic for deciding linker flags
-# soname, etc...
 add_subdirectory(lib)
 
-#===============================================================================
-# Setup Tests
-#===============================================================================
-
-add_subdirectory(test)
+if (LIBCXX_INCLUDE_TESTS)
+  add_subdirectory(test)
+endif()
+if (LIBCXX_INCLUDE_DOCS)
+  add_subdirectory(docs)
+endif()

Modified: vendor/libc++/dist/TODO.TXT
==============================================================================
--- vendor/libc++/dist/TODO.TXT	Wed Dec 30 11:53:21 2015	(r292927)
+++ vendor/libc++/dist/TODO.TXT	Wed Dec 30 11:54:09 2015	(r292928)
@@ -1,5 +1,15 @@
 This is meant to be a general place to list things that should be done "someday"
 
+3.8 Release Goals
+=================
+* LFTS v1 (EricWF, MClow)
+* Filesystem TS (EricWF)
+* ASIO TS (MClow)
+* <regex> Improvements (MClow)
+* Setup ABI Versioning policy (EricWF)
+* Fix PR19302 - Fix UB in list and __tree.
+
+
 ABI Related Tasks
 =================
 * Explicitly manage and verify symbols exported from the dylib.
@@ -21,18 +31,18 @@ CXX Runtime Library Tasks
 
 Atomic Related Tasks
 ====================
-* Support <atomic> in C++03 (needed for internal use).
+* Enable mixing of clang and GCC atomics internally. Currently some
+  parts of libc++ use atomics only when clang provides them.
+  (see memory at 5380 for an example)
 * Audit use of libatomic builtins in <atomic> with GCC.
 * future should use <atomic> for synchronization.
-* call_once should use <atomic> for synchronization.
-* Audit shared_ptr use of <atomic>
 
 Test Suite Tasks
 ================
-* Get test suite passing in C++03.
 * Move all libc++ specific tests from test/std into test/libcxx.
 * Improve how LIT handles compiler warnings.
 * Improve the quality and portability of the locale test data.
+* Convert failure tests to use Clang Verify.
 
 Misc Tasks
 ==========
@@ -42,8 +52,5 @@ Misc Tasks
 * Look at basic_string's move assignment operator, re LWG 2063 and POCMA
 * libc++ is missing try_emplace
 * Put a static_assert in std::allocator to deny const/volatile types (LWG 2447)
-* Investigate the effect of using __decltype instead of __typeof__ to provide
-  decltype in C++03. What code could be broken by this change?
-* Convert failure tests to use Clang Verify.
 * Document support (or lack of) for C++11 libraries in C++03.
 * Document supported compilers.

Modified: vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake
==============================================================================
--- vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake	Wed Dec 30 11:53:21 2015	(r292927)
+++ vendor/libc++/dist/cmake/Modules/HandleLibCXXABI.cmake	Wed Dec 30 11:54:09 2015	(r292928)
@@ -41,10 +41,13 @@ macro(setup_abi_lib abidefines abilib ab
         file(COPY "${incpath}/${fpath}"
           DESTINATION "${CMAKE_BINARY_DIR}/include/${dstdir}"
           )
-        install(FILES "${CMAKE_BINARY_DIR}/include/${fpath}"
-          DESTINATION include/c++/v1/${dstdir}
-          PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
-          )
+        if (LIBCXX_INSTALL_HEADERS)
+          install(FILES "${CMAKE_BINARY_DIR}/include/${fpath}"
+            DESTINATION include/c++/v1/${dstdir}
+            COMPONENT libcxx
+            PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+            )
+        endif()
         list(APPEND abilib_headers "${CMAKE_BINARY_DIR}/include/${fpath}")
       endif()
     endforeach()
@@ -58,6 +61,8 @@ macro(setup_abi_lib abidefines abilib ab
 
 endmacro()
 
+
+# Configure based on the selected ABI library.
 if ("${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libstdc++" OR
     "${LIBCXX_CXX_ABI_LIBNAME}" STREQUAL "libsupc++")
   set(_LIBSUPCXX_INCLUDE_FILES

Added: vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/libc++/dist/cmake/Modules/HandleLibcxxFlags.cmake	Wed Dec 30 11:54:09 2015	(r292928)
@@ -0,0 +1,169 @@
+# HandleLibcxxFlags - A set of macros used to setup the flags used to compile
+# and link libc++. These macros add flags to the following CMake variables.
+# - LIBCXX_COMPILE_FLAGS: flags used to compile libc++
+# - LIBCXX_LINK_FLAGS: flags used to link libc++
+# - LIBCXX_LIBRARIES: libraries to link libc++ to.
+
+include(CheckCXXCompilerFlag)
+
+unset(add_flag_if_supported)
+
+# Mangle the name of a compiler flag into a valid CMake identifier.
+# Ex: --std=c++11 -> STD_EQ_CXX11
+macro(mangle_name str output)
+  string(STRIP "${str}" strippedStr)
+  string(REGEX REPLACE "^/" "" strippedStr "${strippedStr}")
+  string(REGEX REPLACE "^-+" "" strippedStr "${strippedStr}")
+  string(REGEX REPLACE "-+$" "" strippedStr "${strippedStr}")
+  string(REPLACE "-" "_" strippedStr "${strippedStr}")
+  string(REPLACE "=" "_EQ_" strippedStr "${strippedStr}")
+  string(REPLACE "+" "X" strippedStr "${strippedStr}")
+  string(TOUPPER "${strippedStr}" ${output})
+endmacro()
+
+# Remove a list of flags from all CMake variables that affect compile flags.
+# This can be used to remove unwanted flags specified on the command line
+# or added in other parts of LLVM's cmake configuration.
+macro(remove_flags)
+  foreach(var ${ARGN})
+    string(REPLACE "${var}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+    string(REPLACE "${var}" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+    string(REPLACE "${var}" "" CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
+    string(REPLACE "${var}" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
+    string(REPLACE "${var}" "" CMAKE_SHARED_MODULE_FLAGS "${CMAKE_SHARED_MODULE_FLAGS}")
+    remove_definitions(${var})
+  endforeach()
+endmacro(remove_flags)
+
+# Add a macro definition if condition is true.
+macro(define_if condition def)
+  if (${condition})
+    add_definitions(${def})
+  endif()
+endmacro()
+
+# Add a macro definition if condition is not true.
+macro(define_if_not condition def)
+  if (NOT ${condition})
+    add_definitions(${def})
+  endif()
+endmacro()
+
+# Add a macro definition to the __config_site file if the specified condition
+# is 'true'. Note that '-D${def}' is not added. Instead it is expected that
+# the build include the '__config_site' header.
+macro(config_define_if condition def)
+  if (${condition})
+    set(${def} ON)
+    set(LIBCXX_NEEDS_SITE_CONFIG ON)
+  endif()
+endmacro()
+
+macro(config_define_if_not condition def)
+  if (NOT ${condition})
+    set(${def} ON)
+    set(LIBCXX_NEEDS_SITE_CONFIG ON)
+  endif()
+endmacro()
+
+macro(config_define value def)
+  set(${def} ${value})
+  set(LIBCXX_NEEDS_SITE_CONFIG ON)
+endmacro()
+
+# Add a specified list of flags to both 'LIBCXX_COMPILE_FLAGS' and
+# 'LIBCXX_LINK_FLAGS'.
+macro(add_flags)
+  foreach(value ${ARGN})
+    list(APPEND LIBCXX_COMPILE_FLAGS ${value})
+    list(APPEND LIBCXX_LINK_FLAGS ${value})
+  endforeach()
+endmacro()
+
+# If the specified 'condition' is true then add a list of flags to both
+# 'LIBCXX_COMPILE_FLAGS' and 'LIBCXX_LINK_FLAGS'.
+macro(add_flags_if condition)
+  if (${condition})
+    add_flags(${ARGN})
+  endif()
+endmacro()
+
+# Add each flag in the list to LIBCXX_COMPILE_FLAGS and LIBCXX_LINK_FLAGS
+# if that flag is supported by the current compiler.
+macro(add_flags_if_supported)
+  foreach(flag ${ARGN})
+      mangle_name("${flag}" flagname)
+      check_cxx_compiler_flag("${flag}" "LIBCXX_SUPPORTS_${flagname}_FLAG")
+      add_flags_if(LIBCXX_SUPPORTS_${flagname}_FLAG ${flag})
+  endforeach()
+endmacro()
+
+# Add a list of flags to 'LIBCXX_COMPILE_FLAGS'.
+macro(add_compile_flags)
+  foreach(f ${ARGN})
+    list(APPEND LIBCXX_COMPILE_FLAGS ${f})
+  endforeach()
+endmacro()
+
+# If 'condition' is true then add the specified list of flags to
+# 'LIBCXX_COMPILE_FLAGS'
+macro(add_compile_flags_if condition)
+  if (${condition})
+    add_compile_flags(${ARGN})
+  endif()
+endmacro()
+
+# For each specified flag, add that flag to 'LIBCXX_COMPILE_FLAGS' if the
+# flag is supported by the C++ compiler.
+macro(add_compile_flags_if_supported)
+  foreach(flag ${ARGN})
+      mangle_name("${flag}" flagname)
+      check_cxx_compiler_flag("${flag}" "LIBCXX_SUPPORTS_${flagname}_FLAG")
+      add_compile_flags_if(LIBCXX_SUPPORTS_${flagname}_FLAG ${flag})
+  endforeach()
+endmacro()
+
+# Add a list of flags to 'LIBCXX_LINK_FLAGS'.
+macro(add_link_flags)
+  foreach(f ${ARGN})
+    list(APPEND LIBCXX_LINK_FLAGS ${f})
+  endforeach()
+endmacro()
+
+# If 'condition' is true then add the specified list of flags to
+# 'LIBCXX_LINK_FLAGS'
+macro(add_link_flags_if condition)
+  if (${condition})
+    add_link_flags(${ARGN})
+  endif()
+endmacro()
+
+# For each specified flag, add that flag to 'LIBCXX_LINK_FLAGS' if the
+# flag is supported by the C++ compiler.
+macro(add_link_flags_if_supported)
+  foreach(flag ${ARGN})
+    mangle_name("${flag}" flagname)
+    check_cxx_compiler_flag("${flag}" "LIBCXX_SUPPORTS_${flagname}_FLAG")
+    add_link_flags_if(LIBCXX_SUPPORTS_${flagname}_FLAG ${flag})
+  endforeach()
+endmacro()
+
+# Add a list of libraries or link flags to 'LIBCXX_LIBRARIES'.
+macro(add_library_flags)
+  foreach(lib ${ARGN})
+    list(APPEND LIBCXX_LIBRARIES ${lib})
+  endforeach()
+endmacro()
+
+# if 'condition' is true then add the specified list of libraries and flags
+# to 'LIBCXX_LIBRARIES'.
+macro(add_library_flags_if condition)
+  if(${condition})
+    add_library_flags(${ARGN})
+  endif()
+endmacro()
+
+# Turn a comma separated CMake list into a space separated string.
+macro(split_list listname)
+  string(REPLACE ";" " " ${listname} "${${listname}}")
+endmacro()

Added: vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/libc++/dist/cmake/Modules/HandleOutOfTreeLLVM.cmake	Wed Dec 30 11:54:09 2015	(r292928)
@@ -0,0 +1,138 @@
+macro(find_llvm_parts)
+# Rely on llvm-config.
+  set(CONFIG_OUTPUT)
+  find_program(LLVM_CONFIG "llvm-config")
+  if(DEFINED LLVM_PATH)
+    set(LLVM_INCLUDE_DIR ${LLVM_INCLUDE_DIR} CACHE PATH "Path to llvm/include")
+    set(LLVM_PATH ${LLVM_PATH} CACHE PATH "Path to LLVM source tree")
+    set(LLVM_MAIN_SRC_DIR ${LLVM_PATH})
+    set(LLVM_CMAKE_PATH "${LLVM_PATH}/cmake/modules")
+  elseif(LLVM_CONFIG)
+    message(STATUS "Found LLVM_CONFIG as ${LLVM_CONFIG}")
+    set(CONFIG_COMMAND ${LLVM_CONFIG}
+      "--includedir"
+      "--prefix"
+      "--src-root")
+    execute_process(
+      COMMAND ${CONFIG_COMMAND}
+      RESULT_VARIABLE HAD_ERROR
+      OUTPUT_VARIABLE CONFIG_OUTPUT
+    )
+    if(NOT HAD_ERROR)
+      string(REGEX REPLACE
+        "[ \t]*[\r\n]+[ \t]*" ";"
+        CONFIG_OUTPUT ${CONFIG_OUTPUT})
+    else()
+      string(REPLACE ";" " " CONFIG_COMMAND_STR "${CONFIG_COMMAND}")
+      message(STATUS "${CONFIG_COMMAND_STR}")
+      message(FATAL_ERROR "llvm-config failed with status ${HAD_ERROR}")
+    endif()
+
+    list(GET CONFIG_OUTPUT 0 INCLUDE_DIR)
+    list(GET CONFIG_OUTPUT 1 LLVM_OBJ_ROOT)
+    list(GET CONFIG_OUTPUT 2 MAIN_SRC_DIR)
+
+    set(LLVM_INCLUDE_DIR ${INCLUDE_DIR} CACHE PATH "Path to llvm/include")
+    set(LLVM_BINARY_DIR ${LLVM_OBJ_ROOT} CACHE PATH "Path to LLVM build tree")
+    set(LLVM_MAIN_SRC_DIR ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source tree")
+    set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR}/share/llvm/cmake")
+  else()
+    set(LLVM_FOUND OFF)
+    return()
+  endif()
+
+  if (NOT EXISTS ${LLVM_MAIN_SRC_DIR})
+    set(LLVM_FOUND OFF)
+    message(WARNING "Not found: ${LLVM_MAIN_SRC_DIR}")
+    return()
+  endif()
+
+  if(NOT EXISTS ${LLVM_CMAKE_PATH})
+    set(LLVM_FOUND OFF)
+    message(WARNING "Not found: ${LLVM_CMAKE_PATH}")
+    return()
+  endif()
+
+  list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}")
+  list(APPEND CMAKE_MODULE_PATH "${LLVM_MAIN_SRC_DIR}/cmake/modules")
+
+  set(LLVM_FOUND ON)
+endmacro(find_llvm_parts)
+
+
+if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+  set(LIBCXX_BUILT_STANDALONE 1)
+  message(STATUS "Configuring for standalone build.")
+
+  find_llvm_parts()
+
+  # LLVM Options --------------------------------------------------------------
+  include(FindPythonInterp)
+  if( NOT PYTHONINTERP_FOUND )
+    message(WARNING "Failed to find python interpreter. "
+                    "The libc++ test suite will be disabled.")
+    set(LLVM_INCLUDE_TESTS OFF)
+  endif()
+
+  if (NOT DEFINED LLVM_INCLUDE_TESTS)
+    set(LLVM_INCLUDE_TESTS ${LLVM_FOUND})
+  endif()
+  if (NOT DEFINED LLVM_INCLUDE_DOCS)
+    set(LLVM_INCLUDE_DOCS ${LLVM_FOUND})
+  endif()
+  if (NOT DEFINED LLVM_ENABLE_SPHINX)
+    set(LLVM_ENABLE_SPHINX OFF)
+  endif()
+
+  # Required LIT Configuration ------------------------------------------------
+  # Define the default arguments to use with 'lit', and an option for the user
+  # to override.
+  set(LIT_ARGS_DEFAULT "-sv --show-xfail --show-unsupported")
+  if (MSVC OR XCODE)
+    set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar")
+  endif()
+  set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit")
+
+  # Make sure we can use the console pool for recent cmake and ninja > 1.5
+  # Needed for add_lit_testsuite
+  if(CMAKE_VERSION VERSION_LESS 3.1.20141117)
+    set(cmake_3_2_USES_TERMINAL)
+  else()
+    set(cmake_3_2_USES_TERMINAL USES_TERMINAL)
+  endif()
+
+  # Required doc configuration
+  if (LLVM_ENABLE_SPHINX)
+    message(STATUS "Sphinx enabled.")
+    find_package(Sphinx REQUIRED)
+  else()
+    message(STATUS "Sphinx disabled.")
+  endif()
+
+  # FIXME - This is cribbed from HandleLLVMOptions.cmake.
+  if(WIN32)
+    set(LLVM_HAVE_LINK_VERSION_SCRIPT 0)
+    if(CYGWIN)
+      set(LLVM_ON_WIN32 0)
+      set(LLVM_ON_UNIX 1)
+    else(CYGWIN)
+      set(LLVM_ON_WIN32 1)
+      set(LLVM_ON_UNIX 0)
+    endif(CYGWIN)
+  else(WIN32)
+    if(UNIX)
+      set(LLVM_ON_WIN32 0)
+      set(LLVM_ON_UNIX 1)
+      if(APPLE)
+        set(LLVM_HAVE_LINK_VERSION_SCRIPT 0)
+      else(APPLE)
+        set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
+      endif(APPLE)
+    else(UNIX)
+      MESSAGE(SEND_ERROR "Unable to determine platform")
+    endif(UNIX)
+  endif(WIN32)
+
+  # Add LLVM Functions --------------------------------------------------------
+  include(AddLLVM OPTIONAL)
+endif()

Modified: vendor/libc++/dist/cmake/config-ix.cmake
==============================================================================
--- vendor/libc++/dist/cmake/config-ix.cmake	Wed Dec 30 11:53:21 2015	(r292927)
+++ vendor/libc++/dist/cmake/config-ix.cmake	Wed Dec 30 11:54:09 2015	(r292928)
@@ -2,23 +2,7 @@ include(CheckLibraryExists)
 include(CheckCXXCompilerFlag)
 
 # Check compiler flags
-check_cxx_compiler_flag(-std=c++11              LIBCXX_HAS_STDCXX11_FLAG)
-check_cxx_compiler_flag(-std=c++1y              LIBCXX_HAS_STDCXX1Y_FLAG)
-check_cxx_compiler_flag(-fPIC                   LIBCXX_HAS_FPIC_FLAG)
-check_cxx_compiler_flag(-fno-omit-frame-pointer LIBCXX_HAS_FNO_OMIT_FRAME_POINTER_FLAG)
-check_cxx_compiler_flag(-nodefaultlibs          LIBCXX_HAS_NODEFAULTLIBS_FLAG)
-check_cxx_compiler_flag(-nostdinc++             LIBCXX_HAS_NOSTDINCXX_FLAG)
-check_cxx_compiler_flag(-Wall                   LIBCXX_HAS_WALL_FLAG)
-check_cxx_compiler_flag(-W                      LIBCXX_HAS_W_FLAG)
-check_cxx_compiler_flag(-Wno-unused-parameter   LIBCXX_HAS_WNO_UNUSED_PARAMETER_FLAG)
-check_cxx_compiler_flag(-Wwrite-strings         LIBCXX_HAS_WWRITE_STRINGS_FLAG)
-check_cxx_compiler_flag(-Wno-long-long          LIBCXX_HAS_WNO_LONG_LONG_FLAG)
-check_cxx_compiler_flag(-pedantic               LIBCXX_HAS_PEDANTIC_FLAG)
-check_cxx_compiler_flag(-Werror                 LIBCXX_HAS_WERROR_FLAG)
-check_cxx_compiler_flag(-Wno-error              LIBCXX_HAS_WNO_ERROR_FLAG)
-check_cxx_compiler_flag(-fno-exceptions         LIBCXX_HAS_FNO_EXCEPTIONS_FLAG)

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-all mailing list