summaryrefslogtreecommitdiff
path: root/test/utilities
diff options
context:
space:
mode:
Diffstat (limited to 'test/utilities')
-rw-r--r--test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp14
-rw-r--r--test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp14
-rw-r--r--test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp4
-rw-r--r--test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp4
-rw-r--r--test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp5
-rw-r--r--test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp5
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
}