svn commit: r327039 - in projects/clang600-import/contrib/libc++: . include include/experimental src src/experimental/filesystem src/include src/support/runtime
Dimitry Andric
dim at FreeBSD.org
Wed Dec 20 19:16:15 UTC 2017
Author: dim
Date: Wed Dec 20 19:16:11 2017
New Revision: 327039
URL: https://svnweb.freebsd.org/changeset/base/327039
Log:
Merge libc++ trunk r321017 to contrib/libc++.
Modified:
projects/clang600-import/contrib/libc++/CREDITS.TXT
projects/clang600-import/contrib/libc++/include/__config
projects/clang600-import/contrib/libc++/include/__libcpp_version
projects/clang600-import/contrib/libc++/include/__locale
projects/clang600-import/contrib/libc++/include/__tree
projects/clang600-import/contrib/libc++/include/algorithm
projects/clang600-import/contrib/libc++/include/array
projects/clang600-import/contrib/libc++/include/bitset
projects/clang600-import/contrib/libc++/include/chrono
projects/clang600-import/contrib/libc++/include/cstddef
projects/clang600-import/contrib/libc++/include/deque
projects/clang600-import/contrib/libc++/include/exception
projects/clang600-import/contrib/libc++/include/experimental/algorithm
projects/clang600-import/contrib/libc++/include/experimental/filesystem
projects/clang600-import/contrib/libc++/include/experimental/iterator
projects/clang600-import/contrib/libc++/include/forward_list
projects/clang600-import/contrib/libc++/include/fstream
projects/clang600-import/contrib/libc++/include/future
projects/clang600-import/contrib/libc++/include/istream
projects/clang600-import/contrib/libc++/include/iterator
projects/clang600-import/contrib/libc++/include/list
projects/clang600-import/contrib/libc++/include/locale
projects/clang600-import/contrib/libc++/include/map
projects/clang600-import/contrib/libc++/include/memory
projects/clang600-import/contrib/libc++/include/new
projects/clang600-import/contrib/libc++/include/optional
projects/clang600-import/contrib/libc++/include/ostream
projects/clang600-import/contrib/libc++/include/queue
projects/clang600-import/contrib/libc++/include/random
projects/clang600-import/contrib/libc++/include/regex
projects/clang600-import/contrib/libc++/include/scoped_allocator
projects/clang600-import/contrib/libc++/include/set
projects/clang600-import/contrib/libc++/include/sstream
projects/clang600-import/contrib/libc++/include/stack
projects/clang600-import/contrib/libc++/include/streambuf
projects/clang600-import/contrib/libc++/include/string
projects/clang600-import/contrib/libc++/include/string_view
projects/clang600-import/contrib/libc++/include/system_error
projects/clang600-import/contrib/libc++/include/tuple
projects/clang600-import/contrib/libc++/include/type_traits
projects/clang600-import/contrib/libc++/include/typeinfo
projects/clang600-import/contrib/libc++/include/unordered_map
projects/clang600-import/contrib/libc++/include/unordered_set
projects/clang600-import/contrib/libc++/include/utility
projects/clang600-import/contrib/libc++/include/variant
projects/clang600-import/contrib/libc++/include/vector
projects/clang600-import/contrib/libc++/include/wchar.h
projects/clang600-import/contrib/libc++/src/exception.cpp
projects/clang600-import/contrib/libc++/src/experimental/filesystem/directory_iterator.cpp
projects/clang600-import/contrib/libc++/src/experimental/filesystem/operations.cpp
projects/clang600-import/contrib/libc++/src/include/atomic_support.h
projects/clang600-import/contrib/libc++/src/include/config_elast.h
projects/clang600-import/contrib/libc++/src/include/refstring.h
projects/clang600-import/contrib/libc++/src/iostream.cpp
projects/clang600-import/contrib/libc++/src/locale.cpp
projects/clang600-import/contrib/libc++/src/new.cpp
projects/clang600-import/contrib/libc++/src/random.cpp
projects/clang600-import/contrib/libc++/src/strstream.cpp
projects/clang600-import/contrib/libc++/src/support/runtime/exception_fallback.ipp
projects/clang600-import/contrib/libc++/src/support/runtime/exception_msvc.ipp
projects/clang600-import/contrib/libc++/src/support/runtime/exception_pointer_msvc.ipp
projects/clang600-import/contrib/libc++/src/support/runtime/new_handler_fallback.ipp
projects/clang600-import/contrib/libc++/src/system_error.cpp
projects/clang600-import/contrib/libc++/src/typeinfo.cpp
Directory Properties:
projects/clang600-import/contrib/libc++/ (props changed)
Modified: projects/clang600-import/contrib/libc++/CREDITS.TXT
==============================================================================
--- projects/clang600-import/contrib/libc++/CREDITS.TXT Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/CREDITS.TXT Wed Dec 20 19:16:11 2017 (r327039)
@@ -41,6 +41,10 @@ N: Jonathan B Coe
E: jbcoe at me.com
D: Implementation of propagate_const.
+N: Glen Joseph Fernandes
+E: glenjofe at gmail.com
+D: Implementation of to_address.
+
N: Eric Fiselier
E: eric at efcs.ca
D: LFTS support, patches and bug fixes.
Modified: projects/clang600-import/contrib/libc++/include/__config
==============================================================================
--- projects/clang600-import/contrib/libc++/include/__config Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/__config Wed Dec 20 19:16:11 2017 (r327039)
@@ -33,7 +33,7 @@
#define _GNUC_VER_NEW 0
#endif
-#define _LIBCPP_VERSION 5000
+#define _LIBCPP_VERSION 6000
#ifndef _LIBCPP_ABI_VERSION
#define _LIBCPP_ABI_VERSION 1
@@ -45,6 +45,8 @@
#define _LIBCPP_OBJECT_FORMAT_MACHO 1
#elif defined(_WIN32)
#define _LIBCPP_OBJECT_FORMAT_COFF 1
+#elif defined(__wasm__)
+#define _LIBCPP_OBJECT_FORMAT_WASM 1
#else
#error Unknown object file format
#endif
@@ -55,11 +57,11 @@
#define _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT
// Fix deque iterator type in order to support incomplete types.
#define _LIBCPP_ABI_INCOMPLETE_TYPES_IN_DEQUE
-// Fix undefined behavior in how std::list stores it's linked nodes.
+// Fix undefined behavior in how std::list stores its linked nodes.
#define _LIBCPP_ABI_LIST_REMOVE_NODE_POINTER_UB
// Fix undefined behavior in how __tree stores its end and parent nodes.
#define _LIBCPP_ABI_TREE_REMOVE_NODE_POINTER_UB
-// Fix undefined behavior in how __hash_table stores it's pointer types
+// Fix undefined behavior in how __hash_table stores its pointer types.
#define _LIBCPP_ABI_FIX_UNORDERED_NODE_POINTER_UB
#define _LIBCPP_ABI_FORWARD_LIST_REMOVE_NODE_POINTER_UB
#define _LIBCPP_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE
@@ -76,9 +78,11 @@
// its vtable and typeinfo to libc++ rather than having all other libraries
// using that class define their own copies.
#define _LIBCPP_ABI_BAD_FUNCTION_CALL_KEY_FUNCTION
-
// Enable optimized version of __do_get_(un)signed which avoids redundant copies.
#define _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET
+// Use the smallest possible integer type to represent the index of the variant.
+// Previously libc++ used "unsigned int" exclusivly.
+#define _LIBCPP_ABI_VARIANT_INDEX_TYPE_OPTIMIZATION
#elif _LIBCPP_ABI_VERSION == 1
#if !defined(_LIBCPP_OBJECT_FORMAT_COFF)
// Enable compiling copies of now inline methods into the dylib to support
@@ -121,6 +125,9 @@
#ifndef __has_feature
#define __has_feature(__x) 0
#endif
+#ifndef __has_cpp_attribute
+#define __has_cpp_attribute(__x) 0
+#endif
// '__is_identifier' returns '0' if '__x' is a reserved identifier provided by
// the compiler and '1' otherwise.
#ifndef __is_identifier
@@ -157,11 +164,21 @@
// FIXME: ABI detection should be done via compiler builtin macros. This
// is just a placeholder until Clang implements such macros. For now assume
-// that Windows compilers pretending to be MSVC++ target the microsoft ABI.
-#if defined(_WIN32) && defined(_MSC_VER)
+// that Windows compilers pretending to be MSVC++ target the Microsoft ABI,
+// and allow the user to explicitly specify the ABI to handle cases where this
+// heuristic falls short.
+#if defined(_LIBCPP_ABI_FORCE_ITANIUM) && defined(_LIBCPP_ABI_FORCE_MICROSOFT)
+# error "Only one of _LIBCPP_ABI_FORCE_ITANIUM and _LIBCPP_ABI_FORCE_MICROSOFT can be defined"
+#elif defined(_LIBCPP_ABI_FORCE_ITANIUM)
+# define _LIBCPP_ABI_ITANIUM
+#elif defined(_LIBCPP_ABI_FORCE_MICROSOFT)
# define _LIBCPP_ABI_MICROSOFT
#else
-# define _LIBCPP_ABI_ITANIUM
+# if defined(_WIN32) && defined(_MSC_VER)
+# define _LIBCPP_ABI_MICROSOFT
+# else
+# define _LIBCPP_ABI_ITANIUM
+# endif
#endif
// Need to detect which libc we're using if we're on Linux.
@@ -174,36 +191,30 @@
#ifdef __LITTLE_ENDIAN__
#if __LITTLE_ENDIAN__
-#define _LIBCPP_LITTLE_ENDIAN 1
-#define _LIBCPP_BIG_ENDIAN 0
+#define _LIBCPP_LITTLE_ENDIAN
#endif // __LITTLE_ENDIAN__
#endif // __LITTLE_ENDIAN__
#ifdef __BIG_ENDIAN__
#if __BIG_ENDIAN__
-#define _LIBCPP_LITTLE_ENDIAN 0
-#define _LIBCPP_BIG_ENDIAN 1
+#define _LIBCPP_BIG_ENDIAN
#endif // __BIG_ENDIAN__
#endif // __BIG_ENDIAN__
#ifdef __BYTE_ORDER__
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
-#define _LIBCPP_LITTLE_ENDIAN 1
-#define _LIBCPP_BIG_ENDIAN 0
+#define _LIBCPP_LITTLE_ENDIAN
#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
-#define _LIBCPP_LITTLE_ENDIAN 0
-#define _LIBCPP_BIG_ENDIAN 1
+#define _LIBCPP_BIG_ENDIAN
#endif // __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
#endif // __BYTE_ORDER__
#ifdef __FreeBSD__
# include <sys/endian.h>
# if _BYTE_ORDER == _LITTLE_ENDIAN
-# define _LIBCPP_LITTLE_ENDIAN 1
-# define _LIBCPP_BIG_ENDIAN 0
+# define _LIBCPP_LITTLE_ENDIAN
# else // _BYTE_ORDER == _LITTLE_ENDIAN
-# define _LIBCPP_LITTLE_ENDIAN 0
-# define _LIBCPP_BIG_ENDIAN 1
+# define _LIBCPP_BIG_ENDIAN
# endif // _BYTE_ORDER == _LITTLE_ENDIAN
# ifndef __LONG_LONG_SUPPORTED
# define _LIBCPP_HAS_NO_LONG_LONG
@@ -213,19 +224,16 @@
#ifdef __NetBSD__
# include <sys/endian.h>
# if _BYTE_ORDER == _LITTLE_ENDIAN
-# define _LIBCPP_LITTLE_ENDIAN 1
-# define _LIBCPP_BIG_ENDIAN 0
+# define _LIBCPP_LITTLE_ENDIAN
# else // _BYTE_ORDER == _LITTLE_ENDIAN
-# define _LIBCPP_LITTLE_ENDIAN 0
-# define _LIBCPP_BIG_ENDIAN 1
+# define _LIBCPP_BIG_ENDIAN
# endif // _BYTE_ORDER == _LITTLE_ENDIAN
# define _LIBCPP_HAS_QUICK_EXIT
#endif // __NetBSD__
#if defined(_WIN32)
# define _LIBCPP_WIN32API
-# define _LIBCPP_LITTLE_ENDIAN 1
-# define _LIBCPP_BIG_ENDIAN 0
+# define _LIBCPP_LITTLE_ENDIAN
# define _LIBCPP_SHORT_WCHAR 1
// Both MinGW and native MSVC provide a "MSVC"-like enviroment
# define _LIBCPP_MSVCRT_LIKE
@@ -255,11 +263,9 @@
#ifdef __sun__
# include <sys/isa_defs.h>
# ifdef _LITTLE_ENDIAN
-# define _LIBCPP_LITTLE_ENDIAN 1
-# define _LIBCPP_BIG_ENDIAN 0
+# define _LIBCPP_LITTLE_ENDIAN
# else
-# define _LIBCPP_LITTLE_ENDIAN 0
-# define _LIBCPP_BIG_ENDIAN 1
+# define _LIBCPP_BIG_ENDIAN
# endif
#endif // __sun__
@@ -269,6 +275,8 @@
// random data even when using sandboxing mechanisms such as chroots,
// Capsicum, etc.
# define _LIBCPP_USING_ARC4_RANDOM
+#elif defined(__Fuchsia__)
+# define _LIBCPP_USING_GETENTROPY
#elif defined(__native_client__)
// NaCl's sandbox (which PNaCl also runs in) doesn't allow filesystem access,
// including accesses to the special files under /dev. C++11's
@@ -280,18 +288,16 @@
# define _LIBCPP_USING_DEV_RANDOM
#endif
-#if !defined(_LIBCPP_LITTLE_ENDIAN) || !defined(_LIBCPP_BIG_ENDIAN)
+#if !defined(_LIBCPP_LITTLE_ENDIAN) && !defined(_LIBCPP_BIG_ENDIAN)
# include <endian.h>
# if __BYTE_ORDER == __LITTLE_ENDIAN
-# define _LIBCPP_LITTLE_ENDIAN 1
-# define _LIBCPP_BIG_ENDIAN 0
+# define _LIBCPP_LITTLE_ENDIAN
# elif __BYTE_ORDER == __BIG_ENDIAN
-# define _LIBCPP_LITTLE_ENDIAN 0
-# define _LIBCPP_BIG_ENDIAN 1
+# define _LIBCPP_BIG_ENDIAN
# else // __BYTE_ORDER == __BIG_ENDIAN
# error unable to determine endian
# endif
-#endif // !defined(_LIBCPP_LITTLE_ENDIAN) || !defined(_LIBCPP_BIG_ENDIAN)
+#endif // !defined(_LIBCPP_LITTLE_ENDIAN) && !defined(_LIBCPP_BIG_ENDIAN)
#if __has_attribute(__no_sanitize__) && !defined(_LIBCPP_COMPILER_GCC)
#define _LIBCPP_NO_CFI __attribute__((__no_sanitize__("cfi")))
@@ -454,6 +460,10 @@ namespace std {
#define _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK __attribute__((__no_sanitize__("unsigned-integer-overflow")))
#endif
+#if __has_builtin(__builtin_launder)
+#define _LIBCPP_COMPILER_HAS_BUILTIN_LAUNDER
+#endif
+
#elif defined(_LIBCPP_COMPILER_GCC)
#define _ALIGNAS(x) __attribute__((__aligned__(x)))
@@ -536,6 +546,10 @@ namespace std {
#define _LIBCPP_HAS_NO_ASAN
#endif
+#if _GNUC_VER >= 700
+#define _LIBCPP_COMPILER_HAS_BUILTIN_LAUNDER
+#endif
+
#elif defined(_LIBCPP_COMPILER_MSVC)
#define _LIBCPP_TOSTRING2(x) #x
@@ -880,7 +894,7 @@ template <unsigned> struct __static_assert_check {};
#define _LIBCPP_NONUNIQUE_RTTI_BIT (1ULL << 63)
#endif
-#if defined(__APPLE__) || defined(__FreeBSD__) || defined(_LIBCPP_MSVCRT) || \
+#if defined(__APPLE__) || defined(__FreeBSD__) || defined(_LIBCPP_MSVCRT_LIKE) || \
defined(__sun__) || defined(__NetBSD__) || defined(__CloudABI__)
#define _LIBCPP_LOCALE__L_EXTENSIONS 1
#endif
@@ -954,6 +968,18 @@ template <unsigned> struct __static_assert_check {};
#define _LIBCPP_CONSTEXPR_AFTER_CXX14
#endif
+#if _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_HAS_NO_CXX14_CONSTEXPR)
+#define _LIBCPP_CONSTEXPR_AFTER_CXX17 constexpr
+#else
+#define _LIBCPP_CONSTEXPR_AFTER_CXX17
+#endif
+
+#if __has_cpp_attribute(nodiscard) && _LIBCPP_STD_VER > 17 && !defined(_LIBCPP_DISABLE_NODISCARD_AFTER_CXX17)
+#define _LIBCPP_NODISCARD_AFTER_CXX17 [[nodiscard]]
+#else
+#define _LIBCPP_NODISCARD_AFTER_CXX17
+#endif
+
// FIXME: Remove all usages of this macro once compilers catch up.
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606L)
# define _LIBCPP_HAS_NO_INLINE_VARIABLES
@@ -1241,6 +1267,13 @@ _LIBCPP_FUNC_VIS extern "C" void __sanitizer_annotate_
# endif
#endif // defined(_LIBCPP_HAS_NO_PRAGMA_PUSH_POP_MACRO)
+#if defined(_LIBCPP_ABI_MICROSOFT) && !defined(_LIBCPP_BUILDING_LIBRARY)
+# if defined(_DLL)
+# pragma(lib, "c++.lib")
+# else
+# pragma(lib, "libc++.lib")
+# endif
+#endif // defined(_LIBCPP_ABI_MICROSOFT) && !defined(_LIBCPP_BUILDING_LIBRARY)
#endif // __cplusplus
Modified: projects/clang600-import/contrib/libc++/include/__libcpp_version
==============================================================================
--- projects/clang600-import/contrib/libc++/include/__libcpp_version Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/__libcpp_version Wed Dec 20 19:16:11 2017 (r327039)
@@ -1 +1 @@
-5000
+6000
Modified: projects/clang600-import/contrib/libc++/include/__locale
==============================================================================
--- projects/clang600-import/contrib/libc++/include/__locale Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/__locale Wed Dec 20 19:16:11 2017 (r327039)
@@ -49,7 +49,7 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#if !defined(_LIBCPP_LOCALE__L_EXTENSIONS) || defined(_LIBCPP_MSVCRT)
+#if !defined(_LIBCPP_LOCALE__L_EXTENSIONS)
struct __libcpp_locale_guard {
_LIBCPP_INLINE_VISIBILITY
__libcpp_locale_guard(locale_t& __loc) : __old_loc_(uselocale(__loc)) {}
@@ -64,6 +64,32 @@ struct __libcpp_locale_guard {
private:
__libcpp_locale_guard(__libcpp_locale_guard const&);
__libcpp_locale_guard& operator=(__libcpp_locale_guard const&);
+};
+#elif defined(_LIBCPP_MSVCRT_LIKE)
+struct __libcpp_locale_guard {
+ __libcpp_locale_guard(locale_t __l) :
+ __status(_configthreadlocale(_ENABLE_PER_THREAD_LOCALE)),
+ __locale_collate(setlocale(LC_COLLATE, __l.__get_locale())),
+ __locale_ctype(setlocale(LC_CTYPE, __l.__get_locale())),
+ __locale_monetary(setlocale(LC_MONETARY, __l.__get_locale())),
+ __locale_numeric(setlocale(LC_NUMERIC, __l.__get_locale())),
+ __locale_time(setlocale(LC_TIME, __l.__get_locale()))
+ // LC_MESSAGES is not supported on Windows.
+ {}
+ ~__libcpp_locale_guard() {
+ setlocale(LC_COLLATE, __locale_collate);
+ setlocale(LC_CTYPE, __locale_ctype);
+ setlocale(LC_MONETARY, __locale_monetary);
+ setlocale(LC_NUMERIC, __locale_numeric);
+ setlocale(LC_TIME, __locale_time);
+ _configthreadlocale(__status);
+ }
+ int __status;
+ char* __locale_collate;
+ char* __locale_ctype;
+ char* __locale_monetary;
+ char* __locale_numeric;
+ char* __locale_time;
};
#endif
Modified: projects/clang600-import/contrib/libc++/include/__tree
==============================================================================
--- projects/clang600-import/contrib/libc++/include/__tree Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/__tree Wed Dec 20 19:16:11 2017 (r327039)
@@ -84,7 +84,7 @@ __tree_is_left_child(_NodePtr __x) _NOEXCEPT
return __x == __x->__parent_->__left_;
}
-// Determintes if the subtree rooted at __x is a proper red black subtree. If
+// Determines if the subtree rooted at __x is a proper red black subtree. If
// __x is a proper subtree, returns the black height (null counts as 1). If
// __x is an improper subtree, returns 0.
template <class _NodePtr>
@@ -119,7 +119,7 @@ __tree_sub_invariant(_NodePtr __x)
return __h + __x->__is_black_; // return black height of this node
}
-// Determintes if the red black tree rooted at __root is a proper red black tree.
+// Determines if the red black tree rooted at __root is a proper red black tree.
// __root == nullptr is a proper tree. Returns true is __root is a proper
// red black tree, else returns false.
template <class _NodePtr>
Modified: projects/clang600-import/contrib/libc++/include/algorithm
==============================================================================
--- projects/clang600-import/contrib/libc++/include/algorithm Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/algorithm Wed Dec 20 19:16:11 2017 (r327039)
@@ -734,15 +734,15 @@ struct __less<_T1, const _T1>
};
template <class _Predicate>
-class __negate
+class __invert // invert the sense of a comparison
{
private:
_Predicate __p_;
public:
- _LIBCPP_INLINE_VISIBILITY __negate() {}
+ _LIBCPP_INLINE_VISIBILITY __invert() {}
_LIBCPP_INLINE_VISIBILITY
- explicit __negate(_Predicate __p) : __p_(__p) {}
+ explicit __invert(_Predicate __p) : __p_(__p) {}
template <class _T1>
_LIBCPP_INLINE_VISIBILITY
@@ -750,7 +750,7 @@ class __negate (public)
template <class _T1, class _T2>
_LIBCPP_INLINE_VISIBILITY
- bool operator()(const _T1& __x, const _T2& __y) {return !__p_(__x, __y);}
+ bool operator()(const _T1& __x, const _T2& __y) {return __p_(__y, __x);}
};
#ifdef _LIBCPP_DEBUG
@@ -797,7 +797,7 @@ unsigned __ctz(unsigned __x) {
unsigned long where;
// Search from LSB to MSB for first set bit.
// Returns zero if no set bit is found.
- if (_BitScanForward(&where, mask))
+ if (_BitScanForward(&where, __x))
return where;
return 32;
#endif
@@ -823,15 +823,15 @@ unsigned long long __ctz(unsigned long long __x) {
// Returns zero if no set bit is found.
#if defined(_LIBCPP_HAS_BITSCAN64)
(defined(_M_AMD64) || defined(__x86_64__))
- if (_BitScanForward64(&where, mask))
+ if (_BitScanForward64(&where, __x))
return static_cast<int>(where);
#else
// Win32 doesn't have _BitScanForward64 so emulate it with two 32 bit calls.
// Scan the Low Word.
- if (_BitScanForward(&where, static_cast<unsigned long>(mask)))
+ if (_BitScanForward(&where, static_cast<unsigned long>(__x)))
return where;
// Scan the High Word.
- if (_BitScanForward(&where, static_cast<unsigned long>(mask >> 32)))
+ if (_BitScanForward(&where, static_cast<unsigned long>(__x >> 32)))
return where + 32; // Create a bit offset from the LSB.
#endif
return 64;
@@ -849,7 +849,7 @@ unsigned __clz(unsigned __x) {
unsigned long where;
// Search from LSB to MSB for first set bit.
// Returns zero if no set bit is found.
- if (_BitScanReverse(&where, mask))
+ if (_BitScanReverse(&where, __x))
return 31 - where;
return 32; // Undefined Behavior.
#endif
@@ -874,14 +874,14 @@ unsigned long long __clz(unsigned long long __x) {
// BitScanReverse scans from MSB to LSB for first set bit.
// Returns 0 if no set bit is found.
#if defined(_LIBCPP_HAS_BITSCAN64)
- if (_BitScanReverse64(&where, mask))
+ if (_BitScanReverse64(&where, __x))
return static_cast<int>(63 - where);
#else
// Scan the high 32 bits.
- if (_BitScanReverse(&where, static_cast<unsigned long>(mask >> 32)))
+ if (_BitScanReverse(&where, static_cast<unsigned long>(__x >> 32)))
return 63 - (where + 32); // Create a bit offset from the MSB.
// Scan the low 32 bits.
- if (_BitScanReverse(&where, static_cast<unsigned long>(mask)))
+ if (_BitScanReverse(&where, static_cast<unsigned long>(__x)))
return 63 - where;
#endif
return 64; // Undefined Behavior.
@@ -3210,28 +3210,28 @@ template <class _PopulationIterator, class _SampleIter
class _UniformRandomNumberGenerator>
_LIBCPP_INLINE_VISIBILITY
_SampleIterator __sample(_PopulationIterator __first,
- _PopulationIterator __last, _SampleIterator __output,
+ _PopulationIterator __last, _SampleIterator __output_iter,
_Distance __n,
_UniformRandomNumberGenerator & __g,
input_iterator_tag) {
_Distance __k = 0;
for (; __first != __last && __k < __n; ++__first, (void)++__k)
- __output[__k] = *__first;
+ __output_iter[__k] = *__first;
_Distance __sz = __k;
for (; __first != __last; ++__first, (void)++__k) {
_Distance __r = _VSTD::uniform_int_distribution<_Distance>(0, __k)(__g);
if (__r < __sz)
- __output[__r] = *__first;
+ __output_iter[__r] = *__first;
}
- return __output + _VSTD::min(__n, __k);
+ return __output_iter + _VSTD::min(__n, __k);
}
template <class _PopulationIterator, class _SampleIterator, class _Distance,
class _UniformRandomNumberGenerator>
_LIBCPP_INLINE_VISIBILITY
_SampleIterator __sample(_PopulationIterator __first,
- _PopulationIterator __last, _SampleIterator __output,
+ _PopulationIterator __last, _SampleIterator __output_iter,
_Distance __n,
_UniformRandomNumberGenerator& __g,
forward_iterator_tag) {
@@ -3240,18 +3240,18 @@ _SampleIterator __sample(_PopulationIterator __first,
_Distance __r =
_VSTD::uniform_int_distribution<_Distance>(0, --__unsampled_sz)(__g);
if (__r < __n) {
- *__output++ = *__first;
+ *__output_iter++ = *__first;
--__n;
}
}
- return __output;
+ return __output_iter;
}
template <class _PopulationIterator, class _SampleIterator, class _Distance,
class _UniformRandomNumberGenerator>
_LIBCPP_INLINE_VISIBILITY
_SampleIterator __sample(_PopulationIterator __first,
- _PopulationIterator __last, _SampleIterator __output,
+ _PopulationIterator __last, _SampleIterator __output_iter,
_Distance __n, _UniformRandomNumberGenerator& __g) {
typedef typename iterator_traits<_PopulationIterator>::iterator_category
_PopCategory;
@@ -3263,7 +3263,7 @@ _SampleIterator __sample(_PopulationIterator __first,
typedef typename common_type<_Distance, _Difference>::type _CommonType;
_LIBCPP_ASSERT(__n >= 0, "N must be a positive number.");
return _VSTD::__sample(
- __first, __last, __output, _CommonType(__n),
+ __first, __last, __output_iter, _CommonType(__n),
__g, _PopCategory());
}
@@ -3272,9 +3272,9 @@ template <class _PopulationIterator, class _SampleIter
class _UniformRandomNumberGenerator>
inline _LIBCPP_INLINE_VISIBILITY
_SampleIterator sample(_PopulationIterator __first,
- _PopulationIterator __last, _SampleIterator __output,
+ _PopulationIterator __last, _SampleIterator __output_iter,
_Distance __n, _UniformRandomNumberGenerator&& __g) {
- return _VSTD::__sample(__first, __last, __output, __n, __g);
+ return _VSTD::__sample(__first, __last, __output_iter, __n, __g);
}
#endif // _LIBCPP_STD_VER > 14
@@ -4568,7 +4568,7 @@ __buffered_inplace_merge(_BidirectionalIterator __firs
typedef reverse_iterator<value_type*> _Rv;
__half_inplace_merge(_Rv(__p), _Rv(__buff),
_RBi(__middle), _RBi(__first),
- _RBi(__last), __negate<_Compare>(__comp));
+ _RBi(__last), __invert<_Compare>(__comp));
}
}
@@ -5547,9 +5547,9 @@ __set_union(_InputIterator1 __first1, _InputIterator1
}
else
{
- *__result = *__first1;
if (!__comp(*__first1, *__first2))
++__first2;
+ *__result = *__first1;
++__first1;
}
}
Modified: projects/clang600-import/contrib/libc++/include/array
==============================================================================
--- projects/clang600-import/contrib/libc++/include/array Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/array Wed Dec 20 19:16:11 2017 (r327039)
@@ -183,7 +183,7 @@ struct _LIBCPP_TEMPLATE_VIS array
_LIBCPP_CONSTEXPR size_type size() const _NOEXCEPT {return _Size;}
_LIBCPP_INLINE_VISIBILITY
_LIBCPP_CONSTEXPR size_type max_size() const _NOEXCEPT {return _Size;}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_NODISCARD_AFTER_CXX17 _LIBCPP_INLINE_VISIBILITY
_LIBCPP_CONSTEXPR bool empty() const _NOEXCEPT {return _Size == 0;}
// element access:
Modified: projects/clang600-import/contrib/libc++/include/bitset
==============================================================================
--- projects/clang600-import/contrib/libc++/include/bitset Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/bitset Wed Dec 20 19:16:11 2017 (r327039)
@@ -235,8 +235,13 @@ void
__bitset<_N_words, _Size>::__init(unsigned long long __v, false_type) _NOEXCEPT
{
__storage_type __t[sizeof(unsigned long long) / sizeof(__storage_type)];
- for (size_t __i = 0; __i < sizeof(__t)/sizeof(__t[0]); ++__i, __v >>= __bits_per_word)
- __t[__i] = static_cast<__storage_type>(__v);
+ size_t __sz = _Size;
+ for (size_t __i = 0; __i < sizeof(__t)/sizeof(__t[0]); ++__i, __v >>= __bits_per_word, __sz -= __bits_per_word )
+ if ( __sz < __bits_per_word)
+ __t[__i] = static_cast<__storage_type>(__v) & ( 1ULL << __sz ) - 1;
+ else
+ __t[__i] = static_cast<__storage_type>(__v);
+
_VSTD::copy(__t, __t + sizeof(__t)/sizeof(__t[0]), __first_);
_VSTD::fill(__first_ + sizeof(__t)/sizeof(__t[0]), __first_ + sizeof(__first_)/sizeof(__first_[0]),
__storage_type(0));
@@ -248,6 +253,9 @@ void
__bitset<_N_words, _Size>::__init(unsigned long long __v, true_type) _NOEXCEPT
{
__first_[0] = __v;
+ if (_Size < __bits_per_word)
+ __first_[0] &= ( 1ULL << _Size ) - 1;
+
_VSTD::fill(__first_ + 1, __first_ + sizeof(__first_)/sizeof(__first_[0]), __storage_type(0));
}
@@ -261,7 +269,9 @@ __bitset<_N_words, _Size>::__bitset(unsigned long long
#if __SIZEOF_SIZE_T__ == 8
: __first_{__v}
#elif __SIZEOF_SIZE_T__ == 4
- : __first_{static_cast<__storage_type>(__v), static_cast<__storage_type>(__v >> __bits_per_word)}
+ : __first_{static_cast<__storage_type>(__v),
+ _Size >= 2 * __bits_per_word ? static_cast<__storage_type>(__v >> __bits_per_word)
+ : static_cast<__storage_type>((__v >> __bits_per_word) & (__storage_type(1) << (_Size - __bits_per_word)) - 1)}
#else
#error This constructor has not been ported to this platform
#endif
@@ -503,7 +513,10 @@ template <size_t _Size>
inline
_LIBCPP_CONSTEXPR
__bitset<1, _Size>::__bitset(unsigned long long __v) _NOEXCEPT
- : __first_(static_cast<__storage_type>(__v))
+ : __first_(
+ _Size == __bits_per_word ? static_cast<__storage_type>(__v)
+ : static_cast<__storage_type>(__v) & ((__storage_type(1) << _Size) - 1)
+ )
{
}
Modified: projects/clang600-import/contrib/libc++/include/chrono
==============================================================================
--- projects/clang600-import/contrib/libc++/include/chrono Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/chrono Wed Dec 20 19:16:11 2017 (r327039)
@@ -283,18 +283,18 @@ typedef steady_clock high_resolution_clock;
} // chrono
-constexpr chrono::hours operator "" h(unsigned long long); // C++14
-constexpr chrono::duration<unspecified , ratio<3600,1>> operator "" h(long double); // C++14
-constexpr chrono::minutes operator "" min(unsigned long long); // C++14
-constexpr chrono::duration<unspecified , ratio<60,1>> operator "" min(long double); // C++14
-constexpr chrono::seconds operator "" s(unsigned long long); // C++14
-constexpr chrono::duration<unspecified > operator "" s(long double); // C++14
-constexpr chrono::milliseconds operator "" ms(unsigned long long); // C++14
-constexpr chrono::duration<unspecified , milli> operator "" ms(long double); // C++14
-constexpr chrono::microseconds operator "" us(unsigned long long); // C++14
-constexpr chrono::duration<unspecified , micro> operator "" us(long double); // C++14
-constexpr chrono::nanoseconds operator "" ns(unsigned long long); // C++14
-constexpr chrono::duration<unspecified , nano> operator "" ns(long double); // C++14
+constexpr chrono::hours operator ""h(unsigned long long); // C++14
+constexpr chrono::duration<unspecified , ratio<3600,1>> operator ""h(long double); // C++14
+constexpr chrono::minutes operator ""min(unsigned long long); // C++14
+constexpr chrono::duration<unspecified , ratio<60,1>> operator ""min(long double); // C++14
+constexpr chrono::seconds operator ""s(unsigned long long); // C++14
+constexpr chrono::duration<unspecified > operator ""s(long double); // C++14
+constexpr chrono::milliseconds operator ""ms(unsigned long long); // C++14
+constexpr chrono::duration<unspecified , milli> operator ""ms(long double); // C++14
+constexpr chrono::microseconds operator ""us(unsigned long long); // C++14
+constexpr chrono::duration<unspecified , micro> operator ""us(long double); // C++14
+constexpr chrono::nanoseconds operator ""ns(unsigned long long); // C++14
+constexpr chrono::duration<unspecified , nano> operator ""ns(long double); // C++14
} // std
*/
@@ -1087,67 +1087,67 @@ inline namespace literals
inline namespace chrono_literals
{
- constexpr chrono::hours operator"" h(unsigned long long __h)
+ constexpr chrono::hours operator""h(unsigned long long __h)
{
return chrono::hours(static_cast<chrono::hours::rep>(__h));
}
- constexpr chrono::duration<long double, ratio<3600,1>> operator"" h(long double __h)
+ constexpr chrono::duration<long double, ratio<3600,1>> operator""h(long double __h)
{
return chrono::duration<long double, ratio<3600,1>>(__h);
}
- constexpr chrono::minutes operator"" min(unsigned long long __m)
+ constexpr chrono::minutes operator""min(unsigned long long __m)
{
return chrono::minutes(static_cast<chrono::minutes::rep>(__m));
}
- constexpr chrono::duration<long double, ratio<60,1>> operator"" min(long double __m)
+ constexpr chrono::duration<long double, ratio<60,1>> operator""min(long double __m)
{
return chrono::duration<long double, ratio<60,1>> (__m);
}
- constexpr chrono::seconds operator"" s(unsigned long long __s)
+ constexpr chrono::seconds operator""s(unsigned long long __s)
{
return chrono::seconds(static_cast<chrono::seconds::rep>(__s));
}
- constexpr chrono::duration<long double> operator"" s(long double __s)
+ constexpr chrono::duration<long double> operator""s(long double __s)
{
return chrono::duration<long double> (__s);
}
- constexpr chrono::milliseconds operator"" ms(unsigned long long __ms)
+ constexpr chrono::milliseconds operator""ms(unsigned long long __ms)
{
return chrono::milliseconds(static_cast<chrono::milliseconds::rep>(__ms));
}
- constexpr chrono::duration<long double, milli> operator"" ms(long double __ms)
+ constexpr chrono::duration<long double, milli> operator""ms(long double __ms)
{
return chrono::duration<long double, milli>(__ms);
}
- constexpr chrono::microseconds operator"" us(unsigned long long __us)
+ constexpr chrono::microseconds operator""us(unsigned long long __us)
{
return chrono::microseconds(static_cast<chrono::microseconds::rep>(__us));
}
- constexpr chrono::duration<long double, micro> operator"" us(long double __us)
+ constexpr chrono::duration<long double, micro> operator""us(long double __us)
{
return chrono::duration<long double, micro> (__us);
}
- constexpr chrono::nanoseconds operator"" ns(unsigned long long __ns)
+ constexpr chrono::nanoseconds operator""ns(unsigned long long __ns)
{
return chrono::nanoseconds(static_cast<chrono::nanoseconds::rep>(__ns));
}
- constexpr chrono::duration<long double, nano> operator"" ns(long double __ns)
+ constexpr chrono::duration<long double, nano> operator""ns(long double __ns)
{
return chrono::duration<long double, nano> (__ns);
}
Modified: projects/clang600-import/contrib/libc++/include/cstddef
==============================================================================
--- projects/clang600-import/contrib/libc++/include/cstddef Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/cstddef Wed Dec 20 19:16:11 2017 (r327039)
@@ -64,23 +64,46 @@ namespace std // purposefully not versioned
{
enum class byte : unsigned char {};
-constexpr byte& operator|=(byte& __lhs, byte __rhs) noexcept
-{ return __lhs = byte(static_cast<unsigned char>(__lhs) | static_cast<unsigned char>(__rhs)); }
constexpr byte operator| (byte __lhs, byte __rhs) noexcept
-{ return byte(static_cast<unsigned char>(__lhs) | static_cast<unsigned char>(__rhs)); }
+{
+ return static_cast<byte>(
+ static_cast<unsigned char>(
+ static_cast<unsigned int>(__lhs) | static_cast<unsigned int>(__rhs)
+ ));
+}
-constexpr byte& operator&=(byte& __lhs, byte __rhs) noexcept
-{ return __lhs = byte(static_cast<unsigned char>(__lhs) & static_cast<unsigned char>(__rhs)); }
+constexpr byte& operator|=(byte& __lhs, byte __rhs) noexcept
+{ return __lhs = __lhs | __rhs; }
+
constexpr byte operator& (byte __lhs, byte __rhs) noexcept
-{ return byte(static_cast<unsigned char>(__lhs) & static_cast<unsigned char>(__rhs)); }
+{
+ return static_cast<byte>(
+ static_cast<unsigned char>(
+ static_cast<unsigned int>(__lhs) & static_cast<unsigned int>(__rhs)
+ ));
+}
-constexpr byte& operator^=(byte& __lhs, byte __rhs) noexcept
-{ return __lhs = byte(static_cast<unsigned char>(__lhs) ^ static_cast<unsigned char>(__rhs)); }
+constexpr byte& operator&=(byte& __lhs, byte __rhs) noexcept
+{ return __lhs = __lhs & __rhs; }
+
constexpr byte operator^ (byte __lhs, byte __rhs) noexcept
-{ return byte(static_cast<unsigned char>(__lhs) ^ static_cast<unsigned char>(__rhs)); }
+{
+ return static_cast<byte>(
+ static_cast<unsigned char>(
+ static_cast<unsigned int>(__lhs) ^ static_cast<unsigned int>(__rhs)
+ ));
+}
+constexpr byte& operator^=(byte& __lhs, byte __rhs) noexcept
+{ return __lhs = __lhs ^ __rhs; }
+
constexpr byte operator~ (byte __b) noexcept
-{ return byte(~static_cast<unsigned char>(__b)); }
+{
+ return static_cast<byte>(
+ static_cast<unsigned char>(
+ ~static_cast<unsigned int>(__b)
+ ));
+}
}
Modified: projects/clang600-import/contrib/libc++/include/deque
==============================================================================
--- projects/clang600-import/contrib/libc++/include/deque Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/deque Wed Dec 20 19:16:11 2017 (r327039)
@@ -1314,7 +1314,7 @@ class _LIBCPP_TEMPLATE_VIS deque (public)
void resize(size_type __n);
void resize(size_type __n, const value_type& __v);
void shrink_to_fit() _NOEXCEPT;
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_NODISCARD_AFTER_CXX17 _LIBCPP_INLINE_VISIBILITY
bool empty() const _NOEXCEPT {return __base::size() == 0;}
// element access:
Modified: projects/clang600-import/contrib/libc++/include/exception
==============================================================================
--- projects/clang600-import/contrib/libc++/include/exception Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/exception Wed Dec 20 19:16:11 2017 (r327039)
@@ -82,7 +82,7 @@ template <class E> void rethrow_if_nested(const E& e);
#include <cstdlib>
#include <type_traits>
-#if defined(_LIBCPP_ABI_MICROSOFT)
+#if defined(_LIBCPP_ABI_MICROSOFT) && !defined(_LIBCPP_NO_VCRUNTIME)
#include <vcruntime_exception.h>
#endif
@@ -93,7 +93,7 @@ template <class E> void rethrow_if_nested(const E& e);
namespace std // purposefully not using versioning namespace
{
-#if !defined(_LIBCPP_ABI_MICROSOFT)
+#if !defined(_LIBCPP_ABI_MICROSOFT) || defined(_LIBCPP_NO_VCRUNTIME)
class _LIBCPP_EXCEPTION_ABI exception
{
public:
@@ -110,7 +110,7 @@ class _LIBCPP_EXCEPTION_ABI bad_exception (public)
virtual ~bad_exception() _NOEXCEPT;
virtual const char* what() const _NOEXCEPT;
};
-#endif // !_LIBCPP_ABI_MICROSOFT
+#endif // !_LIBCPP_ABI_MICROSOFT || _LIBCPP_NO_VCRUNTIME
#if _LIBCPP_STD_VER <= 14 \
|| defined(_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS) \
Modified: projects/clang600-import/contrib/libc++/include/experimental/algorithm
==============================================================================
--- projects/clang600-import/contrib/libc++/include/experimental/algorithm Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/experimental/algorithm Wed Dec 20 19:16:11 2017 (r327039)
@@ -61,9 +61,9 @@ template <class _PopulationIterator, class _SampleIter
class _UniformRandomNumberGenerator>
inline _LIBCPP_INLINE_VISIBILITY
_SampleIterator sample(_PopulationIterator __first, _PopulationIterator __last,
- _SampleIterator __output, _Distance __n,
+ _SampleIterator __output_iter, _Distance __n,
_UniformRandomNumberGenerator &&__g) {
- return _VSTD::__sample(__first, __last, __output, __n, __g);
+ return _VSTD::__sample(__first, __last, __output_iter, __n, __g);
}
_LIBCPP_END_NAMESPACE_LFTS
Modified: projects/clang600-import/contrib/libc++/include/experimental/filesystem
==============================================================================
--- projects/clang600-import/contrib/libc++/include/experimental/filesystem Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/experimental/filesystem Wed Dec 20 19:16:11 2017 (r327039)
@@ -81,10 +81,10 @@
path canonical(const path& p, const path& base, error_code& ec);
void copy(const path& from, const path& to);
- void copy(const path& from, const path& to, error_code& ec) _NOEXCEPT;
+ void copy(const path& from, const path& to, error_code& ec);
void copy(const path& from, const path& to, copy_options options);
void copy(const path& from, const path& to, copy_options options,
- error_code& ec) _NOEXCEPT;
+ error_code& ec);
bool copy_file(const path& from, const path& to);
bool copy_file(const path& from, const path& to, error_code& ec) _NOEXCEPT;
@@ -972,7 +972,8 @@ class _LIBCPP_TYPE_VIS path (public)
_LIBCPP_INLINE_VISIBILITY path extension() const { return string_type(__extension()); }
// query
- _LIBCPP_INLINE_VISIBILITY bool empty() const _NOEXCEPT { return __pn_.empty(); }
+ _LIBCPP_NODISCARD_AFTER_CXX17 _LIBCPP_INLINE_VISIBILITY
+ bool empty() const _NOEXCEPT { return __pn_.empty(); }
_LIBCPP_INLINE_VISIBILITY bool has_root_name() const { return !__root_name().empty(); }
_LIBCPP_INLINE_VISIBILITY bool has_root_directory() const { return !__root_directory().empty(); }
@@ -1351,7 +1352,7 @@ void copy(const path& __from, const path& __to) {
}
inline _LIBCPP_INLINE_VISIBILITY
-void copy(const path& __from, const path& __to, error_code& __ec) _NOEXCEPT {
+void copy(const path& __from, const path& __to, error_code& __ec) {
__copy(__from, __to, copy_options::none, &__ec);
}
@@ -1362,7 +1363,7 @@ void copy(const path& __from, const path& __to, copy_o
inline _LIBCPP_INLINE_VISIBILITY
void copy(const path& __from, const path& __to,
- copy_options __opt, error_code& __ec) _NOEXCEPT {
+ copy_options __opt, error_code& __ec) {
__copy(__from, __to, __opt, &__ec);
}
@@ -1561,7 +1562,7 @@ bool is_empty(const path& __p) {
}
inline _LIBCPP_INLINE_VISIBILITY
-bool is_empty(const path& __p, error_code& __ec) _NOEXCEPT {
+bool is_empty(const path& __p, error_code& __ec) {
return __fs_is_empty(__p, &__ec);
}
@@ -1903,12 +1904,12 @@ class directory_iterator (public)
: directory_iterator(__p, nullptr, __opts)
{ }
- directory_iterator(const path& __p, error_code& __ec) _NOEXCEPT
+ directory_iterator(const path& __p, error_code& __ec)
: directory_iterator(__p, &__ec)
{ }
directory_iterator(const path& __p, directory_options __opts,
- error_code& __ec) _NOEXCEPT
+ error_code& __ec)
: directory_iterator(__p, &__ec, __opts)
{ }
@@ -1943,7 +1944,7 @@ class directory_iterator (public)
return __p;
}
- directory_iterator& increment(error_code& __ec) _NOEXCEPT
+ directory_iterator& increment(error_code& __ec)
{ return __increment(&__ec); }
private:
@@ -2013,12 +2014,12 @@ class recursive_directory_iterator { (public)
_LIBCPP_INLINE_VISIBILITY
recursive_directory_iterator(const path& __p,
- directory_options __xoptions, error_code& __ec) _NOEXCEPT
+ directory_options __xoptions, error_code& __ec)
: recursive_directory_iterator(__p, __xoptions, &__ec)
{ }
_LIBCPP_INLINE_VISIBILITY
- recursive_directory_iterator(const path& __p, error_code& __ec) _NOEXCEPT
+ recursive_directory_iterator(const path& __p, error_code& __ec)
: recursive_directory_iterator(__p, directory_options::none, &__ec)
{ }
@@ -2060,7 +2061,7 @@ class recursive_directory_iterator { (public)
}
_LIBCPP_INLINE_VISIBILITY
- recursive_directory_iterator& increment(error_code& __ec) _NOEXCEPT
+ recursive_directory_iterator& increment(error_code& __ec)
{ return __increment(&__ec); }
_LIBCPP_FUNC_VIS directory_options options() const;
Modified: projects/clang600-import/contrib/libc++/include/experimental/iterator
==============================================================================
--- projects/clang600-import/contrib/libc++/include/experimental/iterator Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/experimental/iterator Wed Dec 20 19:16:11 2017 (r327039)
@@ -75,19 +75,19 @@ class ostream_joiner { (public)
typedef void reference;
ostream_joiner(ostream_type& __os, _Delim&& __d)
- : __output(_VSTD::addressof(__os)), __delim(_VSTD::move(__d)), __first(true) {}
+ : __output_iter(_VSTD::addressof(__os)), __delim(_VSTD::move(__d)), __first(true) {}
ostream_joiner(ostream_type& __os, const _Delim& __d)
- : __output(_VSTD::addressof(__os)), __delim(__d), __first(true) {}
+ : __output_iter(_VSTD::addressof(__os)), __delim(__d), __first(true) {}
template<typename _Tp>
ostream_joiner& operator=(const _Tp& __v)
{
if (!__first)
- *__output << __delim;
+ *__output_iter << __delim;
__first = false;
- *__output << __v;
+ *__output_iter << __v;
return *this;
}
@@ -96,7 +96,7 @@ class ostream_joiner { (public)
ostream_joiner& operator++(int) _NOEXCEPT { return *this; }
private:
- ostream_type* __output;
+ ostream_type* __output_iter;
_Delim __delim;
bool __first;
};
Modified: projects/clang600-import/contrib/libc++/include/forward_list
==============================================================================
--- projects/clang600-import/contrib/libc++/include/forward_list Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/forward_list Wed Dec 20 19:16:11 2017 (r327039)
@@ -728,7 +728,7 @@ class _LIBCPP_TEMPLATE_VIS forward_list (public)
const_iterator cbefore_begin() const _NOEXCEPT
{return const_iterator(base::__before_begin());}
- _LIBCPP_INLINE_VISIBILITY
+ _LIBCPP_NODISCARD_AFTER_CXX17 _LIBCPP_INLINE_VISIBILITY
bool empty() const _NOEXCEPT
{return base::__before_begin()->__next_ == nullptr;}
_LIBCPP_INLINE_VISIBILITY
Modified: projects/clang600-import/contrib/libc++/include/fstream
==============================================================================
--- projects/clang600-import/contrib/libc++/include/fstream Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/fstream Wed Dec 20 19:16:11 2017 (r327039)
@@ -315,7 +315,7 @@ basic_filebuf<_CharT, _Traits>::basic_filebuf(basic_fi
else
this->setp((char_type*)__extbuf_,
(char_type*)__extbuf_ + (__rhs. epptr() - __rhs.pbase()));
- this->pbump(__rhs. pptr() - __rhs.pbase());
+ this->__pbump(__rhs. pptr() - __rhs.pbase());
}
else if (__rhs.eback())
{
@@ -434,7 +434,7 @@ basic_filebuf<_CharT, _Traits>::swap(basic_filebuf& __
ptrdiff_t __e = this->epptr() - this->pbase();
this->setp((char_type*)__extbuf_min_,
(char_type*)__extbuf_min_ + __e);
- this->pbump(__n);
+ this->__pbump(__n);
}
if (__rhs.eback() == (char_type*)__extbuf_min_)
{
@@ -450,7 +450,7 @@ basic_filebuf<_CharT, _Traits>::swap(basic_filebuf& __
ptrdiff_t __e = __rhs.epptr() - __rhs.pbase();
__rhs.setp((char_type*)__rhs.__extbuf_min_,
(char_type*)__rhs.__extbuf_min_ + __e);
- __rhs.pbump(__n);
+ __rhs.__pbump(__n);
}
}
@@ -724,7 +724,7 @@ basic_filebuf<_CharT, _Traits>::overflow(int_type __c)
if (__r == codecvt_base::partial)
{
this->setp(const_cast<char_type*>(__e), this->pptr());
- this->pbump(this->epptr() - this->pbase());
+ this->__pbump(this->epptr() - this->pbase());
}
}
else
Modified: projects/clang600-import/contrib/libc++/include/future
==============================================================================
--- projects/clang600-import/contrib/libc++/include/future Wed Dec 20 19:14:20 2017 (r327038)
+++ projects/clang600-import/contrib/libc++/include/future Wed Dec 20 19:16:11 2017 (r327039)
@@ -2335,6 +2335,7 @@ inline _LIBCPP_INLINE_VISIBILITY bool __does_policy_co
{ return (int(__policy) & int(__value)) != 0; }
template <class _Fp, class... _Args>
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list