From owner-svn-src-vendor@freebsd.org Wed Dec 30 11:54:11 2015 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A76D2A5594F; Wed, 30 Dec 2015 11:54:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1BDE910B3; Wed, 30 Dec 2015 11:54:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id tBUBsAW7051568; Wed, 30 Dec 2015 11:54:10 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id tBUBs9db051559; Wed, 30 Dec 2015 11:54:09 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201512301154.tBUBs9db051559@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 30 Dec 2015 11:54:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: 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... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Dec 2015 11:54:11 -0000 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) +* 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 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@5380 for an example) * Audit use of libatomic builtins in with GCC. * future should use for synchronization. -* call_once should use for synchronization. -* Audit shared_ptr use of 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 ***