summaryrefslogtreecommitdiffstats
path: root/libcxx/test
diff options
context:
space:
mode:
authorStephan Tolksdorf <st@quanttec.com>2014-03-26 19:45:52 +0000
committerStephan Tolksdorf <st@quanttec.com>2014-03-26 19:45:52 +0000
commite180ecab2c8fb1b4bc067abc373d351351c250a6 (patch)
treeee69dcca91b75d549ae9d58359e51385133d7dc7 /libcxx/test
parent6e28e6aaaf68dd75fcadaf6abe48c10cb20a43e4 (diff)
downloadbcm5719-llvm-e180ecab2c8fb1b4bc067abc373d351351c250a6.tar.gz
bcm5719-llvm-e180ecab2c8fb1b4bc067abc373d351351c250a6.zip
[libc++] Teach is_integral, is_[un]signed and make_[un]signed about __[u]int128_t
This commit also adds tests for std::numeric_limits<__[u]int128_t>. Reviewed in http://llvm-reviews.chandlerc.com/D2917 llvm-svn: 204849
Diffstat (limited to 'libcxx/test')
-rw-r--r--libcxx/test/language.support/support.limits/limits/is_specialized.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp14
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp4
-rw-r--r--libcxx/test/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp4
-rw-r--r--libcxx/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp14
-rw-r--r--libcxx/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp14
-rw-r--r--libcxx/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp4
-rw-r--r--libcxx/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp4
-rw-r--r--libcxx/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp5
-rw-r--r--libcxx/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp5
39 files changed, 188 insertions, 0 deletions
diff --git a/libcxx/test/language.support/support.limits/limits/is_specialized.pass.cpp b/libcxx/test/language.support/support.limits/limits/is_specialized.pass.cpp
index 1e323b80ada..ff5c1a2c0b8 100644
--- a/libcxx/test/language.support/support.limits/limits/is_specialized.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/is_specialized.pass.cpp
@@ -59,6 +59,10 @@ int main()
test<unsigned long>();
test<signed long long>();
test<unsigned long long>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t>();
+ test<__uint128_t>();
+#endif
test<float>();
test<double>();
test<long double>();
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
index d6ae2284ed4..bbead15da64 100644
--- 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
@@ -129,6 +129,13 @@ int main()
TEST_NUMERIC_LIMITS(volatile long)
TEST_NUMERIC_LIMITS(const volatile long)
+#ifndef _LIBCPP_HAS_NO_INT128
+ TEST_NUMERIC_LIMITS(__int128_t)
+ TEST_NUMERIC_LIMITS(const __int128_t)
+ TEST_NUMERIC_LIMITS(volatile __int128_t)
+ TEST_NUMERIC_LIMITS(const volatile __int128_t)
+#endif
+
// long long
TEST_NUMERIC_LIMITS(long long)
TEST_NUMERIC_LIMITS(const long long)
@@ -159,6 +166,13 @@ int main()
TEST_NUMERIC_LIMITS(volatile unsigned long long)
TEST_NUMERIC_LIMITS(const volatile unsigned long long)
+#ifndef _LIBCPP_HAS_NO_INT128
+ TEST_NUMERIC_LIMITS(__uint128_t)
+ TEST_NUMERIC_LIMITS(const __uint128_t)
+ TEST_NUMERIC_LIMITS(volatile __uint128_t)
+ TEST_NUMERIC_LIMITS(const volatile __uint128_t)
+#endif
+
// float
TEST_NUMERIC_LIMITS(float)
TEST_NUMERIC_LIMITS(const float)
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp
index d17d4a90faa..a452d4e9949 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp
@@ -43,6 +43,10 @@ int main()
test<unsigned long>(0);
test<long long>(0);
test<unsigned long long>(0);
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t>(0);
+ test<__uint128_t>(0);
+#endif
test<float>(__FLT_DENORM_MIN__);
test<double>(__DBL_DENORM_MIN__);
test<long double>(__LDBL_DENORM_MIN__);
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp
index ee6aafe68f2..2dfea084b11 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp
@@ -43,6 +43,10 @@ int main()
test<unsigned long, sizeof(long) == 4 ? 32 : 64>();
test<long long, 63>();
test<unsigned long long, 64>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, 127>();
+ test<__uint128_t, 128>();
+#endif
test<float, FLT_MANT_DIG>();
test<double, DBL_MANT_DIG>();
test<long double, LDBL_MANT_DIG>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp
index 73e87fc9d04..2c5302cd633 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp
@@ -47,6 +47,10 @@ int main()
test<unsigned long, sizeof(long) == 4 ? 9 : 19>();
test<long long, 18>();
test<unsigned long long, 19>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, 38>();
+ test<__uint128_t, 38>();
+#endif
test<float, FLT_DIG>();
test<double, DBL_DIG>();
test<long double, LDBL_DIG>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp
index e14de8ed816..0cce4848187 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp
@@ -44,6 +44,10 @@ int main()
test<unsigned long>(0);
test<long long>(0);
test<unsigned long long>(0);
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t>(0);
+ test<__uint128_t>(0);
+#endif
test<float>(FLT_EPSILON);
test<double>(DBL_EPSILON);
test<long double>(LDBL_EPSILON);
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp
index 4dcd4d4689c..e61802054d1 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp
@@ -42,6 +42,10 @@ int main()
test<unsigned long, std::denorm_absent>();
test<long long, std::denorm_absent>();
test<unsigned long long, std::denorm_absent>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, std::denorm_absent>();
+ test<__uint128_t, std::denorm_absent>();
+#endif
test<float, std::denorm_present>();
test<double, std::denorm_present>();
test<long double, std::denorm_present>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp
index 2982747e4f1..660ecf5036d 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp
@@ -42,6 +42,10 @@ int main()
test<unsigned long, false>();
test<long long, false>();
test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, false>();
+ test<__uint128_t, false>();
+#endif
test<float, false>();
test<double, false>();
test<long double, false>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp
index 506cd92f64a..f8ca2059d46 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp
@@ -42,6 +42,10 @@ int main()
test<unsigned long, false>();
test<long long, false>();
test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, false>();
+ test<__uint128_t, false>();
+#endif
test<float, true>();
test<double, true>();
test<long double, true>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp
index 3c4b5d27bcb..7592171695f 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp
@@ -42,6 +42,10 @@ int main()
test<unsigned long, false>();
test<long long, false>();
test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, false>();
+ test<__uint128_t, false>();
+#endif
test<float, true>();
test<double, true>();
test<long double, true>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp
index 2edc4cc0cd7..d68cd5d7887 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp
@@ -42,6 +42,10 @@ int main()
test<unsigned long, false>();
test<long long, false>();
test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, false>();
+ test<__uint128_t, false>();
+#endif
test<float, true>();
test<double, true>();
test<long double, true>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp
index d68aa479704..a2ccca333cc 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp
@@ -46,6 +46,10 @@ int main()
test<unsigned long>(0);
test<long long>(0);
test<unsigned long long>(0);
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t>(0);
+ test<__uint128_t>(0);
+#endif
test<float>(1./zero);
test<double>(1./zero);
test<long double>(1./zero);
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp
index eb965643af3..fa714d5d150 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp
@@ -42,6 +42,10 @@ int main()
test<unsigned long, true>();
test<long long, true>();
test<unsigned long long, true>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, true>();
+ test<__uint128_t, true>();
+#endif
test<float, true>();
test<double, true>();
test<long double, true>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp
index 6fa300bb911..b96a0e7fc5f 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp
@@ -42,6 +42,10 @@ int main()
test<unsigned long, true>();
test<long long, true>();
test<unsigned long long, true>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, true>();
+ test<__uint128_t, true>();
+#endif
test<float, false>();
test<double, false>();
test<long double, false>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp
index 1b73bdae091..4408714c1a1 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp
@@ -42,6 +42,10 @@ int main()
test<unsigned long, false>();
test<long long, false>();
test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, false>();
+ test<__uint128_t, false>();
+#endif
test<float, true>();
test<double, true>();
#if (defined(__ppc__) || defined(__ppc64__))
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp
index a6874653f3d..79bc5867ec6 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp
@@ -42,6 +42,10 @@ int main()
test<unsigned long, true>();
test<long long, true>();
test<unsigned long long, true>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, true>();
+ test<__uint128_t, true>();
+#endif
test<float, false>();
test<double, false>();
test<long double, false>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp
index 3c44996bf50..fadc0156377 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp
@@ -42,6 +42,10 @@ int main()
test<unsigned long, true>();
test<long long, true>();
test<unsigned long long, true>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, true>();
+ test<__uint128_t, true>();
+#endif
test<float, false>();
test<double, false>();
test<long double, false>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp
index 504107c26bd..28570fd2279 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp
@@ -42,6 +42,10 @@ int main()
test<unsigned long, false>();
test<long long, true>();
test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, true>();
+ test<__uint128_t, false>();
+#endif
test<float, true>();
test<double, true>();
test<long double, true>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp
index eb4b030bab0..21090aa9c4c 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp
@@ -50,6 +50,10 @@ int main()
test<unsigned long>(0);
test<long long>(LLONG_MIN);
test<unsigned long long>(0);
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t>(-__int128_t(__uint128_t(-1)/2) - 1);
+ test<__uint128_t>(0);
+#endif
test<float>(-FLT_MAX);
test<double>(-DBL_MAX);
test<long double>(-LDBL_MAX);
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp
index 29dbfb3437d..7517aaa192c 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp
@@ -50,6 +50,10 @@ int main()
test<unsigned long>(ULONG_MAX);
test<long long>(LLONG_MAX);
test<unsigned long long>(ULLONG_MAX);
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t>(__int128_t(__uint128_t(-1)/2));
+ test<__uint128_t>(__uint128_t(-1));
+#endif
test<float>(FLT_MAX);
test<double>(DBL_MAX);
test<long double>(LDBL_MAX);
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp
index 3a3c76e4e36..de771ebe3b4 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp
@@ -43,6 +43,10 @@ int main()
test<unsigned long, 0>();
test<long long, 0>();
test<unsigned long long, 0>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, 0>();
+ test<__uint128_t, 0>();
+#endif
test<float, 2+(FLT_MANT_DIG * 30103)/100000>();
test<double, 2+(DBL_MANT_DIG * 30103)/100000>();
test<long double, 2+(LDBL_MANT_DIG * 30103)/100000>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp
index dea50432976..6b61f7ba433 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp
@@ -43,6 +43,10 @@ int main()
test<unsigned long, 0>();
test<long long, 0>();
test<unsigned long long, 0>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, 0>();
+ test<__uint128_t, 0>();
+#endif
test<float, FLT_MAX_EXP>();
test<double, DBL_MAX_EXP>();
test<long double, LDBL_MAX_EXP>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp
index 807b773d9e1..927585e9468 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp
@@ -43,6 +43,10 @@ int main()
test<unsigned long, 0>();
test<long long, 0>();
test<unsigned long long, 0>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, 0>();
+ test<__uint128_t, 0>();
+#endif
test<float, FLT_MAX_10_EXP>();
test<double, DBL_MAX_10_EXP>();
test<long double, LDBL_MAX_10_EXP>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp
index 52108ee7b59..e72fbba1051 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp
@@ -50,6 +50,10 @@ int main()
test<unsigned long>(0);
test<long long>(LLONG_MIN);
test<unsigned long long>(0);
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t>(-__int128_t(__uint128_t(-1)/2) - 1);
+ test<__uint128_t>(0);
+#endif
test<float>(FLT_MIN);
test<double>(DBL_MIN);
test<long double>(LDBL_MIN);
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp
index 8cf530226b1..245e8441499 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp
@@ -43,6 +43,10 @@ int main()
test<unsigned long, 0>();
test<long long, 0>();
test<unsigned long long, 0>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, 0>();
+ test<__uint128_t, 0>();
+#endif
test<float, FLT_MIN_EXP>();
test<double, DBL_MIN_EXP>();
test<long double, LDBL_MIN_EXP>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp
index 7434e659f4d..b54d46fd52e 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp
@@ -43,6 +43,10 @@ int main()
test<unsigned long, 0>();
test<long long, 0>();
test<unsigned long long, 0>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, 0>();
+ test<__uint128_t, 0>();
+#endif
test<float, FLT_MIN_10_EXP>();
test<double, DBL_MIN_10_EXP>();
test<long double, LDBL_MIN_10_EXP>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp
index 95464e40003..97166f0c320 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp
@@ -63,6 +63,10 @@ int main()
test<unsigned long>();
test<long long>();
test<unsigned long long>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t>();
+ test<__uint128_t>();
+#endif
test<float>();
test<double>();
test<long double>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp
index 37ad48af1e1..98a2a53d192 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp
@@ -43,6 +43,10 @@ int main()
test<unsigned long, 2>();
test<long long, 2>();
test<unsigned long long, 2>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, 2>();
+ test<__uint128_t, 2>();
+#endif
test<float, FLT_RADIX>();
test<double, FLT_RADIX>();
test<long double, FLT_RADIX>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp
index f4051cf8f1e..5da5c9513a8 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp
@@ -44,6 +44,10 @@ int main()
test<unsigned long>(0);
test<long long>(0);
test<unsigned long long>(0);
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t>(0);
+ test<__uint128_t>(0);
+#endif
test<float>(0.5);
test<double>(0.5);
test<long double>(0.5);
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp
index 1b7e2e040bd..645f6f7df76 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp
@@ -42,6 +42,10 @@ int main()
test<unsigned long, std::round_toward_zero>();
test<long long, std::round_toward_zero>();
test<unsigned long long, std::round_toward_zero>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, std::round_toward_zero>();
+ test<__uint128_t, std::round_toward_zero>();
+#endif
test<float, std::round_to_nearest>();
test<double, std::round_to_nearest>();
test<long double, std::round_to_nearest>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp
index 1c72d4c735a..d9df999ddb7 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp
@@ -63,6 +63,10 @@ int main()
test<unsigned long>();
test<long long>();
test<unsigned long long>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t>();
+ test<__uint128_t>();
+#endif
test<float>();
test<double>();
test<long double>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp
index e9dd956c11a..9e2a8431a4e 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp
@@ -42,6 +42,10 @@ int main()
test<unsigned long, false>();
test<long long, false>();
test<unsigned long long, false>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, false>();
+ test<__uint128_t, false>();
+#endif
test<float, false>();
test<double, false>();
test<long double, false>();
diff --git a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp
index a409740cf95..03453634140 100644
--- a/libcxx/test/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp
+++ b/libcxx/test/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp
@@ -48,6 +48,10 @@ int main()
test<unsigned long, integral_types_trap>();
test<long long, integral_types_trap>();
test<unsigned long long, integral_types_trap>();
+#ifndef _LIBCPP_HAS_NO_INT128
+ test<__int128_t, integral_types_trap>();
+ test<__uint128_t, integral_types_trap>();
+#endif
test<float, false>();
test<double, false>();
test<long double, false>();
diff --git a/libcxx/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp b/libcxx/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp
index 2dd4d9ac97c..7de3b0dafb2 100644
--- a/libcxx/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp
+++ b/libcxx/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/libcxx/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp b/libcxx/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp
index 6700b6cbb95..a13485a8519 100644
--- a/libcxx/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp
+++ b/libcxx/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/libcxx/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp b/libcxx/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp
index 7d3b0f8beb1..f68ed3ef7e5 100644
--- a/libcxx/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp
+++ b/libcxx/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/libcxx/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp b/libcxx/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp
index f5da85c43ac..0bc94583ab0 100644
--- a/libcxx/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp
+++ b/libcxx/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/libcxx/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp b/libcxx/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp
index 9737e153166..7de65665793 100644
--- a/libcxx/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp
+++ b/libcxx/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/libcxx/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp b/libcxx/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp
index d3372ad1c08..2cd494546b8 100644
--- a/libcxx/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp
+++ b/libcxx/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
}
OpenPOWER on IntegriCloud