Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 May 2017 17:13:34 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: 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...
Message-ID:  <201705081713.v48HDYuG042894@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 <https://clang.llvm.org/docs/AttributeReference.html#availability>`_
+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 <http://lab.llvm.org:8011/console>`_
 * `Apple Jenkins Builders <http://lab.llvm.org:8080/green/view/Libcxx/>`_
-* `EricWF's Nightly Builders <http://ds2.efcs.ca:8080/console>`_
+* `Windows Appveyor Builders <https://ci.appveyor.com/project/llvm-mirror/libcxx>`_
 * `Code Coverage Results <http://efcs.ca/libcxx-coverage>`_
 
 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 <class _E> void *__GetExceptionInfo(_E);
+
+template<class _Ep>
+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 <class _Tp>
-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 <stdexcept>
 
 _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<class _Fp, class ..._BoundArgs>
@@ -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<const _Fd, const _Td, tuple<_Args&&...> >::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<int>(__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 _Rp>
-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 <class _Rp>
 template <class _Arg>
+_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 _Rp>
-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 _Rp, class _Alloc>
-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 _Rp, class _Alloc>
-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 _Alloc>
-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 _Rp, class _Fp>
-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 _Fp>
-class __deferred_assoc_state<void, _Fp>
+class _LIBCPP_AVAILABILITY_FUTURE __deferred_assoc_state<void, _Fp>
     : public __assoc_sub_state
 {
     typedef __assoc_sub_state base;
@@ -942,7 +946,7 @@ __deferred_assoc_state<void, _Fp>::__exe
 }
 
 template <class _Rp, class _Fp>
-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 _Fp>
-class __async_assoc_state<void, _Fp>
+class _LIBCPP_AVAILABILITY_FUTURE __async_assoc_state<void, _Fp>
     : public __assoc_sub_state
 {
     typedef __assoc_sub_state base;
@@ -1076,7 +1080,7 @@ __make_async_assoc_state(_Fp __f);
 #endif
 
 template <class _Rp>
-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 _Rp>
-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<void>
+class _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_FUTURE future<void>
 {
     __assoc_sub_state* __state_;
 
@@ -1360,7 +1364,7 @@ swap(future<_Rp>& __x, future<_Rp>& __y)
 template <class _Callable> class packaged_task;
 
 template <class _Rp>
-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<R&>
 
 template <class _Rp>
-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<void>
 
 template <>
-class _LIBCPP_TYPE_VIS promise<void>
+class _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_FUTURE promise<void>
 {
     __assoc_sub_state* __state_;
 
@@ -1749,7 +1753,7 @@ template <class _Rp, class _Alloc>
 template<class _Fp> class __packaged_task_base;
 
 template<class _Rp, class ..._ArgTypes>
-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 _FD, class _Alloc, class _FB> class __packaged_task_func;
 
 template<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>
-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 _Callable> class __packaged_task_function;
 
 template<class _Rp, class ..._ArgTypes>
-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 _Rp, class ..._ArgTypes>
-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 ..._ArgTypes>
-class _LIBCPP_TEMPLATE_VIS packaged_task<void(_ArgTypes...)>
+class _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE packaged_task<void(_ArgTypes...)>
 {
 public:
     typedef void result_type; // extension
@@ -2517,7 +2521,7 @@ shared_future<_Rp&>::operator=(const sha
 }
 
 template <>
-class _LIBCPP_TYPE_VIS shared_future<void>
+class _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_FUTURE shared_future<void>
 {
     __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<char>)
 _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_istream<wchar_t>)
 _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_iostream<char>)
+#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<long>::digits / 3)
                           + ((numeric_limits<long>::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<long long>::digits / 3)
                           + ((numeric_limits<long long>::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<unsigned long>::digits / 3)
                           + ((numeric_limits<unsigned long>::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<unsigned long long>::digits / 3)
                           + ((numeric_limits<unsigned long long>::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<char>::__weeks() const;
+template <> _LIBCPP_FUNC_VIS const string* __time_get_c_storage<char>::__months() const;
+template <> _LIBCPP_FUNC_VIS const string* __time_get_c_storage<char>::__am_pm() const;
+template <> _LIBCPP_FUNC_VIS const string& __time_get_c_storage<char>::__c() const;
+template <> _LIBCPP_FUNC_VIS const string& __time_get_c_storage<char>::__r() const;
+template <> _LIBCPP_FUNC_VIS const string& __time_get_c_storage<char>::__x() const;
+template <> _LIBCPP_FUNC_VIS const string& __time_get_c_storage<char>::__X() const;
+
+template <> _LIBCPP_FUNC_VIS const wstring* __time_get_c_storage<wchar_t>::__weeks() const;
+template <> _LIBCPP_FUNC_VIS const wstring* __time_get_c_storage<wchar_t>::__months() const;
+template <> _LIBCPP_FUNC_VIS const wstring* __time_get_c_storage<wchar_t>::__am_pm() const;
+template <> _LIBCPP_FUNC_VIS const wstring& __time_get_c_storage<wchar_t>::__c() const;
+template <> _LIBCPP_FUNC_VIS const wstring& __time_get_c_storage<wchar_t>::__r() const;
+template <> _LIBCPP_FUNC_VIS const wstring& __time_get_c_storage<wchar_t>::__x() const;
+template <> _LIBCPP_FUNC_VIS const wstring& __time_get_c_storage<wchar_t>::__X() const;
+
 template <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >
 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 <class _Tp, class _Dp, class _A
 const void*
 __shared_ptr_pointer<_Tp, _Dp, _Alloc>::__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 <class _Tp>
 inline _LIBCPP_INLINE_VISIBILITY
@@ -5304,6 +5305,7 @@ atomic_is_lock_free(const shared_ptr<_Tp
 }
 
 template <class _Tp>
+_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 <class _Tp>
 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 <class _Tp>
+_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 <class _Tp>
 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 <class _Tp>
+_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 <class _Tp>
 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 <class _Tp>
+_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 <class _Tp>
 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 <class _Tp>
 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 <class _Tp>
 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 ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201705081713.v48HDYuG042894>