[libcxx] r204849 - [libc++] Teach is_integral, is_[un]signed and make_[un]signed about __[u]int128_t

Stephan Tolksdorf st at quanttec.com
Wed Mar 26 12:45:53 PDT 2014


Author: stephant
Date: Wed Mar 26 14:45:52 2014
New Revision: 204849

URL: http://llvm.org/viewvc/llvm-project?rev=204849&view=rev
Log:
[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

Modified:
    libcxx/trunk/include/__config
    libcxx/trunk/include/type_traits
    libcxx/trunk/test/language.support/support.limits/limits/is_specialized.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp
    libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp
    libcxx/trunk/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp
    libcxx/trunk/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp
    libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp
    libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp
    libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp
    libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp

Modified: libcxx/trunk/include/__config
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/__config?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/include/__config (original)
+++ libcxx/trunk/include/__config Wed Mar 26 14:45:52 2014
@@ -485,6 +485,10 @@ typedef unsigned short char16_t;
 typedef unsigned int   char32_t;
 #endif  // _LIBCPP_HAS_NO_UNICODE_CHARS
 
+#ifndef __SIZEOF_INT128__
+#define _LIBCPP_HAS_NO_INT128
+#endif
+
 #ifdef _LIBCPP_HAS_NO_STATIC_ASSERT
 
 template <bool> struct __static_assert_test;

Modified: libcxx/trunk/include/type_traits
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/type_traits?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/include/type_traits (original)
+++ libcxx/trunk/include/type_traits Wed Mar 26 14:45:52 2014
@@ -325,6 +325,10 @@ template <>          struct __libcpp_is_
 template <>          struct __libcpp_is_integral<unsigned long>      : public true_type {};
 template <>          struct __libcpp_is_integral<long long>          : public true_type {};
 template <>          struct __libcpp_is_integral<unsigned long long> : public true_type {};
+#ifndef _LIBCPP_HAS_NO_INT128
+template <>          struct __libcpp_is_integral<__int128_t>         : public true_type {};
+template <>          struct __libcpp_is_integral<__uint128_t>        : public true_type {};
+#endif
 
 template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_integral
     : public __libcpp_is_integral<typename remove_cv<_Tp>::type> {};
@@ -1247,7 +1251,13 @@ typedef
     __type_list<signed int,
     __type_list<signed long,
     __type_list<signed long long,
+#ifndef _LIBCPP_HAS_NO_INT128
+    __type_list<__int128_t,
+#endif
     __nat
+#ifndef _LIBCPP_HAS_NO_INT128
+    >
+#endif
     > > > > > __signed_types;
 
 typedef
@@ -1256,7 +1266,13 @@ typedef
     __type_list<unsigned int,
     __type_list<unsigned long,
     __type_list<unsigned long long,
+#ifndef _LIBCPP_HAS_NO_INT128
+    __type_list<__uint128_t,
+#endif
     __nat
+#ifndef _LIBCPP_HAS_NO_INT128
+    >
+#endif
     > > > > > __unsigned_types;
 
 template <class _TypeList, size_t _Size, bool = _Size <= sizeof(typename _TypeList::_Head)> struct __find_first;
@@ -1340,6 +1356,10 @@ template <> struct __make_signed<  signe
 template <> struct __make_signed<unsigned long,      true> {typedef long      type;};
 template <> struct __make_signed<  signed long long, true> {typedef long long type;};
 template <> struct __make_signed<unsigned long long, true> {typedef long long type;};
+#ifndef _LIBCPP_HAS_NO_INT128
+template <> struct __make_signed<__int128_t,         true> {typedef __int128_t type;};
+template <> struct __make_signed<__uint128_t,        true> {typedef __int128_t type;};
+#endif
 
 template <class _Tp>
 struct _LIBCPP_TYPE_VIS_ONLY make_signed
@@ -1369,6 +1389,10 @@ template <> struct __make_unsigned<  sig
 template <> struct __make_unsigned<unsigned long,      true> {typedef unsigned long      type;};
 template <> struct __make_unsigned<  signed long long, true> {typedef unsigned long long type;};
 template <> struct __make_unsigned<unsigned long long, true> {typedef unsigned long long type;};
+#ifndef _LIBCPP_HAS_NO_INT128
+template <> struct __make_unsigned<__int128_t,         true> {typedef __uint128_t        type;};
+template <> struct __make_unsigned<__uint128_t,        true> {typedef __uint128_t        type;};
+#endif
 
 template <class _Tp>
 struct _LIBCPP_TYPE_VIS_ONLY make_unsigned

Modified: libcxx/trunk/test/language.support/support.limits/limits/is_specialized.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/is_specialized.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/is_specialized.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/is_specialized.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/const_data_members.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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)

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/denorm_min.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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__);

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/digits.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/digits10.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/epsilon.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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);

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_denorm.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_denorm_loss.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_infinity.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_quiet_NaN.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/has_signaling_NaN.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/infinity.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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);

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_bounded.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_exact.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_iec559.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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__))

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_integer.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_modulo.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/is_signed.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/lowest.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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);

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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);

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_digits10.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_exponent.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/max_exponent10.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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);

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min_exponent.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/min_exponent10.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/quiet_NaN.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/radix.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/round_error.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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);

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/round_style.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/signaling_NaN.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/tinyness_before.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp (original)
+++ libcxx/trunk/test/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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>();

Modified: libcxx/trunk/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp (original)
+++ libcxx/trunk/test/utilities/meta/meta.trans/meta.trans.sign/make_signed.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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
 }

Modified: libcxx/trunk/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp (original)
+++ libcxx/trunk/test/utilities/meta/meta.trans/meta.trans.sign/make_unsigned.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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
 }

Modified: libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp (original)
+++ libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.cat/integral.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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
 }

Modified: libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp (original)
+++ libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.comp/integral.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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
 }

Modified: libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp (original)
+++ libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_signed.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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
 }

Modified: libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp?rev=204849&r1=204848&r2=204849&view=diff
==============================================================================
--- libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp (original)
+++ libcxx/trunk/test/utilities/meta/meta.unary/meta.unary.prop/is_unsigned.pass.cpp Wed Mar 26 14:45:52 2014
@@ -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
 }





More information about the cfe-commits mailing list