aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Wodnicki <pawel@32bitmicro.com>2012-12-13 16:31:31 +0000
committerPawel Wodnicki <pawel@32bitmicro.com>2012-12-13 16:31:31 +0000
commit33b3289435f6f1c54f838ee487fafce043b4fc05 (patch)
treeef81b0c59bfe1daf83b3c24c6f4d8bda63eb54ab
parent1816b26c983c500d8992f65715a50beb726524fd (diff)
downloadllvm-33b3289435f6f1c54f838ee487fafce043b4fc05.zip
llvm-33b3289435f6f1c54f838ee487fafce043b4fc05.tar.gz
llvm-33b3289435f6f1c54f838ee487fafce043b4fc05.tar.bz2
Merging r170026: into the 3.2 release branch.
Zhang Xiongpang: Add definitions for const data members. Fixes http://llvm.org/bugs/show_bug.cgi?id=14585. llvm-svn: 170137
-rw-r--r--libcxx/include/limits188
-rw-r--r--libcxx/include/locale4
-rw-r--r--libcxx/include/random122
-rw-r--r--libcxx/include/regex21
-rw-r--r--libcxx/src/chrono.cpp4
-rw-r--r--libcxx/src/locale.cpp22
-rwxr-xr-xlibcxx/test/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp185
-rw-r--r--libcxx/test/localization/locale.categories/category.ctype/ctype_base.pass.cpp16
-rw-r--r--libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp9
-rw-r--r--libcxx/test/localization/locales/locale/locale.types/locale.category/category.pass.cpp13
-rw-r--r--libcxx/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp7
-rw-r--r--libcxx/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp4
-rw-r--r--libcxx/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp7
-rw-r--r--libcxx/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp31
-rw-r--r--libcxx/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp11
-rw-r--r--libcxx/test/re/re.regex/re.regex.const/constants.pass.cpp13
-rw-r--r--libcxx/test/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp4
-rw-r--r--libcxx/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp4
-rw-r--r--libcxx/test/utilities/time/time.clock/time.clock.system/consistency.pass.cpp4
19 files changed, 669 insertions, 0 deletions
diff --git a/libcxx/include/limits b/libcxx/include/limits
index 68e6336..f089a79 100644
--- a/libcxx/include/limits
+++ b/libcxx/include/limits
@@ -479,6 +479,53 @@ public:
};
template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_specialized;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::digits;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::digits10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::max_digits10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_signed;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_integer;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_exact;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::radix;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::min_exponent;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::min_exponent10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::max_exponent;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::max_exponent10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_infinity;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_quiet_NaN;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_signaling_NaN;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const float_denorm_style numeric_limits<_Tp>::has_denorm;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_denorm_loss;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_iec559;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_bounded;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_modulo;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::traps;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::tinyness_before;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const float_round_style numeric_limits<_Tp>::round_style;
+
+template <class _Tp>
class _LIBCPP_VISIBLE numeric_limits<const _Tp>
: private numeric_limits<_Tp>
{
@@ -525,6 +572,53 @@ public:
};
template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_specialized;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::digits;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::digits10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::max_digits10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_signed;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_integer;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_exact;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::radix;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::min_exponent;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::min_exponent10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::max_exponent;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::max_exponent10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::has_infinity;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::has_quiet_NaN;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::has_signaling_NaN;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const float_denorm_style numeric_limits<const _Tp>::has_denorm;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::has_denorm_loss;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_iec559;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_bounded;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_modulo;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::traps;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::tinyness_before;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const float_round_style numeric_limits<const _Tp>::round_style;
+
+template <class _Tp>
class _LIBCPP_VISIBLE numeric_limits<volatile _Tp>
: private numeric_limits<_Tp>
{
@@ -571,6 +665,53 @@ public:
};
template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_specialized;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::digits;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::digits10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::max_digits10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_signed;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_integer;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_exact;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::radix;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::min_exponent;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::min_exponent10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::max_exponent;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::max_exponent10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::has_infinity;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::has_quiet_NaN;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::has_signaling_NaN;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const float_denorm_style numeric_limits<volatile _Tp>::has_denorm;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::has_denorm_loss;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_iec559;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_bounded;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_modulo;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::traps;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::tinyness_before;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const float_round_style numeric_limits<volatile _Tp>::round_style;
+
+template <class _Tp>
class _LIBCPP_VISIBLE numeric_limits<const volatile _Tp>
: private numeric_limits<_Tp>
{
@@ -616,6 +757,53 @@ public:
static _LIBCPP_CONSTEXPR const float_round_style round_style = __base::round_style;
};
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_specialized;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::digits;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::digits10;
+template <class _Tp>
+ const int numeric_limits<const volatile _Tp>::max_digits10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_signed;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_integer;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_exact;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::radix;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::min_exponent;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::min_exponent10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::max_exponent;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::max_exponent10;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::has_infinity;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::has_quiet_NaN;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::has_signaling_NaN;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const float_denorm_style numeric_limits<const volatile _Tp>::has_denorm;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::has_denorm_loss;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_iec559;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_bounded;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_modulo;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::traps;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::tinyness_before;
+template <class _Tp>
+ _LIBCPP_CONSTEXPR const float_round_style numeric_limits<const volatile _Tp>::round_style;
+
_LIBCPP_END_NAMESPACE_STD
#endif // _LIBCPP_LIMITS
diff --git a/libcxx/include/locale b/libcxx/include/locale
index 976c4cf..e7c1b33 100644
--- a/libcxx/include/locale
+++ b/libcxx/include/locale
@@ -2885,6 +2885,10 @@ template <class _CharT, bool _International>
locale::id
moneypunct<_CharT, _International>::id;
+template <class _CharT, bool _International>
+const bool
+moneypunct<_CharT, _International>::intl;
+
_LIBCPP_EXTERN_TEMPLATE(class moneypunct<char, false>)
_LIBCPP_EXTERN_TEMPLATE(class moneypunct<char, true>)
_LIBCPP_EXTERN_TEMPLATE(class moneypunct<wchar_t, false>)
diff --git a/libcxx/include/random b/libcxx/include/random
index d838289..04d942b 100644
--- a/libcxx/include/random
+++ b/libcxx/include/random
@@ -1931,6 +1931,22 @@ private:
};
template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
+ _LIBCPP_CONSTEXPR const typename linear_congruential_engine<_UIntType, __a, __c, __m>::result_type
+ linear_congruential_engine<_UIntType, __a, __c, __m>::multiplier;
+
+template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
+ _LIBCPP_CONSTEXPR const typename linear_congruential_engine<_UIntType, __a, __c, __m>::result_type
+ linear_congruential_engine<_UIntType, __a, __c, __m>::increment;
+
+template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
+ _LIBCPP_CONSTEXPR const typename linear_congruential_engine<_UIntType, __a, __c, __m>::result_type
+ linear_congruential_engine<_UIntType, __a, __c, __m>::modulus;
+
+template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
+ _LIBCPP_CONSTEXPR const typename linear_congruential_engine<_UIntType, __a, __c, __m>::result_type
+ linear_congruential_engine<_UIntType, __a, __c, __m>::default_seed;
+
+template <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>
template<class _Sseq>
void
linear_congruential_engine<_UIntType, __a, __c, __m>::__seed(_Sseq& __q,
@@ -2230,6 +2246,90 @@ private:
template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
_UIntType __a, size_t __u, _UIntType __d, size_t __s,
_UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const size_t
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::word_size;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const size_t
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::state_size;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const size_t
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::shift_size;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const size_t
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::mask_bits;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::xor_mask;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const size_t
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_u;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_d;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const size_t
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_s;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_b;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const size_t
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_t;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_c;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const size_t
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_l;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::initialization_multiplier;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
+ _LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type
+ mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::default_seed;
+
+template <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,
+ _UIntType __a, size_t __u, _UIntType __d, size_t __s,
+ _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>
void
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b,
__t, __c, __l, __f>::seed(result_type __sd)
@@ -2552,6 +2652,19 @@ private:
};
template<class _UIntType, size_t __w, size_t __s, size_t __r>
+ _LIBCPP_CONSTEXPR const size_t subtract_with_carry_engine<_UIntType, __w, __s, __r>::word_size;
+
+template<class _UIntType, size_t __w, size_t __s, size_t __r>
+ _LIBCPP_CONSTEXPR const size_t subtract_with_carry_engine<_UIntType, __w, __s, __r>::short_lag;
+
+template<class _UIntType, size_t __w, size_t __s, size_t __r>
+ _LIBCPP_CONSTEXPR const size_t subtract_with_carry_engine<_UIntType, __w, __s, __r>::long_lag;
+
+template<class _UIntType, size_t __w, size_t __s, size_t __r>
+ _LIBCPP_CONSTEXPR const typename subtract_with_carry_engine<_UIntType, __w, __s, __r>::result_type
+ subtract_with_carry_engine<_UIntType, __w, __s, __r>::default_seed;
+
+template<class _UIntType, size_t __w, size_t __s, size_t __r>
void
subtract_with_carry_engine<_UIntType, __w, __s, __r>::seed(result_type __sd,
integral_constant<unsigned, 1>)
@@ -2823,6 +2936,12 @@ public:
};
template<class _Engine, size_t __p, size_t __r>
+ _LIBCPP_CONSTEXPR const size_t discard_block_engine<_Engine, __p, __r>::block_size;
+
+template<class _Engine, size_t __p, size_t __r>
+ _LIBCPP_CONSTEXPR const size_t discard_block_engine<_Engine, __p, __r>::used_block;
+
+template<class _Engine, size_t __p, size_t __r>
typename discard_block_engine<_Engine, __p, __r>::result_type
discard_block_engine<_Engine, __p, __r>::operator()()
{
@@ -3314,6 +3433,9 @@ private:
}
};
+template<class _Engine, size_t __k>
+ _LIBCPP_CONSTEXPR const size_t shuffle_order_engine<_Engine, __k>::table_size;
+
template<class _Eng, size_t _Kp>
bool
operator==(
diff --git a/libcxx/include/regex b/libcxx/include/regex
index 7505f2e..982500f 100644
--- a/libcxx/include/regex
+++ b/libcxx/include/regex
@@ -2843,6 +2843,27 @@ private:
};
template <class _CharT, class _Traits>
+ const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::icase;
+template <class _CharT, class _Traits>
+ const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::nosubs;
+template <class _CharT, class _Traits>
+ const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::optimize;
+template <class _CharT, class _Traits>
+ const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::collate;
+template <class _CharT, class _Traits>
+ const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::ECMAScript;
+template <class _CharT, class _Traits>
+ const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::basic;
+template <class _CharT, class _Traits>
+ const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::extended;
+template <class _CharT, class _Traits>
+ const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::awk;
+template <class _CharT, class _Traits>
+ const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::grep;
+template <class _CharT, class _Traits>
+ const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::egrep;
+
+template <class _CharT, class _Traits>
void
basic_regex<_CharT, _Traits>::swap(basic_regex& __r)
{
diff --git a/libcxx/src/chrono.cpp b/libcxx/src/chrono.cpp
index 73c83ee..1ce2e28 100644
--- a/libcxx/src/chrono.cpp
+++ b/libcxx/src/chrono.cpp
@@ -24,6 +24,8 @@ namespace chrono
// system_clock
+const bool system_clock::is_steady;
+
system_clock::time_point
system_clock::now() _NOEXCEPT
{
@@ -46,6 +48,8 @@ system_clock::from_time_t(time_t t) _NOEXCEPT
// steady_clock
+const bool steady_clock::is_steady;
+
#if __APPLE__
// mach_absolute_time() * MachInfo.numer / MachInfo.denom is the number of
// nanoseconds since the computer booted up. MachInfo.numer and MachInfo.denom
diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp
index 542c0d7..284bee7 100644
--- a/libcxx/src/locale.cpp
+++ b/libcxx/src/locale.cpp
@@ -83,6 +83,15 @@ make(A0 a0, A1 a1, A2 a2)
}
+const locale::category locale::none;
+const locale::category locale::collate;
+const locale::category locale::ctype;
+const locale::category locale::monetary;
+const locale::category locale::numeric;
+const locale::category locale::time;
+const locale::category locale::messages;
+const locale::category locale::all;
+
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wpadded"
@@ -691,6 +700,19 @@ collate_byname<wchar_t>::do_transform(const char_type* lo, const char_type* hi)
// template <> class ctype<wchar_t>;
+const ctype_base::mask ctype_base::space;
+const ctype_base::mask ctype_base::print;
+const ctype_base::mask ctype_base::cntrl;
+const ctype_base::mask ctype_base::upper;
+const ctype_base::mask ctype_base::lower;
+const ctype_base::mask ctype_base::alpha;
+const ctype_base::mask ctype_base::digit;
+const ctype_base::mask ctype_base::punct;
+const ctype_base::mask ctype_base::xdigit;
+const ctype_base::mask ctype_base::blank;
+const ctype_base::mask ctype_base::alnum;
+const ctype_base::mask ctype_base::graph;
+
locale::id ctype<wchar_t>::id;
ctype<wchar_t>::~ctype()
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp
new file mode 100755
index 0000000..d6ae228
--- /dev/null
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp
@@ -0,0 +1,185 @@
+//===----------------------------------------------------------------------===//
+//
+// 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.
+//
+//===----------------------------------------------------------------------===//
+
+#include <limits>
+
+/*
+<limits>:
+ numeric_limits
+ is_specialized
+ digits
+ digits10
+ max_digits10
+ is_signed
+ is_integer
+ is_exact
+ radix
+ min_exponent
+ min_exponent10
+ max_exponent
+ max_exponent10
+ has_infinity
+ has_quiet_NaN
+ has_signaling_NaN
+ has_denorm
+ has_denorm_loss
+ is_iec559
+ is_bounded
+ is_modulo
+ traps
+ tinyness_before
+ round_style
+*/
+
+template <class _Tp>
+void test(const _Tp &) {}
+
+#define TEST_NUMERIC_LIMITS(type) \
+ test(std::numeric_limits<type>::is_specialized); \
+ test(std::numeric_limits<type>::digits); \
+ test(std::numeric_limits<type>::digits10); \
+ test(std::numeric_limits<type>::max_digits10); \
+ test(std::numeric_limits<type>::is_signed); \
+ test(std::numeric_limits<type>::is_integer); \
+ test(std::numeric_limits<type>::is_exact); \
+ test(std::numeric_limits<type>::radix); \
+ test(std::numeric_limits<type>::min_exponent); \
+ test(std::numeric_limits<type>::min_exponent10); \
+ test(std::numeric_limits<type>::max_exponent); \
+ test(std::numeric_limits<type>::max_exponent10); \
+ test(std::numeric_limits<type>::has_infinity); \
+ test(std::numeric_limits<type>::has_quiet_NaN); \
+ test(std::numeric_limits<type>::has_signaling_NaN); \
+ test(std::numeric_limits<type>::has_denorm); \
+ test(std::numeric_limits<type>::has_denorm_loss); \
+ test(std::numeric_limits<type>::is_iec559); \
+ test(std::numeric_limits<type>::is_bounded); \
+ test(std::numeric_limits<type>::is_modulo); \
+ test(std::numeric_limits<type>::traps); \
+ test(std::numeric_limits<type>::tinyness_before); \
+ test(std::numeric_limits<type>::round_style);
+
+struct other {};
+
+int main()
+{
+ // bool
+ TEST_NUMERIC_LIMITS(bool)
+ TEST_NUMERIC_LIMITS(const bool)
+ TEST_NUMERIC_LIMITS(volatile bool)
+ TEST_NUMERIC_LIMITS(const volatile bool)
+
+ // char
+ TEST_NUMERIC_LIMITS(char)
+ TEST_NUMERIC_LIMITS(const char)
+ TEST_NUMERIC_LIMITS(volatile char)
+ TEST_NUMERIC_LIMITS(const volatile char)
+
+ // signed char
+ TEST_NUMERIC_LIMITS(signed char)
+ TEST_NUMERIC_LIMITS(const signed char)
+ TEST_NUMERIC_LIMITS(volatile signed char)
+ TEST_NUMERIC_LIMITS(const volatile signed char)
+
+ // unsigned char
+ TEST_NUMERIC_LIMITS(unsigned char)
+ TEST_NUMERIC_LIMITS(const unsigned char)
+ TEST_NUMERIC_LIMITS(volatile unsigned char)
+ TEST_NUMERIC_LIMITS(const volatile unsigned char)
+
+ // wchar_t
+ TEST_NUMERIC_LIMITS(wchar_t)
+ TEST_NUMERIC_LIMITS(const wchar_t)
+ TEST_NUMERIC_LIMITS(volatile wchar_t)
+ TEST_NUMERIC_LIMITS(const volatile wchar_t)
+
+ // char16_t
+ TEST_NUMERIC_LIMITS(char16_t)
+ TEST_NUMERIC_LIMITS(const char16_t)
+ TEST_NUMERIC_LIMITS(volatile char16_t)
+ TEST_NUMERIC_LIMITS(const volatile char16_t)
+
+ // char32_t
+ TEST_NUMERIC_LIMITS(char32_t)
+ TEST_NUMERIC_LIMITS(const char32_t)
+ TEST_NUMERIC_LIMITS(volatile char32_t)
+ TEST_NUMERIC_LIMITS(const volatile char32_t)
+
+ // short
+ TEST_NUMERIC_LIMITS(short)
+ TEST_NUMERIC_LIMITS(const short)
+ TEST_NUMERIC_LIMITS(volatile short)
+ TEST_NUMERIC_LIMITS(const volatile short)
+
+ // int
+ TEST_NUMERIC_LIMITS(int)
+ TEST_NUMERIC_LIMITS(const int)
+ TEST_NUMERIC_LIMITS(volatile int)
+ TEST_NUMERIC_LIMITS(const volatile int)
+
+ // long
+ TEST_NUMERIC_LIMITS(long)
+ TEST_NUMERIC_LIMITS(const long)
+ TEST_NUMERIC_LIMITS(volatile long)
+ TEST_NUMERIC_LIMITS(const volatile long)
+
+ // long long
+ TEST_NUMERIC_LIMITS(long long)
+ TEST_NUMERIC_LIMITS(const long long)
+ TEST_NUMERIC_LIMITS(volatile long long)
+ TEST_NUMERIC_LIMITS(const volatile long long)
+
+ // unsigned short
+ TEST_NUMERIC_LIMITS(unsigned short)
+ TEST_NUMERIC_LIMITS(const unsigned short)
+ TEST_NUMERIC_LIMITS(volatile unsigned short)
+ TEST_NUMERIC_LIMITS(const volatile unsigned short)
+
+ // unsigned int
+ TEST_NUMERIC_LIMITS(unsigned int)
+ TEST_NUMERIC_LIMITS(const unsigned int)
+ TEST_NUMERIC_LIMITS(volatile unsigned int)
+ TEST_NUMERIC_LIMITS(const volatile unsigned int)
+
+ // unsigned long
+ TEST_NUMERIC_LIMITS(unsigned long)
+ TEST_NUMERIC_LIMITS(const unsigned long)
+ TEST_NUMERIC_LIMITS(volatile unsigned long)
+ TEST_NUMERIC_LIMITS(const volatile unsigned long)
+
+ // unsigned long long
+ TEST_NUMERIC_LIMITS(unsigned long long)
+ TEST_NUMERIC_LIMITS(const unsigned long long)
+ TEST_NUMERIC_LIMITS(volatile unsigned long long)
+ TEST_NUMERIC_LIMITS(const volatile unsigned long long)
+
+ // float
+ TEST_NUMERIC_LIMITS(float)
+ TEST_NUMERIC_LIMITS(const float)
+ TEST_NUMERIC_LIMITS(volatile float)
+ TEST_NUMERIC_LIMITS(const volatile float)
+
+ // double
+ TEST_NUMERIC_LIMITS(double)
+ TEST_NUMERIC_LIMITS(const double)
+ TEST_NUMERIC_LIMITS(volatile double)
+ TEST_NUMERIC_LIMITS(const volatile double)
+
+ // long double
+ TEST_NUMERIC_LIMITS(long double)
+ TEST_NUMERIC_LIMITS(const long double)
+ TEST_NUMERIC_LIMITS(volatile long double)
+ TEST_NUMERIC_LIMITS(const volatile long double)
+
+ // other
+ TEST_NUMERIC_LIMITS(other)
+ TEST_NUMERIC_LIMITS(const other)
+ TEST_NUMERIC_LIMITS(volatile other)
+ TEST_NUMERIC_LIMITS(const volatile other)
+}
diff --git a/libcxx/test/localization/locale.categories/category.ctype/ctype_base.pass.cpp b/libcxx/test/localization/locale.categories/category.ctype/ctype_base.pass.cpp
index 9365b26..497eaa3 100644
--- a/libcxx/test/localization/locale.categories/category.ctype/ctype_base.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.ctype/ctype_base.pass.cpp
@@ -31,6 +31,9 @@
#include <locale>
#include <cassert>
+template <class _Tp>
+void test(const _Tp &) {}
+
int main()
{
assert(std::ctype_base::space);
@@ -54,4 +57,17 @@ int main()
& std::ctype_base::xdigit) == 0);
assert(std::ctype_base::alnum == (std::ctype_base::alpha | std::ctype_base::digit));
assert(std::ctype_base::graph == (std::ctype_base::alnum | std::ctype_base::punct));
+
+ test(std::ctype_base::space);
+ test(std::ctype_base::print);
+ test(std::ctype_base::cntrl);
+ test(std::ctype_base::upper);
+ test(std::ctype_base::lower);
+ test(std::ctype_base::alpha);
+ test(std::ctype_base::digit);
+ test(std::ctype_base::punct);
+ test(std::ctype_base::xdigit);
+ test(std::ctype_base::blank);
+ test(std::ctype_base::alnum);
+ test(std::ctype_base::graph);
}
diff --git a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp
index 7025ec9..0d616e3 100644
--- a/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp
+++ b/libcxx/test/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp
@@ -17,10 +17,14 @@
// public:
// typedef _CharT char_type;
// typedef basic_string<char_type> string_type;
+// static const bool intl = International;
#include <locale>
#include <type_traits>
+template <class _Tp>
+void test(const _Tp &) {}
+
int main()
{
static_assert((std::is_base_of<std::locale::facet, std::moneypunct<char> >::value), "");
@@ -31,4 +35,9 @@ int main()
static_assert((std::is_same<std::moneypunct<wchar_t>::char_type, wchar_t>::value), "");
static_assert((std::is_same<std::moneypunct<char>::string_type, std::string>::value), "");
static_assert((std::is_same<std::moneypunct<wchar_t>::string_type, std::wstring>::value), "");
+
+ test(std::moneypunct<char, false>::intl);
+ test(std::moneypunct<char, true>::intl);
+ test(std::moneypunct<wchar_t, false>::intl);
+ test(std::moneypunct<wchar_t, true>::intl);
}
diff --git a/libcxx/test/localization/locales/locale/locale.types/locale.category/category.pass.cpp b/libcxx/test/localization/locales/locale/locale.types/locale.category/category.pass.cpp
index 0119b84..b8ed596 100644
--- a/libcxx/test/localization/locales/locale/locale.types/locale.category/category.pass.cpp
+++ b/libcxx/test/localization/locales/locale/locale.types/locale.category/category.pass.cpp
@@ -15,6 +15,10 @@
#include <type_traits>
#include <cassert>
+template <class _Tp>
+void test(const _Tp &) {}
+
+
int main()
{
static_assert((std::is_same<std::locale::category, int>::value), "");
@@ -38,4 +42,13 @@ int main()
| std::locale::time
| std::locale::messages)
== std::locale::all);
+
+ test(std::locale::none);
+ test(std::locale::collate);
+ test(std::locale::ctype);
+ test(std::locale::monetary);
+ test(std::locale::numeric);
+ test(std::locale::time);
+ test(std::locale::messages);
+ test(std::locale::all);
}
diff --git a/libcxx/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp b/libcxx/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp
index 9a75b0b..53e4c29 100644
--- a/libcxx/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp
+++ b/libcxx/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp
@@ -26,6 +26,9 @@
#include <type_traits>
#include <cassert>
+template <class _Tp>
+void where(const _Tp &) {}
+
void
test1()
{
@@ -34,6 +37,8 @@ test1()
static_assert((E::used_block == 23), "");
/*static_*/assert((E::min() == 0)/*, ""*/);
/*static_*/assert((E::max() == 0xFFFFFF)/*, ""*/);
+ where(E::block_size);
+ where(E::used_block);
}
void
@@ -44,6 +49,8 @@ test2()
static_assert((E::used_block == 11), "");
/*static_*/assert((E::min() == 0)/*, ""*/);
/*static_*/assert((E::max() == 0xFFFFFFFFFFFFull)/*, ""*/);
+ where(E::block_size);
+ where(E::used_block);
}
int main()
diff --git a/libcxx/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp b/libcxx/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp
index 0eb3b68..eb42d64 100644
--- a/libcxx/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp
+++ b/libcxx/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp
@@ -25,6 +25,9 @@
#include <type_traits>
#include <cassert>
+template <class _Tp>
+void where(const _Tp &) {}
+
void
test1()
{
@@ -32,6 +35,7 @@ test1()
static_assert(E::table_size == 256, "");
/*static_*/assert((E::min() == 1)/*, ""*/);
/*static_*/assert((E::max() == 2147483646)/*, ""*/);
+ where(E::table_size);
}
int main()
diff --git a/libcxx/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp b/libcxx/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp
index 978eecc..857a478 100644
--- a/libcxx/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp
+++ b/libcxx/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp
@@ -25,6 +25,9 @@
#include <type_traits>
#include <cassert>
+template <class _Tp>
+void where(const _Tp &) {}
+
template <class T, T a, T c, T m>
void
test1()
@@ -37,6 +40,10 @@ test1()
/*static_*/assert((LCE::min() == (c == 0u ? 1u: 0u))/*, ""*/);
/*static_*/assert((LCE::max() == result_type(m - 1u))/*, ""*/);
static_assert((LCE::default_seed == 1), "");
+ where(LCE::multiplier);
+ where(LCE::increment);
+ where(LCE::modulus);
+ where(LCE::default_seed);
}
template <class T>
diff --git a/libcxx/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp b/libcxx/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp
index 558d0e7..331d3c5 100644
--- a/libcxx/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp
+++ b/libcxx/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp
@@ -40,6 +40,9 @@
#include <type_traits>
#include <cassert>
+template <class _Tp>
+void where(const _Tp &) {}
+
void
test1()
{
@@ -60,6 +63,20 @@ test1()
/*static_*/assert((E::min() == 0)/*, ""*/);
/*static_*/assert((E::max() == 0xFFFFFFFF)/*, ""*/);
static_assert((E::default_seed == 5489u), "");
+ where(E::word_size);
+ where(E::state_size);
+ where(E::shift_size);
+ where(E::mask_bits);
+ where(E::xor_mask);
+ where(E::tempering_u);
+ where(E::tempering_d);
+ where(E::tempering_s);
+ where(E::tempering_b);
+ where(E::tempering_t);
+ where(E::tempering_c);
+ where(E::tempering_l);
+ where(E::initialization_multiplier);
+ where(E::default_seed);
}
void
@@ -82,6 +99,20 @@ test2()
/*static_*/assert((E::min() == 0)/*, ""*/);
/*static_*/assert((E::max() == 0xFFFFFFFFFFFFFFFFull)/*, ""*/);
static_assert((E::default_seed == 5489u), "");
+ where(E::word_size);
+ where(E::state_size);
+ where(E::shift_size);
+ where(E::mask_bits);
+ where(E::xor_mask);
+ where(E::tempering_u);
+ where(E::tempering_d);
+ where(E::tempering_s);
+ where(E::tempering_b);
+ where(E::tempering_t);
+ where(E::tempering_c);
+ where(E::tempering_l);
+ where(E::initialization_multiplier);
+ where(E::default_seed);
}
int main()
diff --git a/libcxx/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp b/libcxx/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp
index 84342a2..75716a4 100644
--- a/libcxx/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp
+++ b/libcxx/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp
@@ -28,6 +28,9 @@
#include <type_traits>
#include <cassert>
+template <class _Tp>
+void where(const _Tp &) {}
+
void
test1()
{
@@ -38,6 +41,10 @@ test1()
/*static_*/assert((E::min() == 0)/*, ""*/);
/*static_*/assert((E::max() == 0xFFFFFF)/*, ""*/);
static_assert((E::default_seed == 19780503u), "");
+ where(E::word_size);
+ where(E::short_lag);
+ where(E::long_lag);
+ where(E::default_seed);
}
void
@@ -50,6 +57,10 @@ test2()
/*static_*/assert((E::min() == 0)/*, ""*/);
/*static_*/assert((E::max() == 0xFFFFFFFFFFFFull)/*, ""*/);
static_assert((E::default_seed == 19780503u), "");
+ where(E::word_size);
+ where(E::short_lag);
+ where(E::long_lag);
+ where(E::default_seed);
}
int main()
diff --git a/libcxx/test/re/re.regex/re.regex.const/constants.pass.cpp b/libcxx/test/re/re.regex/re.regex.const/constants.pass.cpp
index 4db5a37..85297b91 100644
--- a/libcxx/test/re/re.regex/re.regex.const/constants.pass.cpp
+++ b/libcxx/test/re/re.regex/re.regex.const/constants.pass.cpp
@@ -28,6 +28,9 @@
#include <regex>
#include <type_traits>
+template <class _Tp>
+void where(const _Tp &) {}
+
template <class CharT>
void
test()
@@ -43,6 +46,16 @@ test()
static_assert((BR::awk == std::regex_constants::awk), "");
static_assert((BR::grep == std::regex_constants::grep), "");
static_assert((BR::egrep == std::regex_constants::egrep), "");
+ where(BR::icase);
+ where(BR::nosubs);
+ where(BR::optimize);
+ where(BR::collate);
+ where(BR::ECMAScript);
+ where(BR::basic);
+ where(BR::extended);
+ where(BR::awk);
+ where(BR::grep);
+ where(BR::egrep);
}
int main()
diff --git a/libcxx/test/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp b/libcxx/test/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp
index e761c96..3abf432 100644
--- a/libcxx/test/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp
+++ b/libcxx/test/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp
@@ -15,6 +15,9 @@
#include <chrono>
+template <class _Tp>
+void test(const _Tp &) {}
+
int main()
{
typedef std::chrono::high_resolution_clock C;
@@ -22,4 +25,5 @@ int main()
static_assert((std::is_same<C::period, C::duration::period>::value), "");
static_assert((std::is_same<C::duration, C::time_point::duration>::value), "");
static_assert(C::is_steady || !C::is_steady, "");
+ test(std::chrono::high_resolution_clock::is_steady);
}
diff --git a/libcxx/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp b/libcxx/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp
index a325fa2..5e42dc9 100644
--- a/libcxx/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp
+++ b/libcxx/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp
@@ -15,6 +15,9 @@
#include <chrono>
+template <class _Tp>
+void test(const _Tp &) {}
+
int main()
{
typedef std::chrono::steady_clock C;
@@ -22,4 +25,5 @@ int main()
static_assert((std::is_same<C::period, C::duration::period>::value), "");
static_assert((std::is_same<C::duration, C::time_point::duration>::value), "");
static_assert(C::is_steady, "");
+ test(std::chrono::steady_clock::is_steady);
}
diff --git a/libcxx/test/utilities/time/time.clock/time.clock.system/consistency.pass.cpp b/libcxx/test/utilities/time/time.clock/time.clock.system/consistency.pass.cpp
index 5029b55..4182384 100644
--- a/libcxx/test/utilities/time/time.clock/time.clock.system/consistency.pass.cpp
+++ b/libcxx/test/utilities/time/time.clock/time.clock.system/consistency.pass.cpp
@@ -15,6 +15,9 @@
#include <chrono>
+template <class _Tp>
+void test(const _Tp &) {}
+
int main()
{
typedef std::chrono::system_clock C;
@@ -23,4 +26,5 @@ int main()
static_assert((std::is_same<C::duration, C::time_point::duration>::value), "");
static_assert((std::is_same<C::time_point::clock, C>::value), "");
static_assert((C::is_steady || !C::is_steady), "");
+ test(std::chrono::system_clock::is_steady);
}