Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/external/bsd/libc++/dist/libcxx Import libc++ r195694, prima...
details: https://anonhg.NetBSD.org/src/rev/a8cb26dc58f2
branches: trunk
changeset: 791696:a8cb26dc58f2
user: joerg <joerg%NetBSD.org@localhost>
date: Thu Nov 28 13:45:08 2013 +0000
description:
Import libc++ r195694, primarily to avoid using a public identifier as
template argument that is overriden by macro in pkgsrc.
diffstat:
external/bsd/libc++/dist/libcxx/include/CMakeLists.txt | 16 +
external/bsd/libc++/dist/libcxx/include/__config | 22 +-
external/bsd/libc++/dist/libcxx/include/__locale | 12 +-
external/bsd/libc++/dist/libcxx/include/__undef_min_max | 6 +-
external/bsd/libc++/dist/libcxx/include/experimental/dynarray | 314 ++++
external/bsd/libc++/dist/libcxx/include/experimental/optional | 699 ++++++++++
external/bsd/libc++/dist/libcxx/include/ext/__hash | 2 +-
external/bsd/libc++/dist/libcxx/include/iomanip | 4 +-
external/bsd/libc++/dist/libcxx/include/locale | 2 +-
external/bsd/libc++/dist/libcxx/include/memory | 39 +-
external/bsd/libc++/dist/libcxx/include/type_traits | 4 +-
external/bsd/libc++/dist/libcxx/include/utility | 4 +-
external/bsd/libc++/dist/libcxx/src/exception.cpp | 8 +-
external/bsd/libc++/dist/libcxx/src/locale.cpp | 26 +-
external/bsd/libc++/dist/libcxx/src/new.cpp | 2 +-
external/bsd/libc++/dist/libcxx/src/optional.cpp | 6 +-
external/bsd/libc++/dist/libcxx/src/random.cpp | 2 +
external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.cons/alloc.pass.cpp | 10 +-
external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.cons/default.pass.cpp | 14 +-
external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.data/default.pass.cpp | 9 +-
external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.mutate/default.pass.cpp | 5 +-
external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.overview/at.pass.cpp | 14 +-
external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.overview/begin_end.pass.cpp | 10 +-
external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.overview/capacity.pass.cpp | 8 +-
external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.overview/front_back.pass.cpp | 10 +-
external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.overview/indexing.pass.cpp | 10 +-
external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.traits/default.pass.cpp | 6 +-
external/bsd/libc++/dist/libcxx/test/containers/sequences/dynarray/dynarray.zero/default.pass.cpp | 5 +-
external/bsd/libc++/dist/libcxx/test/input.output/iostream.format/quoted.manip/quoted.pass.cpp | 12 +
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.bad_optional_access/char_pointer.pass.cpp | 10 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.bad_optional_access/copy_assign.pass.cpp | 14 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.bad_optional_access/copy_ctor.pass.cpp | 14 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.bad_optional_access/default.pass.cpp | 10 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.bad_optional_access/derive.pass.cpp | 12 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.bad_optional_access/string.pass.cpp | 10 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.comp_with_t/equal.pass.cpp | 6 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.comp_with_t/less_than.pass.cpp | 6 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.hash/hash.pass.cpp | 25 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.inplace/in_place_t.pass.cpp | 14 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.nullops/eqaul.pass.cpp | 20 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.nullops/less_than.pass.cpp | 20 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.nullopt/nullopt_t.pass.cpp | 18 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.assign/assign_value.pass.cpp | 28 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.assign/copy.pass.cpp | 24 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.assign/emplace.pass.cpp | 28 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.assign/emplace_initializer_list.pass.cpp | 12 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.assign/move.pass.cpp | 30 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.assign/nullopt_t.pass.cpp | 26 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/const_T.pass.cpp | 20 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/copy.pass.cpp | 24 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/default.pass.cpp | 10 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/in_place_t.pass.cpp | 46 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/initializer_list.pass.cpp | 32 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/move.pass.cpp | 26 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/nullopt_t.pass.cpp | 20 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.ctor/rvalue_T.pass.cpp | 20 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.dtor/dtor.pass.cpp | 12 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/bool.pass.cpp | 8 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/dereference.pass.cpp | 8 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/dereference_const.pass.cpp | 10 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/op_arrow.pass.cpp | 8 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/op_arrow_const.pass.cpp | 12 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/value.pass.cpp | 11 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/value_const.fail.cpp | 6 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/value_const.pass.cpp | 15 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/value_or.pass.cpp | 14 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.observe/value_or_const.pass.cpp | 20 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional.object.swap/swap.pass.cpp | 68 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional_const_void.fail.cpp | 6 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional_not_destructible.fail.cpp | 6 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional_not_noexcept_destructible.fail.cpp | 6 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/optional_void.fail.cpp | 6 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.object/types.pass.cpp | 12 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.relops/equal.pass.cpp | 6 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.relops/less_than.pass.cpp | 6 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.specalg/make_optional.pass.cpp | 17 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.specalg/swap.pass.cpp | 68 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_const_in_place_t.fail.cpp | 8 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_const_lvalue_ref.fail.cpp | 6 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_const_nullopt_t.fail.cpp | 8 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_in_place_t.fail.cpp | 8 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_includes_initializer_list.pass.cpp | 4 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_lvalue_ref.fail.cpp | 6 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_nullopt_t.fail.cpp | 8 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/optional.syn/optional_rvalue_ref.fail.cpp | 6 +-
external/bsd/libc++/dist/libcxx/test/utilities/optional/version.pass.cpp | 2 +-
external/bsd/libc++/dist/libcxx/test/utilities/utility/pairs/pairs.pair/copy_ctor.pass.cpp | 2 +
87 files changed, 1681 insertions(+), 508 deletions(-)
diffs (truncated from 4822 to 300 lines):
diff -r b249659a99fe -r a8cb26dc58f2 external/bsd/libc++/dist/libcxx/include/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/libc++/dist/libcxx/include/CMakeLists.txt Thu Nov 28 13:45:08 2013 +0000
@@ -0,0 +1,16 @@
+if (NOT LIBCXX_INSTALL_SUPPORT_HEADERS)
+ set(LIBCXX_SUPPORT_HEADER_PATTERN PATTERN "support" EXCLUDE)
+endif()
+
+file(COPY .
+ DESTINATION "${CMAKE_BINARY_DIR}/include/c++/v1"
+ FILES_MATCHING
+ PATTERN "*"
+ PATTERN "CMakeLists.txt" EXCLUDE
+ PATTERN ".svn" EXCLUDE
+ ${LIBCXX_SUPPORT_HEADER_PATTERN}
+ )
+
+install(DIRECTORY "${CMAKE_BINARY_DIR}/include/c++/v1/"
+ DESTINATION include/c++/v1/
+ )
diff -r b249659a99fe -r a8cb26dc58f2 external/bsd/libc++/dist/libcxx/include/__config
--- a/external/bsd/libc++/dist/libcxx/include/__config Thu Nov 28 13:39:18 2013 +0000
+++ b/external/bsd/libc++/dist/libcxx/include/__config Thu Nov 28 13:45:08 2013 +0000
@@ -174,7 +174,7 @@
#endif
#ifndef _LIBCPP_TYPE_VIS
-# if __has_attribute(type_visibility)
+# if __has_attribute(__type_visibility__)
# define _LIBCPP_TYPE_VIS __attribute__ ((__type_visibility__("default")))
# else
# define _LIBCPP_TYPE_VIS __attribute__ ((__visibility__("default")))
@@ -389,9 +389,7 @@
#endif
#if _GNUC_VER < 404
-#define _LIBCPP_HAS_NO_ADVANCED_SFINAE
#define _LIBCPP_HAS_NO_DECLTYPE
-#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
#define _LIBCPP_HAS_NO_DELETED_FUNCTIONS
#define _LIBCPP_HAS_NO_UNICODE_CHARS
#define _LIBCPP_HAS_NO_VARIADICS
@@ -402,6 +400,11 @@
#define _LIBCPP_HAS_NO_NULLPTR
#endif
+#if _GNUC_VER < 407
+#define _LIBCPP_HAS_NO_ADVANCED_SFINAE
+#define _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS
+#endif
+
#endif // __GXX_EXPERIMENTAL_CXX0X__
#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { namespace _LIBCPP_NAMESPACE {
@@ -454,7 +457,6 @@
#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
#define _LIBCPP_HAS_NO_NULLPTR
#define _LIBCPP_HAS_NO_UNICODE_CHARS
-#define _LIBCPP_HAS_NO_STRONG_ENUMS
#define _LIBCPP_HAS_IS_BASE_OF
#if defined(_AIX)
@@ -514,7 +516,7 @@
#define __has_feature(__x) 0
#endif
-#if __has_feature(cxx_explicit_conversions)
+#if __has_feature(cxx_explicit_conversions) || defined(__IBMCPP__)
# define _LIBCPP_EXPLICIT explicit
#else
# define _LIBCPP_EXPLICIT
@@ -567,6 +569,16 @@
#define _LIBCPP_WCTYPE_IS_MASK
#endif
+#if defined(__APPLE__)
+#ifndef _LIBCPP_TRIVIAL_PAIR_COPY_CTOR
+# define _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 0
+#endif
+#endif
+
+#ifndef _LIBCPP_TRIVIAL_PAIR_COPY_CTOR
+# define _LIBCPP_TRIVIAL_PAIR_COPY_CTOR 1
+#endif
+
#ifndef _LIBCPP_STD_VER
# if __cplusplus <= 201103L
# define _LIBCPP_STD_VER 11
diff -r b249659a99fe -r a8cb26dc58f2 external/bsd/libc++/dist/libcxx/include/__locale
--- a/external/bsd/libc++/dist/libcxx/include/__locale Thu Nov 28 13:39:18 2013 +0000
+++ b/external/bsd/libc++/dist/libcxx/include/__locale Thu Nov 28 13:45:08 2013 +0000
@@ -23,9 +23,9 @@
# include <support/win32/locale_win32.h>
#elif _AIX
# include <support/ibm/xlocale.h>
-#elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__)) || defined(EMSCRIPTEN) || defined(__IBMCPP__)
+#elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__)) || defined(__EMSCRIPTEN__) || defined(__IBMCPP__)
# include <xlocale.h>
-#endif // _WIN32 || __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__ || EMSCRIPTEN || __IBMCPP__
+#endif // _WIN32 || __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__ || __EMSCRIPTEN__ || __IBMCPP__
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
@@ -341,12 +341,12 @@
static const mask punct = _PUNCT;
static const mask xdigit = _HEX;
static const mask blank = _BLANK;
-#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(EMSCRIPTEN) || defined(__NetBSD__)
+#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__EMSCRIPTEN__) || defined(__NetBSD__)
#ifdef __APPLE__
typedef __uint32_t mask;
#elif defined(__FreeBSD__)
typedef unsigned long mask;
-#elif defined(EMSCRIPTEN) || defined(__NetBSD__)
+#elif defined(__EMSCRIPTEN__) || defined(__NetBSD__)
typedef unsigned short mask;
#endif
static const mask space = _CTYPE_S;
@@ -375,7 +375,7 @@
static const mask punct = _ISPUNCT;
static const mask xdigit = _ISXDIGIT;
static const mask blank = _ISBLANK;
-#else // __GLIBC__ || _WIN32 || __APPLE__ || __FreeBSD__ || EMSCRIPTEN || __sun__
+#else // __GLIBC__ || _WIN32 || __APPLE__ || __FreeBSD__ || __EMSCRIPTEN__ || __sun__
typedef unsigned long mask;
static const mask space = 1<<0;
static const mask print = 1<<1;
@@ -598,7 +598,7 @@
#endif
_LIBCPP_ALWAYS_INLINE const mask* table() const _NOEXCEPT {return __tab_;}
static const mask* classic_table() _NOEXCEPT;
-#if defined(__GLIBC__) || defined(EMSCRIPTEN)
+#if defined(__GLIBC__) || defined(__EMSCRIPTEN__)
static const int* __classic_upper_table() _NOEXCEPT;
static const int* __classic_lower_table() _NOEXCEPT;
#endif
diff -r b249659a99fe -r a8cb26dc58f2 external/bsd/libc++/dist/libcxx/include/__undef_min_max
--- a/external/bsd/libc++/dist/libcxx/include/__undef_min_max Thu Nov 28 13:39:18 2013 +0000
+++ b/external/bsd/libc++/dist/libcxx/include/__undef_min_max Thu Nov 28 13:45:08 2013 +0000
@@ -10,7 +10,8 @@
#ifdef min
#if defined(_MSC_VER) && ! defined(__clang__)
-_LIBCPP_WARNING("macro min is incompatible with C++. #undefing min")
+_LIBCPP_WARNING("macro min is incompatible with C++. Try #define NOMINMAX "
+ "before any Windows header. #undefing min")
#else
#warning: macro min is incompatible with C++. #undefing min
#endif
@@ -19,7 +20,8 @@
#ifdef max
#if defined(_MSC_VER) && ! defined(__clang__)
-_LIBCPP_WARNING("macro max is incompatible with C++. #undefing max")
+_LIBCPP_WARNING("macro max is incompatible with C++. Try #define NOMINMAX "
+ "before any Windows header. #undefing max")
#else
#warning: macro max is incompatible with C++. #undefing max
#endif
diff -r b249659a99fe -r a8cb26dc58f2 external/bsd/libc++/dist/libcxx/include/experimental/dynarray
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/libc++/dist/libcxx/include/experimental/dynarray Thu Nov 28 13:45:08 2013 +0000
@@ -0,0 +1,314 @@
+// -*- C++ -*-
+//===-------------------------- dynarray ----------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _LIBCPP_DYNARRAY
+#define _LIBCPP_DYNARRAY
+
+#include <__config>
+#if _LIBCPP_STD_VER > 11
+
+/*
+ dynarray synopsis
+
+namespace std { namespace experimental {
+
+template< typename T >
+class dynarray
+{
+ // types:
+ typedef T value_type;
+ typedef T& reference;
+ typedef const T& const_reference;
+ typedef T* pointer;
+ typedef const T* const_pointer;
+ typedef implementation-defined iterator;
+ typedef implementation-defined const_iterator;
+ typedef reverse_iterator<iterator> reverse_iterator;
+ typedef reverse_iterator<const_iterator> const_reverse_iterator;
+ typedef size_t size_type;
+ typedef ptrdiff_t difference_type;
+
+public:
+ // construct/copy/destroy:
+ explicit dynarray(size_type c);
+ template <typename Alloc>
+ dynarray(size_type c, const Alloc& alloc);
+ dynarray(size_type c, const T& v);
+ template <typename Alloc>
+ dynarray(size_type c, const T& v, const Alloc& alloc);
+ dynarray(const dynarray& d);
+ template <typename Alloc>
+ dynarray(const dynarray& d, const Alloc& alloc);
+ dynarray(initializer_list<T>);
+ template <typename Alloc>
+ dynarray(initializer_list<T>, const Alloc& alloc);
+
+ dynarray& operator=(const dynarray&) = delete;
+ ~dynarray();
+
+ // iterators:
+ iterator begin() noexcept;
+ const_iterator begin() const noexcept;
+ const_iterator cbegin() const noexcept;
+ iterator end() noexcept;
+ const_iterator end() const noexcept;
+ const_iterator cend() const noexcept;
+
+ reverse_iterator rbegin() noexcept;
+ const_reverse_iterator rbegin() const noexcept;
+ const_reverse_iterator crbegin() const noexcept;
+ reverse_iterator rend() noexcept;
+ const_reverse_iterator rend() const noexcept;
+ const_reverse_iterator crend() const noexcept;
+
+ // capacity:
+ size_type size() const noexcept;
+ size_type max_size() const noexcept;
+ bool empty() const noexcept;
+
+ // element access:
+ reference operator[](size_type n);
+ const_reference operator[](size_type n) const;
+
+ reference front();
+ const_reference front() const;
+ reference back();
+ const_reference back() const;
+
+ const_reference at(size_type n) const;
+ reference at(size_type n);
+
+ // data access:
+ T* data() noexcept;
+ const T* data() const noexcept;
+
+ // mutating member functions:
+ void fill(const T& v);
+};
+
+}} // std::experimental
+
+*/
+
+#include <__functional_base>
+#include <iterator>
+#include <stdexcept>
+#include <initializer_list>
+#include <new>
+#include <algorithm>
+
+#if defined(_LIBCPP_NO_EXCEPTIONS)
+ #include <cassert>
+#endif
+
+#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+#pragma GCC system_header
+#endif
+
+namespace std { namespace experimental { inline namespace __array_extensions_v1 {
+
+template <class _Tp>
+struct _LIBCPP_TYPE_VIS_ONLY dynarray
+{
+public:
+ // types:
+ typedef dynarray __self;
+ typedef _Tp value_type;
+ typedef value_type& reference;
+ typedef const value_type& const_reference;
+ typedef value_type* iterator;
+ typedef const value_type* const_iterator;
+ typedef value_type* pointer;
+ typedef const value_type* const_pointer;
+ typedef size_t size_type;
+ typedef ptrdiff_t difference_type;
+ typedef std::reverse_iterator<iterator> reverse_iterator;
+ typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+
+private:
+ size_t __size_;
+ value_type * __base_;
Home |
Main Index |
Thread Index |
Old Index