From owner-svn-src-all@freebsd.org Mon May 8 17:13:37 2017 Return-Path: Delivered-To: svn-src-all@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 96138D6362C; Mon, 8 May 2017 17:13:37 +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 3304AA47; Mon, 8 May 2017 17:13:37 +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 v48HDa6k042911; Mon, 8 May 2017 17:13:36 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v48HDYuG042894; Mon, 8 May 2017 17:13:34 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201705081713.v48HDYuG042894@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 8 May 2017 17:13:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r317955 - in vendor/libc++/dist: . docs docs/DesignDocs include include/experimental include/support/win32 lib src src/experimental/filesystem src/support/runtime test/libcxx/algorithms... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 May 2017 17:13:37 -0000 Author: dim Date: Mon May 8 17:13:34 2017 New Revision: 317955 URL: https://svnweb.freebsd.org/changeset/base/317955 Log: Vendor import of libc++ trunk r302418: https://llvm.org/svn/llvm-project/libcxx/trunk@302418 Added: vendor/libc++/dist/docs/DesignDocs/AvailabilityMarkup.rst vendor/libc++/dist/install-appveyor-reqs.cmd vendor/libc++/dist/src/support/runtime/exception_pointer_msvc.ipp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/lit.local.cfg vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/minmax_showbase.pass.cpp (contents, props changed) vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/lit.local.cfg vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/lit.local.cfg vendor/libc++/dist/test/std/thread/thread.mutex/thread.mutex.requirements/thread.sharedtimedmutex.requirements/lit.local.cfg vendor/libc++/dist/test/support/test.workarounds/c1xx_broken_is_trivially_copyable.pass.cpp (contents, props changed) Modified: vendor/libc++/dist/CMakeLists.txt vendor/libc++/dist/appveyor.yml vendor/libc++/dist/docs/index.rst vendor/libc++/dist/include/__config vendor/libc++/dist/include/__locale vendor/libc++/dist/include/__threading_support vendor/libc++/dist/include/exception vendor/libc++/dist/include/experimental/dynarray vendor/libc++/dist/include/experimental/optional vendor/libc++/dist/include/functional vendor/libc++/dist/include/future vendor/libc++/dist/include/istream vendor/libc++/dist/include/locale vendor/libc++/dist/include/memory vendor/libc++/dist/include/new vendor/libc++/dist/include/ostream vendor/libc++/dist/include/random vendor/libc++/dist/include/shared_mutex vendor/libc++/dist/include/streambuf vendor/libc++/dist/include/support/win32/locale_win32.h vendor/libc++/dist/include/typeinfo vendor/libc++/dist/lib/CMakeLists.txt vendor/libc++/dist/src/exception.cpp vendor/libc++/dist/src/experimental/filesystem/operations.cpp vendor/libc++/dist/src/locale.cpp vendor/libc++/dist/src/memory.cpp vendor/libc++/dist/test/libcxx/algorithms/alg.modifying.operations/alg.random.shuffle/random_shuffle.cxx1z.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.cons/db_copy.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.cons/db_move.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/emplace_db1.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_db1.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_db2.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_iter_db1.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_iter_db2.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_iter_db3.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/erase_iter_iter_db4.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/insert_iter_iter_iter_db1.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/insert_iter_rvalue_db1.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/insert_iter_size_value_db1.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/insert_iter_value_db1.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.modifiers/pop_back_db1.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter.pass.cpp vendor/libc++/dist/test/libcxx/containers/sequences/list/list.ops/db_splice_pos_list_iter_iter.pass.cpp vendor/libc++/dist/test/libcxx/debug/containers/db_associative_container_tests.pass.cpp vendor/libc++/dist/test/libcxx/debug/containers/db_sequence_container_iterators.pass.cpp vendor/libc++/dist/test/libcxx/debug/containers/db_string.pass.cpp vendor/libc++/dist/test/libcxx/debug/containers/db_unord_container_tests.pass.cpp vendor/libc++/dist/test/libcxx/debug/debug_abort.pass.cpp vendor/libc++/dist/test/libcxx/debug/debug_throw.pass.cpp vendor/libc++/dist/test/libcxx/debug/debug_throw_register.pass.cpp vendor/libc++/dist/test/libcxx/depr/depr.function.objects/depr.adaptors.cxx1z.pass.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.cons/default_throws_bad_alloc.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.mutate/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/begin_end.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.overview/capacity.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.overview/front_back.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.overview/indexing.pass.cpp vendor/libc++/dist/test/libcxx/experimental/containers/sequences/dynarray/dynarray.zero/default.pass.cpp vendor/libc++/dist/test/libcxx/language.support/support.dynamic/alloc.errors/new.badlength/bad_array_length.pass.cpp vendor/libc++/dist/test/libcxx/language.support/support.dynamic/new_faligned_allocation.sh.cpp vendor/libc++/dist/test/libcxx/thread/futures/futures.promise/set_exception.pass.cpp vendor/libc++/dist/test/libcxx/thread/futures/futures.promise/set_exception_at_thread_exit.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.modifying.operations/alg.remove/remove_copy_if.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.count/count_if.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.find/find_if.pass.cpp vendor/libc++/dist/test/std/algorithms/alg.nonmodifying/alg.find/find_if_not.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/emplace_back.pass.cpp vendor/libc++/dist/test/std/containers/sequences/vector.bool/vector_bool.pass.cpp vendor/libc++/dist/test/std/depr/depr.str.strstreams/depr.strstreambuf/depr.strstreambuf.members/overflow.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/generic_category.pass.cpp vendor/libc++/dist/test/std/diagnostics/syserr/syserr.errcat/syserr.errcat.objects/system_category.pass.cpp vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/copy.pass.cpp vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/move.pass.cpp vendor/libc++/dist/test/std/experimental/any/any.class/any.assign/value.pass.cpp vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/copy.pass.cpp vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/move.pass.cpp vendor/libc++/dist/test/std/experimental/any/any.class/any.cons/value.pass.cpp vendor/libc++/dist/test/std/experimental/any/any.class/any.modifiers/clear.pass.cpp vendor/libc++/dist/test/std/experimental/any/any.class/any.modifiers/swap.pass.cpp vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp vendor/libc++/dist/test/std/experimental/any/any.nonmembers/any.cast/not_copy_constructible.fail.cpp vendor/libc++/dist/test/std/experimental/any/any.nonmembers/swap.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.bad_optional_access/default.pass.cpp vendor/libc++/dist/test/std/experimental/optional/optional.bad_optional_access/derive.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/input.output/file.streams/fstreams/fstream.assign/member_swap.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/fstreams/fstream.assign/nonmember_swap.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/fstreams/ofstream.assign/member_swap.pass.cpp vendor/libc++/dist/test/std/input.output/file.streams/fstreams/ofstream.assign/nonmember_swap.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.formatted/istream.formatted.arithmetic/pointer.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/get.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/get_chart.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/ignore_0xff.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/read.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/readsome.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/seekg.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/input.streams/istream.unformatted/seekg_off.pass.cpp vendor/libc++/dist/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/minus1.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/istream.iterator/types.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/ostream.iterator/types.pass.cpp vendor/libc++/dist/test/std/iterators/stream.iterators/ostreambuf.iterator/types.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/delete_align_val_t_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array_fsizeddeallocation.sh.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/delete_align_val_t_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow_replace.pass.cpp vendor/libc++/dist/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_fsizeddeallocation.sh.cpp vendor/libc++/dist/test/std/language.support/support.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/propagation/current_exception.pass.cpp vendor/libc++/dist/test/std/language.support/support.exception/propagation/exception_ptr.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_exceptions.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byte.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/lshift.assign.fail.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/lshift.assign.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/lshift.fail.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/lshift.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/rshift.assign.fail.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/rshift.assign.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/rshift.fail.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/rshift.pass.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/to_integer.fail.cpp vendor/libc++/dist/test/std/language.support/support.types/byteops/to_integer.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/ctype_base.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/tolower_1.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/tolower_many.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/toupper_1.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.ctype/locale.ctype.byname/toupper_many.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.money.get/locale.money.get.members/get_long_double_ru_RU.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.money.put/locale.money.put.members/put_long_double_ru_RU.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_double.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_float.pass.cpp vendor/libc++/dist/test/std/localization/locale.categories/category.numeric/locale.num.get/facet.num.get.members/get_long_double.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_char_pointer_cat.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_locale_cat.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.cons/locale_string_cat.pass.cpp vendor/libc++/dist/test/std/localization/locales/locale/locale.types/locale.category/category.pass.cpp vendor/libc++/dist/test/std/numerics/complex.number/complex.ops/stream_input.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.match/awk.pass.cpp vendor/libc++/dist/test/std/re/re.traits/translate_nocase.pass.cpp vendor/libc++/dist/test/std/strings/basic.string/string.capacity/over_max_size.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stof.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stol.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoll.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoul.pass.cpp vendor/libc++/dist/test/std/strings/string.conversions/stoull.pass.cpp vendor/libc++/dist/test/std/thread/futures/futures.future_error/what.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.guard/mutex.pass.cpp vendor/libc++/dist/test/std/thread/thread.mutex/thread.lock/thread.lock.scoped/mutex.pass.cpp vendor/libc++/dist/test/std/thread/thread.threads/thread.thread.this/sleep_for.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.assign/copy.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.assign/move.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.assign/value.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.cons/copy.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.cons/in_place_type.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.cons/move.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.cons/value.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.modifiers/emplace.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.modifiers/reset.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.class/any.modifiers/swap.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.nonmembers/any.cast/any_cast_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.nonmembers/any.cast/any_cast_reference.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.nonmembers/make_any.pass.cpp vendor/libc++/dist/test/std/utilities/any/any.nonmembers/swap.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_strong_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_compare_exchange_weak_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_exchange_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_load_explicit.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store.pass.cpp vendor/libc++/dist/test/std/utilities/memory/util.smartptr/util.smartptr.shared.atomic/atomic_store_explicit.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.unary/meta.unary.cat/is_function.pass.cpp vendor/libc++/dist/test/std/utilities/meta/meta.unary/meta.unary.cat/member_function_pointer.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.bad_optional_access/default.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/U.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/copy.fail.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/move.fail.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.observe/value.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.observe/value_const.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.observe/value_const_rvalue.pass.cpp vendor/libc++/dist/test/std/utilities/optional/optional.object/optional.object.observe/value_rvalue.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.cons/char_ptr_ctor.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.cons/default.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.hash/bitset.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/count.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/flip_all.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/index.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/left_shift.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/not_all.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/op_eq_eq.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/reset_all.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/right_shift.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/set_all.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/test.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.members/to_string.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.operators/op_and.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.operators/op_not.pass.cpp vendor/libc++/dist/test/std/utilities/template.bitset/bitset.operators/op_or.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp vendor/libc++/dist/test/std/utilities/time/time.clock/time.clock.system/consistency.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.bad_variant_access/bad_variant_access.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.get/get_index.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.get/get_type.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.assign/T.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.ctor/copy.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.ctor/default.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.ctor/in_place_index_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.ctor/in_place_type_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.ctor/move.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_init_list_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_init_list_args.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.variant/variant.swap/swap.pass.cpp vendor/libc++/dist/test/std/utilities/variant/variant.visit/visit.pass.cpp vendor/libc++/dist/test/support/msvc_stdlib_force_include.hpp vendor/libc++/dist/test/support/test_macros.h vendor/libc++/dist/test/support/test_workarounds.h vendor/libc++/dist/utils/libcxx/test/config.py vendor/libc++/dist/utils/libcxx/test/target_info.py Modified: vendor/libc++/dist/CMakeLists.txt ============================================================================== --- vendor/libc++/dist/CMakeLists.txt Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/CMakeLists.txt Mon May 8 17:13:34 2017 (r317955) @@ -344,7 +344,11 @@ set(LIBCXX_COMPILER ${CMAKE_CXX_COMPI set(LIBCXX_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(LIBCXX_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) set(LIBCXX_BINARY_INCLUDE_DIR "${LIBCXX_BINARY_DIR}/include/c++build") -set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX}) +if (LLVM_LIBRARY_OUTPUT_INTDIR) + set(LIBCXX_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}) +else() + set(LIBCXX_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBCXX_LIBDIR_SUFFIX}) +endif() file(MAKE_DIRECTORY "${LIBCXX_BINARY_INCLUDE_DIR}") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBCXX_LIBRARY_DIR}) @@ -627,7 +631,12 @@ endif() # Create the lit.site.cfg file even when LIBCXX_INCLUDE_TESTS is OFF or # LLVM_FOUND is OFF. This allows users to run the tests manually using # LIT without requiring a full LLVM checkout. -add_subdirectory(test) +# +# However, since some submission systems strip test/ subdirectories, check for +# it before adding it. +if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/test") + add_subdirectory(test) +endif() if (LIBCXX_INCLUDE_TESTS) add_subdirectory(lib/abi) endif() Modified: vendor/libc++/dist/appveyor.yml ============================================================================== --- vendor/libc++/dist/appveyor.yml Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/appveyor.yml Mon May 8 17:13:34 2017 (r317955) @@ -2,65 +2,34 @@ version: '{build}' shallow_clone: true -os: - - Visual Studio 2015 - build: verbosity: detailed -branches: - only: - - master - configuration: - Debug environment: matrix: - - COMPILER: Clang-CL 4.0 + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 + CLANG_VERSION: ToT + MSVC_SETUP_PATH: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat + MSVC_SETUP_ARG: x86 + APPVEYOR_SAVE_CACHE_ON_ERROR: true + - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 + CLANG_VERSION: 4 + MSVC_SETUP_PATH: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat + MSVC_SETUP_ARG: x86_amd64 + APPVEYOR_SAVE_CACHE_ON_ERROR: true install: ############################################################################ # All external dependencies are installed in C:\projects\deps ############################################################################ - - mkdir C:\projects\deps - - cd C:\projects\deps - - ############################################################################ - # Install Ninja - ############################################################################ - - set NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v1.6.0/ninja-win.zip" - - appveyor DownloadFile %NINJA_URL% -FileName ninja.zip - - 7z x ninja.zip -oC:\projects\deps\ninja > nul - - set PATH=C:\projects\deps\ninja;%PATH% - - ninja --version - - ############################################################################ - # Install a recent CMake - ############################################################################ - - set CMAKE_URL="https://cmake.org/files/v3.7/cmake-3.7.2-win64-x64.zip" - - appveyor DownloadFile %CMAKE_URL% -FileName cmake.zip - - 7z x cmake.zip -oC:\projects\deps > nul - - move C:\projects\deps\cmake-* C:\projects\deps\cmake # Move to a version-agnostic directory - - set PATH=C:\projects\deps\cmake\bin;%PATH% - - cmake --version - - ############################################################################ - # Setup the path to Clang-cl - ############################################################################ - - set PATH="C:\Program Files\LLVM\bin";%PATH% - - clang-cl -v - - ############################################################################ - # Setup the cached copy of LLVM - ############################################################################ - - if exist llvm (git -C llvm pull --rebase=true --ff-only) - - if not exist llvm (git clone --depth=1 http://llvm.org/git/llvm.git) - + - call "%APPVEYOR_BUILD_FOLDER%\\install-appveyor-reqs.cmd" before_build: - - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - - cd C:\projects\libcxx + - call "%MSVC_SETUP_PATH%" %MSVC_SETUP_ARG% + - cd %APPVEYOR_BUILD_FOLDER% build_script: - md C:\projects\build-libcxx @@ -74,8 +43,8 @@ build_script: -DCMAKE_C_COMPILER=clang-cl.exe -DCMAKE_CXX_COMPILER=clang-cl.exe "-DCMAKE_BUILD_TYPE=%configuration%" "-DLLVM_PATH=C:\projects\deps\llvm" -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLLVM_LIT_ARGS="-sv --no-progress-bar --show-xfail --show-unsupported" - C:\projects\libcxx + -DLLVM_LIT_ARGS="-sv --show-xfail --show-unsupported" + %APPVEYOR_BUILD_FOLDER% ############################################################################# # Build Step @@ -94,4 +63,6 @@ artifacts: name: logs cache: - - C:\projects\deps\llvm + - C:\projects\deps\ninja + - C:\projects\deps\cmake + - C:\projects\deps\llvm-installer.exe Added: vendor/libc++/dist/docs/DesignDocs/AvailabilityMarkup.rst ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/libc++/dist/docs/DesignDocs/AvailabilityMarkup.rst Mon May 8 17:13:34 2017 (r317955) @@ -0,0 +1,114 @@ +=================== +Availability Markup +=================== + +.. contents:: + :local: + +Overview +======== + +Libc++ is used as a system library on macOS and iOS (amongst others). In order +for users to be able to compile a binary that is intended to be deployed to an +older version of the platform, clang provides the +`availability attribute `_ +that can be placed on declarations to describe the lifecycle of a symbol in the +library. + +Design +====== + +When a new feature is introduced that requires dylib support, a macro should be +created in include/__config to mark this feature as unavailable for all the +systems. For example:: + + // Define availability macros. + #if defined(_LIBCPP_USE_AVAILABILITY_APPLE) + #define _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS __attribute__((unavailable)) + #else if defined(_LIBCPP_USE_AVAILABILITY_SOME_OTHER_VENDOR) + #define _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS __attribute__((unavailable)) + #else + #define _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS + #endif + +When the library is updated by the platform vendor, the markup can be updated. +For example:: + + #define _LIBCPP_AVAILABILITY_SHARED_MUTEX \ + __attribute__((availability(macosx,strict,introduced=10.12))) \ + __attribute__((availability(ios,strict,introduced=10.0))) \ + __attribute__((availability(tvos,strict,introduced=10.0))) \ + __attribute__((availability(watchos,strict,introduced=3.0))) + +In the source code, the macro can be added on a class if the full class requires +type info from the library for example:: + + _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL + class _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS bad_optional_access + : public std::logic_error { + +or on a particular symbol: + + _LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void operator delete(void* __p, std::size_t __sz) _NOEXCEPT; + + +Testing +======= + +Some parameters can be passed to lit to run the test-suite and exercising the +availability. + +* The `platform` parameter controls the deployement target. For example lit can + be invoked with `--param=platform=macosx10.8`. Default is the current host. +* The `use_system_cxx_lib` parameter indicates to use another library than the + just built one. Invoking lit with `--param=use_system_cxx_lib=true` will run + the test-suite against the host system library. Alternatively a path to the + directory containing a specific prebuilt libc++ can be used, for example: + `--param=use_system_cxx_lib=/path/to/macOS/10.8/`. +* The `with_availability` boolean parameter enables the availability markup. + +Tests can be marked as XFAIL based on multiple features made available by lit: + + +* if either `use_system_cxx_lib` or `with_availability` is passed to lit, + assuming `--param=platform=macosx10.8` is passed as well the following + features will be available: + + - availability + - availability=x86_64 + - availability=macosx + - availability=x86_64-macosx + - availability=x86_64-apple-macosx10.8 + - availability=macosx10.8 + + This feature is used to XFAIL a test that *is* using a class of a method marked + as unavailable *and* that is expected to *fail* if deployed on an older system. + +* if `use_system_cxx_lib` is passed to lit, the following features will also + be available: + + - with_system_cxx_lib + - with_system_cxx_lib=x86_64 + - with_system_cxx_lib=macosx + - with_system_cxx_lib=x86_64-macosx + - with_system_cxx_lib=x86_64-apple-macosx10.8 + - with_system_cxx_lib=macosx10.8 + + This feature is used to XFAIL a test that is *not* using a class of a method + marked as unavailable *but* that is expected to fail if deployed on an older + system. For example if we know that it exhibits a but in the libc on a + particular system version. + +* if `with_availability` is passed to lit, the following features will also + be available: + + - availability_markup + - availability_markup=x86_64 + - availability_markup=macosx + - availability_markup=x86_64-macosx + - availability_markup=x86_64-apple-macosx10.8 + - availability_markup=macosx10.8 + + This feature is used to XFAIL a test that *is* using a class of a method + marked as unavailable *but* that is expected to *pass* if deployed on an older + system. For example if it is using a symbol in a statically evaluated context. Modified: vendor/libc++/dist/docs/index.rst ============================================================================== --- vendor/libc++/dist/docs/index.rst Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/docs/index.rst Mon May 8 17:13:34 2017 (r317955) @@ -128,6 +128,7 @@ Design Documents .. toctree:: :maxdepth: 1 + DesignDocs/AvailabilityMarkup DesignDocs/DebugMode DesignDocs/CapturingConfigInfo DesignDocs/ABIVersioning @@ -145,7 +146,7 @@ Build Bots and Test Coverage * `LLVM Buildbot Builders `_ * `Apple Jenkins Builders `_ -* `EricWF's Nightly Builders `_ +* `Windows Appveyor Builders `_ * `Code Coverage Results `_ Getting Involved Modified: vendor/libc++/dist/include/__config ============================================================================== --- vendor/libc++/dist/include/__config Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/include/__config Mon May 8 17:13:34 2017 (r317955) @@ -314,7 +314,7 @@ typedef __char32_t char32_t; #define _LIBCPP_NO_EXCEPTIONS #endif -#if !(__has_feature(cxx_rtti)) +#if !(__has_feature(cxx_rtti)) && !defined(_LIBCPP_NO_RTTI) #define _LIBCPP_NO_RTTI #endif @@ -1089,6 +1089,13 @@ _LIBCPP_FUNC_VIS extern "C" void __sanit # define _LIBCPP_DIAGNOSE_ERROR(...) #endif +#if __has_attribute(fallthough) || _GNUC_VER >= 700 +// Use a function like macro to imply that it must be followed by a semicolon +#define _LIBCPP_FALLTHROUGH() __attribute__((__fallthrough__)) +#else +#define _LIBCPP_FALLTHROUGH() ((void)0) +#endif + #if defined(_LIBCPP_ABI_MICROSOFT) && \ (defined(_LIBCPP_COMPILER_MSVC) || __has_declspec_attribute(empty_bases)) # define _LIBCPP_DECLSPEC_EMPTY_BASES __declspec(empty_bases) @@ -1113,4 +1120,77 @@ _LIBCPP_FUNC_VIS extern "C" void __sanit #endif // __cplusplus +// Decide whether to use availability macros. +#if !defined(_LIBCPP_BUILDING_LIBRARY) && \ + !defined(_LIBCPP_DISABLE_AVAILABILITY) && \ + __has_feature(attribute_availability_with_strict) && \ + __has_feature(attribute_availability_in_templates) +#ifdef __APPLE__ +#define _LIBCPP_USE_AVAILABILITY_APPLE +#endif +#endif + +// Define availability macros. +#if defined(_LIBCPP_USE_AVAILABILITY_APPLE) +#define _LIBCPP_AVAILABILITY_SHARED_MUTEX \ + __attribute__((availability(macosx,strict,introduced=10.12))) \ + __attribute__((availability(ios,strict,introduced=10.0))) \ + __attribute__((availability(tvos,strict,introduced=10.0))) \ + __attribute__((availability(watchos,strict,introduced=3.0))) +#define _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS __attribute__((unavailable)) +#define _LIBCPP_AVAILABILITY_BAD_ARRAY_LENGTH __attribute__((unavailable)) +#define _LIBCPP_AVAILABILITY_UNCAUGHT_EXCEPTIONS \ + __attribute__((availability(macosx,strict,introduced=10.12))) \ + __attribute__((availability(ios,strict,introduced=10.0))) \ + __attribute__((availability(tvos,strict,introduced=10.0))) \ + __attribute__((availability(watchos,strict,introduced=3.0))) +#define _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE \ + __attribute__((availability(macosx,strict,introduced=10.12))) \ + __attribute__((availability(ios,strict,introduced=10.0))) \ + __attribute__((availability(tvos,strict,introduced=10.0))) \ + __attribute__((availability(watchos,strict,introduced=3.0))) +#define _LIBCPP_AVAILABILITY_FUTURE_ERROR \ + __attribute__((availability(ios,strict,introduced=6.0))) +#define _LIBCPP_AVAILABILITY_TYPEINFO_VTABLE \ + __attribute__((availability(macosx,strict,introduced=10.9))) \ + __attribute__((availability(ios,strict,introduced=7.0))) +#define _LIBCPP_AVAILABILITY_LOCALE_CATEGORY \ + __attribute__((availability(macosx,strict,introduced=10.9))) \ + __attribute__((availability(ios,strict,introduced=7.0))) +#define _LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR \ + __attribute__((availability(macosx,strict,introduced=10.9))) \ + __attribute__((availability(ios,strict,introduced=7.0))) +#else +#define _LIBCPP_AVAILABILITY_SHARED_MUTEX +#define _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS +#define _LIBCPP_AVAILABILITY_BAD_ARRAY_LENGTH +#define _LIBCPP_AVAILABILITY_UNCAUGHT_EXCEPTIONS +#define _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE +#define _LIBCPP_AVAILABILITY_FUTURE_ERROR +#define _LIBCPP_AVAILABILITY_TYPEINFO_VTABLE +#define _LIBCPP_AVAILABILITY_LOCALE_CATEGORY +#define _LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR +#endif + +// Define availability that depends on _LIBCPP_NO_EXCEPTIONS. +#ifdef _LIBCPP_NO_EXCEPTIONS +#define _LIBCPP_AVAILABILITY_DYNARRAY +#define _LIBCPP_AVAILABILITY_FUTURE +#else +#define _LIBCPP_AVAILABILITY_DYNARRAY _LIBCPP_AVAILABILITY_BAD_ARRAY_LENGTH +#define _LIBCPP_AVAILABILITY_FUTURE _LIBCPP_AVAILABILITY_FUTURE_ERROR +#endif + +// Availability of stream API in the dylib got dropped and re-added. The +// extern template should effectively be available at: +// availability(macosx,introduced=10.9) +// availability(ios,introduced=7.0) +#if defined(_LIBCPP_USE_AVAILABILITY_APPLE) && \ + ((defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \ + __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ <= 1090) || \ + (defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && \ + __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ <= 70000)) +#define _LIBCPP_AVAILABILITY_NO_STREAMS_EXTERN_TEMPLATE +#endif + #endif // _LIBCPP_CONFIG Modified: vendor/libc++/dist/include/__locale ============================================================================== --- vendor/libc++/dist/include/__locale Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/include/__locale Mon May 8 17:13:34 2017 (r317955) @@ -69,6 +69,7 @@ public: class _LIBCPP_TYPE_VIS id; typedef int category; + _LIBCPP_AVAILABILITY_LOCALE_CATEGORY static const category // values assigned here are for exposition only none = 0, collate = LC_COLLATE_MASK, Modified: vendor/libc++/dist/include/__threading_support ============================================================================== --- vendor/libc++/dist/include/__threading_support Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/include/__threading_support Mon May 8 17:13:34 2017 (r317955) @@ -474,7 +474,10 @@ int __libcpp_condvar_timedwait(__libcpp_ timeout_ms.count() > 0 ? timeout_ms.count() : 0, 0)) - return GetLastError(); + { + auto __ec = GetLastError(); + return __ec == ERROR_TIMEOUT ? ETIMEDOUT : __ec; + } return 0; } Modified: vendor/libc++/dist/include/exception ============================================================================== --- vendor/libc++/dist/include/exception Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/include/exception Mon May 8 17:13:34 2017 (r317955) @@ -127,30 +127,33 @@ _LIBCPP_FUNC_VIS terminate_handler get_t _LIBCPP_NORETURN _LIBCPP_FUNC_VIS void terminate() _NOEXCEPT; _LIBCPP_FUNC_VIS bool uncaught_exception() _NOEXCEPT; -_LIBCPP_FUNC_VIS int uncaught_exceptions() _NOEXCEPT; +_LIBCPP_FUNC_VIS _LIBCPP_AVAILABILITY_UNCAUGHT_EXCEPTIONS int uncaught_exceptions() _NOEXCEPT; class _LIBCPP_TYPE_VIS exception_ptr; _LIBCPP_FUNC_VIS exception_ptr current_exception() _NOEXCEPT; _LIBCPP_NORETURN _LIBCPP_FUNC_VIS void rethrow_exception(exception_ptr); +#ifndef _LIBCPP_ABI_MICROSOFT + class _LIBCPP_TYPE_VIS exception_ptr { void* __ptr_; public: _LIBCPP_INLINE_VISIBILITY exception_ptr() _NOEXCEPT : __ptr_() {} _LIBCPP_INLINE_VISIBILITY exception_ptr(nullptr_t) _NOEXCEPT : __ptr_() {} + exception_ptr(const exception_ptr&) _NOEXCEPT; exception_ptr& operator=(const exception_ptr&) _NOEXCEPT; ~exception_ptr() _NOEXCEPT; - _LIBCPP_INLINE_VISIBILITY - _LIBCPP_EXPLICIT - operator bool() const _NOEXCEPT {return __ptr_ != nullptr;} + _LIBCPP_INLINE_VISIBILITY _LIBCPP_EXPLICIT operator bool() const _NOEXCEPT + {return __ptr_ != nullptr;} friend _LIBCPP_INLINE_VISIBILITY bool operator==(const exception_ptr& __x, const exception_ptr& __y) _NOEXCEPT {return __x.__ptr_ == __y.__ptr_;} + friend _LIBCPP_INLINE_VISIBILITY bool operator!=(const exception_ptr& __x, const exception_ptr& __y) _NOEXCEPT {return !(__x == __y);} @@ -178,6 +181,54 @@ make_exception_ptr(_Ep __e) _NOEXCEPT #endif } +#else // _LIBCPP_ABI_MICROSOFT + +class _LIBCPP_TYPE_VIS exception_ptr +{ +#if defined(__clang__) +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-private-field" +#endif + void* __ptr1_; + void* __ptr2_; +#if defined(__clang__) +#pragma clang diagnostic pop +#endif +public: + exception_ptr() _NOEXCEPT; + exception_ptr(nullptr_t) _NOEXCEPT; + exception_ptr(const exception_ptr& __other) _NOEXCEPT; + exception_ptr& operator=(const exception_ptr& __other) _NOEXCEPT; + exception_ptr& operator=(nullptr_t) _NOEXCEPT; + ~exception_ptr() _NOEXCEPT; + _LIBCPP_EXPLICIT operator bool() const _NOEXCEPT; +}; + +_LIBCPP_FUNC_VIS +bool operator==(const exception_ptr& __x, const exception_ptr& __y) _NOEXCEPT; + +inline _LIBCPP_INLINE_VISIBILITY +bool operator!=(const exception_ptr& __x, const exception_ptr& __y) _NOEXCEPT + {return !(__x == __y);} + +_LIBCPP_FUNC_VIS void swap(exception_ptr&, exception_ptr&) _NOEXCEPT; + +_LIBCPP_FUNC_VIS exception_ptr __copy_exception_ptr(void *__except, const void* __ptr); +_LIBCPP_FUNC_VIS exception_ptr current_exception() _NOEXCEPT; +_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void rethrow_exception(exception_ptr p); + +// This is a built-in template function which automagically extracts the required +// information. +template void *__GetExceptionInfo(_E); + +template +exception_ptr +make_exception_ptr(_Ep __e) _NOEXCEPT +{ + return __copy_exception_ptr(_VSTD::addressof(__e), __GetExceptionInfo(__e)); +} + +#endif // _LIBCPP_ABI_MICROSOFT // nested_exception class _LIBCPP_EXCEPTION_ABI nested_exception Modified: vendor/libc++/dist/include/experimental/dynarray ============================================================================== --- vendor/libc++/dist/include/experimental/dynarray Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/include/experimental/dynarray Mon May 8 17:13:34 2017 (r317955) @@ -110,7 +110,7 @@ public: namespace std { namespace experimental { inline namespace __array_extensions_v1 { template -struct _LIBCPP_TEMPLATE_VIS dynarray +struct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_DYNARRAY dynarray { public: // types: Modified: vendor/libc++/dist/include/experimental/optional ============================================================================== --- vendor/libc++/dist/include/experimental/optional Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/include/experimental/optional Mon May 8 17:13:34 2017 (r317955) @@ -145,7 +145,7 @@ namespace std { namespace experimental { #include _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL -class _LIBCPP_EXCEPTION_ABI bad_optional_access +class _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS bad_optional_access : public std::logic_error { public: @@ -523,6 +523,9 @@ public: constexpr explicit operator bool() const noexcept {return this->__engaged_;} _LIBCPP_NORETURN _LIBCPP_INLINE_VISIBILITY +#ifndef _LIBCPP_NO_EXCEPTIONS +_LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS +#endif constexpr void __throw_bad_optional_access() const { #ifndef _LIBCPP_NO_EXCEPTIONS @@ -532,7 +535,7 @@ public: #endif } - _LIBCPP_INLINE_VISIBILITY + _LIBCPP_INLINE_VISIBILITY _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS constexpr value_type const& value() const { if (!this->__engaged_) @@ -540,7 +543,7 @@ public: return this->__val_; } - _LIBCPP_INLINE_VISIBILITY + _LIBCPP_INLINE_VISIBILITY _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS value_type& value() { if (!this->__engaged_) Modified: vendor/libc++/dist/include/functional ============================================================================== --- vendor/libc++/dist/include/functional Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/include/functional Mon May 8 17:13:34 2017 (r317955) @@ -2224,7 +2224,7 @@ typename __bind_return<_Fp, _BoundArgs, __apply_functor(_Fp& __f, _BoundArgs& __bound_args, __tuple_indices<_Indx...>, _Args&& __args) { - return __invoke(__f, __mu(_VSTD::get<_Indx>(__bound_args), __args)...); + return _VSTD::__invoke(__f, _VSTD::__mu(_VSTD::get<_Indx>(__bound_args), __args)...); } template @@ -2257,7 +2257,7 @@ public: typename __bind_return<_Fd, _Td, tuple<_Args&&...> >::type operator()(_Args&& ...__args) { - return __apply_functor(__f_, __bound_args_, __indices(), + return _VSTD::__apply_functor(__f_, __bound_args_, __indices(), tuple<_Args&&...>(_VSTD::forward<_Args>(__args)...)); } @@ -2266,7 +2266,7 @@ public: typename __bind_return >::type operator()(_Args&& ...__args) const { - return __apply_functor(__f_, __bound_args_, __indices(), + return _VSTD::__apply_functor(__f_, __bound_args_, __indices(), tuple<_Args&&...>(_VSTD::forward<_Args>(__args)...)); } }; Modified: vendor/libc++/dist/include/future ============================================================================== --- vendor/libc++/dist/include/future Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/include/future Mon May 8 17:13:34 2017 (r317955) @@ -499,7 +499,7 @@ make_error_condition(future_errc __e) _N return error_condition(static_cast(__e), future_category()); } -class _LIBCPP_EXCEPTION_ABI future_error +class _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_FUTURE_ERROR future_error : public logic_error { error_code __ec_; @@ -515,6 +515,9 @@ public: }; _LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE +#ifndef _LIBCPP_NO_EXCEPTIONS +_LIBCPP_AVAILABILITY_FUTURE_ERROR +#endif void __throw_future_error(future_errc _Ev) { #ifndef _LIBCPP_NO_EXCEPTIONS @@ -525,7 +528,7 @@ void __throw_future_error(future_errc _E #endif } -class _LIBCPP_TYPE_VIS __assoc_sub_state +class _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_FUTURE __assoc_sub_state : public __shared_count { protected: @@ -612,7 +615,7 @@ __assoc_sub_state::wait_for(const chrono } template -class __assoc_state +class _LIBCPP_AVAILABILITY_FUTURE __assoc_state : public __assoc_sub_state { typedef __assoc_sub_state base; @@ -652,6 +655,7 @@ __assoc_state<_Rp>::__on_zero_shared() _ template template +_LIBCPP_AVAILABILITY_FUTURE void #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES __assoc_state<_Rp>::set_value(_Arg&& __arg) @@ -707,7 +711,7 @@ __assoc_state<_Rp>::copy() } template -class __assoc_state<_Rp&> +class _LIBCPP_AVAILABILITY_FUTURE __assoc_state<_Rp&> : public __assoc_sub_state { typedef __assoc_sub_state base; @@ -767,7 +771,7 @@ __assoc_state<_Rp&>::copy() } template -class __assoc_state_alloc +class _LIBCPP_AVAILABILITY_FUTURE __assoc_state_alloc : public __assoc_state<_Rp> { typedef __assoc_state<_Rp> base; @@ -795,7 +799,7 @@ __assoc_state_alloc<_Rp, _Alloc>::__on_z } template -class __assoc_state_alloc<_Rp&, _Alloc> +class _LIBCPP_AVAILABILITY_FUTURE __assoc_state_alloc<_Rp&, _Alloc> : public __assoc_state<_Rp&> { typedef __assoc_state<_Rp&> base; @@ -821,7 +825,7 @@ __assoc_state_alloc<_Rp&, _Alloc>::__on_ } template -class __assoc_sub_state_alloc +class _LIBCPP_AVAILABILITY_FUTURE __assoc_sub_state_alloc : public __assoc_sub_state { typedef __assoc_sub_state base; @@ -847,7 +851,7 @@ __assoc_sub_state_alloc<_Alloc>::__on_ze } template -class __deferred_assoc_state +class _LIBCPP_AVAILABILITY_FUTURE __deferred_assoc_state : public __assoc_state<_Rp> { typedef __assoc_state<_Rp> base; @@ -894,7 +898,7 @@ __deferred_assoc_state<_Rp, _Fp>::__exec } template -class __deferred_assoc_state +class _LIBCPP_AVAILABILITY_FUTURE __deferred_assoc_state : public __assoc_sub_state { typedef __assoc_sub_state base; @@ -942,7 +946,7 @@ __deferred_assoc_state::__exe } template -class __async_assoc_state +class _LIBCPP_AVAILABILITY_FUTURE __async_assoc_state : public __assoc_state<_Rp> { typedef __assoc_state<_Rp> base; @@ -997,7 +1001,7 @@ __async_assoc_state<_Rp, _Fp>::__on_zero } template -class __async_assoc_state +class _LIBCPP_AVAILABILITY_FUTURE __async_assoc_state : public __assoc_sub_state { typedef __assoc_sub_state base; @@ -1076,7 +1080,7 @@ __make_async_assoc_state(_Fp __f); #endif template -class _LIBCPP_TEMPLATE_VIS future +class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE future { __assoc_state<_Rp>* __state_; @@ -1179,7 +1183,7 @@ future<_Rp>::get() } template -class _LIBCPP_TEMPLATE_VIS future<_Rp&> +class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE future<_Rp&> { __assoc_state<_Rp&>* __state_; @@ -1277,7 +1281,7 @@ future<_Rp&>::get() } template <> -class _LIBCPP_TYPE_VIS future +class _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_FUTURE future { __assoc_sub_state* __state_; @@ -1360,7 +1364,7 @@ swap(future<_Rp>& __x, future<_Rp>& __y) template class packaged_task; template -class _LIBCPP_TEMPLATE_VIS promise +class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE promise { __assoc_state<_Rp>* __state_; @@ -1527,7 +1531,7 @@ promise<_Rp>::set_exception_at_thread_ex // promise template -class _LIBCPP_TEMPLATE_VIS promise<_Rp&> +class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE promise<_Rp&> { __assoc_state<_Rp&>* __state_; @@ -1663,7 +1667,7 @@ promise<_Rp&>::set_exception_at_thread_e // promise template <> -class _LIBCPP_TYPE_VIS promise +class _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_FUTURE promise { __assoc_sub_state* __state_; @@ -1749,7 +1753,7 @@ template template class __packaged_task_base; template -class __packaged_task_base<_Rp(_ArgTypes...)> +class _LIBCPP_AVAILABILITY_FUTURE __packaged_task_base<_Rp(_ArgTypes...)> { __packaged_task_base(const __packaged_task_base&); __packaged_task_base& operator=(const __packaged_task_base&); @@ -1767,7 +1771,7 @@ public: template class __packaged_task_func; template -class __packaged_task_func<_Fp, _Alloc, _Rp(_ArgTypes...)> +class _LIBCPP_AVAILABILITY_FUTURE __packaged_task_func<_Fp, _Alloc, _Rp(_ArgTypes...)> : public __packaged_task_base<_Rp(_ArgTypes...)> { __compressed_pair<_Fp, _Alloc> __f_; @@ -1825,7 +1829,7 @@ __packaged_task_func<_Fp, _Alloc, _Rp(_A template class __packaged_task_function; template -class __packaged_task_function<_Rp(_ArgTypes...)> +class _LIBCPP_AVAILABILITY_FUTURE __packaged_task_function<_Rp(_ArgTypes...)> { typedef __packaged_task_base<_Rp(_ArgTypes...)> __base; typename aligned_storage<3*sizeof(void*)>::type __buf_; @@ -2000,7 +2004,7 @@ __packaged_task_function<_Rp(_ArgTypes.. } template -class _LIBCPP_TEMPLATE_VIS packaged_task<_Rp(_ArgTypes...)> +class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE packaged_task<_Rp(_ArgTypes...)> { public: typedef _Rp result_type; // extension @@ -2129,7 +2133,7 @@ packaged_task<_Rp(_ArgTypes...)>::reset( } template -class _LIBCPP_TEMPLATE_VIS packaged_task +class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE packaged_task { public: typedef void result_type; // extension @@ -2517,7 +2521,7 @@ shared_future<_Rp&>::operator=(const sha } template <> -class _LIBCPP_TYPE_VIS shared_future +class _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_FUTURE shared_future { __assoc_sub_state* __state_; Modified: vendor/libc++/dist/include/istream ============================================================================== --- vendor/libc++/dist/include/istream Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/include/istream Mon May 8 17:13:34 2017 (r317955) @@ -1675,9 +1675,11 @@ operator>>(basic_istream<_CharT, _Traits return __is; } +#ifndef _LIBCPP_AVAILABILITY_NO_STREAMS_EXTERN_TEMPLATE _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_istream) _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_istream) _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_iostream) +#endif _LIBCPP_END_NAMESPACE_STD Modified: vendor/libc++/dist/include/locale ============================================================================== --- vendor/libc++/dist/include/locale Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/include/locale Mon May 8 17:13:34 2017 (r317955) @@ -1402,6 +1402,7 @@ num_put<_CharT, _OutputIterator>::do_put this->__format_int(__fmt+1, __len, true, __iob.flags()); const unsigned __nbuf = (numeric_limits::digits / 3) + ((numeric_limits::digits % 3) != 0) + + ((__iob.flags() & ios_base::showbase) != 0) + 2; char __nar[__nbuf]; int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); @@ -1428,6 +1429,7 @@ num_put<_CharT, _OutputIterator>::do_put this->__format_int(__fmt+1, __len, true, __iob.flags()); const unsigned __nbuf = (numeric_limits::digits / 3) + ((numeric_limits::digits % 3) != 0) + + ((__iob.flags() & ios_base::showbase) != 0) + 2; char __nar[__nbuf]; int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); @@ -1454,6 +1456,7 @@ num_put<_CharT, _OutputIterator>::do_put this->__format_int(__fmt+1, __len, false, __iob.flags()); const unsigned __nbuf = (numeric_limits::digits / 3) + ((numeric_limits::digits % 3) != 0) + + ((__iob.flags() & ios_base::showbase) != 0) + 1; char __nar[__nbuf]; int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); @@ -1480,6 +1483,7 @@ num_put<_CharT, _OutputIterator>::do_put this->__format_int(__fmt+1, __len, false, __iob.flags()); const unsigned __nbuf = (numeric_limits::digits / 3) + ((numeric_limits::digits % 3) != 0) + + ((__iob.flags() & ios_base::showbase) != 0) + 1; char __nar[__nbuf]; int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v); @@ -1685,6 +1689,22 @@ protected: ~__time_get_c_storage() {} }; +template <> _LIBCPP_FUNC_VIS const string* __time_get_c_storage::__weeks() const; +template <> _LIBCPP_FUNC_VIS const string* __time_get_c_storage::__months() const; +template <> _LIBCPP_FUNC_VIS const string* __time_get_c_storage::__am_pm() const; +template <> _LIBCPP_FUNC_VIS const string& __time_get_c_storage::__c() const; +template <> _LIBCPP_FUNC_VIS const string& __time_get_c_storage::__r() const; +template <> _LIBCPP_FUNC_VIS const string& __time_get_c_storage::__x() const; +template <> _LIBCPP_FUNC_VIS const string& __time_get_c_storage::__X() const; + +template <> _LIBCPP_FUNC_VIS const wstring* __time_get_c_storage::__weeks() const; +template <> _LIBCPP_FUNC_VIS const wstring* __time_get_c_storage::__months() const; +template <> _LIBCPP_FUNC_VIS const wstring* __time_get_c_storage::__am_pm() const; +template <> _LIBCPP_FUNC_VIS const wstring& __time_get_c_storage::__c() const; +template <> _LIBCPP_FUNC_VIS const wstring& __time_get_c_storage::__r() const; +template <> _LIBCPP_FUNC_VIS const wstring& __time_get_c_storage::__x() const; +template <> _LIBCPP_FUNC_VIS const wstring& __time_get_c_storage::__X() const; + template > class _LIBCPP_TEMPLATE_VIS time_get : public locale::facet, @@ -2825,7 +2845,7 @@ money_get<_CharT, _InputIterator>::__do_ return false; } } - // drop through + _LIBCPP_FALLTHROUGH(); case money_base::none: if (__p != 3) { Modified: vendor/libc++/dist/include/memory ============================================================================== --- vendor/libc++/dist/include/memory Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/include/memory Mon May 8 17:13:34 2017 (r317955) @@ -3559,7 +3559,7 @@ template ::__get_deleter(const type_info& __t) const _NOEXCEPT { - return __t == typeid(_Dp) ? _VSTD::addressof(__data_.first().second()) : 0; + return __t == typeid(_Dp) ? _VSTD::addressof(__data_.first().second()) : nullptr; } #endif // _LIBCPP_NO_RTTI @@ -5293,7 +5293,8 @@ private: friend _LIBCPP_FUNC_VIS __sp_mut& __get_sp_mut(const void*); }; -_LIBCPP_FUNC_VIS __sp_mut& __get_sp_mut(const void*); +_LIBCPP_FUNC_VIS _LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR +__sp_mut& __get_sp_mut(const void*); template inline _LIBCPP_INLINE_VISIBILITY @@ -5304,6 +5305,7 @@ atomic_is_lock_free(const shared_ptr<_Tp } template +_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR shared_ptr<_Tp> atomic_load(const shared_ptr<_Tp>* __p) { @@ -5316,6 +5318,7 @@ atomic_load(const shared_ptr<_Tp>* __p) template inline _LIBCPP_INLINE_VISIBILITY +_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR shared_ptr<_Tp> atomic_load_explicit(const shared_ptr<_Tp>* __p, memory_order) { @@ -5323,6 +5326,7 @@ atomic_load_explicit(const shared_ptr<_T } template +_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR void atomic_store(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) { @@ -5334,6 +5338,7 @@ atomic_store(shared_ptr<_Tp>* __p, share template inline _LIBCPP_INLINE_VISIBILITY +_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR void atomic_store_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, memory_order) { @@ -5341,6 +5346,7 @@ atomic_store_explicit(shared_ptr<_Tp>* _ } template +_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR shared_ptr<_Tp> atomic_exchange(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r) { @@ -5353,6 +5359,7 @@ atomic_exchange(shared_ptr<_Tp>* __p, sh template inline _LIBCPP_INLINE_VISIBILITY +_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR shared_ptr<_Tp> atomic_exchange_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, memory_order) { @@ -5360,6 +5367,7 @@ atomic_exchange_explicit(shared_ptr<_Tp> } template +_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR bool atomic_compare_exchange_strong(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w) { @@ -5381,6 +5389,7 @@ atomic_compare_exchange_strong(shared_pt template inline _LIBCPP_INLINE_VISIBILITY +_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR bool atomic_compare_exchange_weak(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w) { @@ -5389,6 +5398,7 @@ atomic_compare_exchange_weak(shared_ptr< template inline _LIBCPP_INLINE_VISIBILITY +_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR bool atomic_compare_exchange_strong_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w, memory_order, memory_order) @@ -5398,6 +5408,7 @@ atomic_compare_exchange_strong_explicit( template inline _LIBCPP_INLINE_VISIBILITY +_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR bool atomic_compare_exchange_weak_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w, memory_order, memory_order) Modified: vendor/libc++/dist/include/new ============================================================================== --- vendor/libc++/dist/include/new Mon May 8 17:13:29 2017 (r317954) +++ vendor/libc++/dist/include/new Mon May 8 17:13:34 2017 (r317955) @@ -146,9 +146,8 @@ _LIBCPP_NORETURN _LIBCPP_FUNC_VIS void _ #if defined(_LIBCPP_BUILDING_LIBRARY) || (_LIBCPP_STD_VER > 11) -class _LIBCPP_EXCEPTION_ABI bad_array_length - : public bad_alloc -{ +class _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_ARRAY_LENGTH + bad_array_length : public bad_alloc { public: bad_array_length() _NOEXCEPT; virtual ~bad_array_length() _NOEXCEPT; @@ -182,7 +181,7 @@ _LIBCPP_OVERRIDABLE_FUNC_VIS void* opera _LIBCPP_OVERRIDABLE_FUNC_VIS void operator delete(void* __p) _NOEXCEPT; _LIBCPP_OVERRIDABLE_FUNC_VIS void operator delete(void* __p, const std::nothrow_t&) _NOEXCEPT; #ifndef _LIBCPP_HAS_NO_SIZED_DEALLOCATION -_LIBCPP_OVERRIDABLE_FUNC_VIS void operator delete(void* __p, std::size_t __sz) _NOEXCEPT; +_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void operator delete(void* __p, std::size_t __sz) _NOEXCEPT; #endif _LIBCPP_OVERRIDABLE_FUNC_VIS void* operator new[](std::size_t __sz) _THROW_BAD_ALLOC; @@ -190,7 +189,7 @@ _LIBCPP_OVERRIDABLE_FUNC_VIS void* opera _LIBCPP_OVERRIDABLE_FUNC_VIS void operator delete[](void* __p) _NOEXCEPT; _LIBCPP_OVERRIDABLE_FUNC_VIS void operator delete[](void* __p, const std::nothrow_t&) _NOEXCEPT; *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***