Author: pawel Date: Thu Dec 13 10:31:31 2012 New Revision: 170137 URL: http://llvm.org/viewvc/llvm-project?rev=170137&view=rev Log: 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. Added: libcxx/branches/release_32/test/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp - copied unchanged from r170026, libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp Modified: libcxx/branches/release_32/ (props changed) libcxx/branches/release_32/include/limits libcxx/branches/release_32/include/locale libcxx/branches/release_32/include/random libcxx/branches/release_32/include/regex libcxx/branches/release_32/src/chrono.cpp libcxx/branches/release_32/src/locale.cpp libcxx/branches/release_32/test/localization/locale.categories/category.ctype/ctype_base.pass.cpp libcxx/branches/release_32/test/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp libcxx/branches/release_32/test/localization/locales/locale/locale.types/locale.category/category.pass.cpp libcxx/branches/release_32/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp libcxx/branches/release_32/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp libcxx/branches/release_32/test/re/re.regex/re.regex.const/constants.pass.cpp libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.system/consistency.pass.cpp Propchange: libcxx/branches/release_32/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Dec 13 10:31:31 2012 @@ -1 +1,2 @@ /libcxx/branches/apple:136569-137939 +/libcxx/trunk:170026 Modified: libcxx/branches/release_32/include/limits URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/include/limits?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/include/limits (original) +++ libcxx/branches/release_32/include/limits Thu Dec 13 10:31:31 2012 @@ -479,6 +479,53 @@ }; 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 @@ }; 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 @@ }; 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 @@ 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 Modified: libcxx/branches/release_32/include/locale URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/include/locale?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/include/locale (original) +++ libcxx/branches/release_32/include/locale Thu Dec 13 10:31:31 2012 @@ -2885,6 +2885,10 @@ 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>) Modified: libcxx/branches/release_32/include/random URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/include/random?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/include/random (original) +++ libcxx/branches/release_32/include/random Thu Dec 13 10:31:31 2012 @@ -1931,6 +1931,22 @@ }; 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 @@ 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 @@ }; 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 @@ }; 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 @@ } }; +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==( Modified: libcxx/branches/release_32/include/regex URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/include/regex?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/include/regex (original) +++ libcxx/branches/release_32/include/regex Thu Dec 13 10:31:31 2012 @@ -2843,6 +2843,27 @@ }; 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) { Modified: libcxx/branches/release_32/src/chrono.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/src/chrono.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/src/chrono.cpp (original) +++ libcxx/branches/release_32/src/chrono.cpp Thu Dec 13 10:31:31 2012 @@ -24,6 +24,8 @@ // system_clock +const bool system_clock::is_steady; + system_clock::time_point system_clock::now() _NOEXCEPT { @@ -46,6 +48,8 @@ // 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 Modified: libcxx/branches/release_32/src/locale.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/src/locale.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/src/locale.cpp (original) +++ libcxx/branches/release_32/src/locale.cpp Thu Dec 13 10:31:31 2012 @@ -83,6 +83,15 @@ } +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 @@ // 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() Modified: libcxx/branches/release_32/test/localization/locale.categories/category.ctype/ctype_base.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/test/localization/locale.categories/category.ctype/ctype_base.pass.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/test/localization/locale.categories/category.ctype/ctype_base.pass.cpp (original) +++ libcxx/branches/release_32/test/localization/locale.categories/category.ctype/ctype_base.pass.cpp Thu Dec 13 10:31:31 2012 @@ -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 @@ & 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); } Modified: libcxx/branches/release_32/test/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/test/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/test/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp (original) +++ libcxx/branches/release_32/test/localization/locale.categories/category.monetary/locale.moneypunct/types.pass.cpp Thu Dec 13 10:31:31 2012 @@ -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 @@ 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); } Modified: libcxx/branches/release_32/test/localization/locales/locale/locale.types/locale.category/category.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/test/localization/locales/locale/locale.types/locale.category/category.pass.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/test/localization/locales/locale/locale.types/locale.category/category.pass.cpp (original) +++ libcxx/branches/release_32/test/localization/locales/locale/locale.types/locale.category/category.pass.cpp Thu Dec 13 10:31:31 2012 @@ -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 @@ | 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); } Modified: libcxx/branches/release_32/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp (original) +++ libcxx/branches/release_32/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp Thu Dec 13 10:31:31 2012 @@ -26,6 +26,9 @@ #include <type_traits> #include <cassert> +template <class _Tp> +void where(const _Tp &) {} + void test1() { @@ -34,6 +37,8 @@ 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 @@ 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() Modified: libcxx/branches/release_32/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp (original) +++ libcxx/branches/release_32/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp Thu Dec 13 10:31:31 2012 @@ -25,6 +25,9 @@ #include <type_traits> #include <cassert> +template <class _Tp> +void where(const _Tp &) {} + void test1() { @@ -32,6 +35,7 @@ static_assert(E::table_size == 256, ""); /*static_*/assert((E::min() == 1)/*, ""*/); /*static_*/assert((E::max() == 2147483646)/*, ""*/); + where(E::table_size); } int main() Modified: libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp (original) +++ libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp Thu Dec 13 10:31:31 2012 @@ -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 @@ /*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> Modified: libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp (original) +++ libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp Thu Dec 13 10:31:31 2012 @@ -40,6 +40,9 @@ #include <type_traits> #include <cassert> +template <class _Tp> +void where(const _Tp &) {} + void test1() { @@ -60,6 +63,20 @@ /*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 @@ /*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() Modified: libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp (original) +++ libcxx/branches/release_32/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp Thu Dec 13 10:31:31 2012 @@ -28,6 +28,9 @@ #include <type_traits> #include <cassert> +template <class _Tp> +void where(const _Tp &) {} + void test1() { @@ -38,6 +41,10 @@ /*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 @@ /*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() Modified: libcxx/branches/release_32/test/re/re.regex/re.regex.const/constants.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/test/re/re.regex/re.regex.const/constants.pass.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/test/re/re.regex/re.regex.const/constants.pass.cpp (original) +++ libcxx/branches/release_32/test/re/re.regex/re.regex.const/constants.pass.cpp Thu Dec 13 10:31:31 2012 @@ -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 @@ 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() Modified: libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp (original) +++ libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.hires/consistency.pass.cpp Thu Dec 13 10:31:31 2012 @@ -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 @@ 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); } Modified: libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp (original) +++ libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.steady/consistency.pass.cpp Thu Dec 13 10:31:31 2012 @@ -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 @@ 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); } Modified: libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.system/consistency.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.system/consistency.pass.cpp?rev=170137&r1=170136&r2=170137&view=diff ============================================================================== --- libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.system/consistency.pass.cpp (original) +++ libcxx/branches/release_32/test/utilities/time/time.clock/time.clock.system/consistency.pass.cpp Thu Dec 13 10:31:31 2012 @@ -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 @@ 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); } _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits