diff options
Diffstat (limited to 'test/utilities')
6 files changed, 46 insertions, 0 deletions
diff --git a/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp b/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp index 2dd4d9ac..7de3b0da 100644 --- a/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp +++ b/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp @@ -21,6 +21,13 @@ enum BigEnum big = 0xFFFFFFFFFFFFFFFFULL }; +#if !defined(_LIBCPP_HAS_NO_INT128) && !defined(_LIBCPP_HAS_NO_STRONG_ENUMS) +enum HugeEnum : __uint128_t +{ + hugezero +}; +#endif + template <class T, class U> void test_make_signed() { @@ -47,4 +54,11 @@ int main() test_make_signed< const wchar_t, std::conditional<sizeof(wchar_t) == 4, const int, const short>::type >(); test_make_signed< const Enum, const int >(); test_make_signed< BigEnum, std::conditional<sizeof(long) == 4, long long, long>::type >(); +#ifndef _LIBCPP_HAS_NO_INT128 + test_make_signed< __int128_t, __int128_t >(); + test_make_signed< __uint128_t, __int128_t >(); +# ifndef _LIBCPP_HAS_NO_STRONG_ENUMS + test_make_signed< HugeEnum, __int128_t >(); +# endif +#endif } diff --git a/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp b/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp index 6700b6cb..a13485a8 100644 --- a/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp +++ b/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp @@ -21,6 +21,13 @@ enum BigEnum big = 0xFFFFFFFFFFFFFFFFULL }; +#if !defined(_LIBCPP_HAS_NO_INT128) && !defined(_LIBCPP_HAS_NO_STRONG_ENUMS) +enum HugeEnum : __int128_t +{ + hugezero +}; +#endif + template <class T, class U> void test_make_unsigned() { @@ -48,4 +55,11 @@ int main() test_make_unsigned<const Enum, const unsigned int> (); test_make_unsigned<BigEnum, std::conditional<sizeof(long) == 4, unsigned long long, unsigned long>::type> (); +#ifndef _LIBCPP_HAS_NO_INT128 + test_make_unsigned<__int128_t, __uint128_t>(); + test_make_unsigned<__uint128_t, __uint128_t>(); +# ifndef _LIBCPP_HAS_NO_STRONG_ENUMS + test_make_unsigned<HugeEnum, __uint128_t>(); +# endif +#endif } diff --git a/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp b/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp index 7d3b0f8b..f68ed3ef 100644 --- a/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp +++ b/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp @@ -58,4 +58,8 @@ int main() test_integral<unsigned long>(); test_integral<long long>(); test_integral<unsigned long long>(); +#ifndef _LIBCPP_HAS_NO_INT128 + test_integral<__int128_t>(); + test_integral<__uint128_t>(); +#endif } diff --git a/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp b/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp index f5da85c4..0bc94583 100644 --- a/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp +++ b/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp @@ -49,4 +49,8 @@ int main() test_integral<unsigned long>(); test_integral<long long>(); test_integral<unsigned long long>(); +#ifndef _LIBCPP_HAS_NO_INT128 + test_integral<__int128_t>(); + test_integral<__uint128_t>(); +#endif } diff --git a/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp b/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp index 9737e153..7de65665 100644 --- a/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp +++ b/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp @@ -51,4 +51,9 @@ int main() test_is_signed<int>(); test_is_signed<double>(); + +#ifndef _LIBCPP_HAS_NO_INT128 + test_is_signed<__int128_t>(); + test_is_not_signed<__uint128_t>(); +#endif } diff --git a/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp b/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp index d3372ad1..2cd49454 100644 --- a/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp +++ b/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp @@ -51,4 +51,9 @@ int main() test_is_unsigned<bool>(); test_is_unsigned<unsigned>(); + +#ifndef _LIBCPP_HAS_NO_INT128 + test_is_unsigned<__uint128_t>(); + test_is_not_unsigned<__int128_t>(); +#endif } |