#include <limits>
-// libstdc++/40856
-#if defined _GLIBCXX_USE_INT128 && ! defined __STRICT_ANSI__
+// libstdc++/40856
+#if defined __SIZEOF_INT128__
static_assert(std::numeric_limits<__int128>::is_specialized == true, "");
static_assert(std::numeric_limits<unsigned __int128>::is_specialized == true,
"");
do_test<long long>();
do_test<unsigned long long>();
// GNU Extensions.
-#ifdef _GLIBCXX_USE_INT128
+#ifdef __SIZEOF_INT128__
do_test<__int128>();
do_test<unsigned __int128>();
#endif
do_test<unsigned long long>();
// GNU Extensions.
-#ifdef _GLIBCXX_USE_INT128
+#ifdef __SIZEOF_INT128__
do_test<__int128>();
do_test<unsigned __int128>();
#endif
VERIFY( std::numeric_limits<char32_t>::max_digits10 == 0 );
// GNU Extensions.
-#ifdef _GLIBCXX_USE_INT128
+#ifdef __SIZEOF_INT128__
VERIFY( std::numeric_limits<__int128>::max_digits10 == 0 );
VERIFY( std::numeric_limits<unsigned __int128>::max_digits10 == 0 );
#endif
static_assert(test_category<is_floating_point, __float128>(true), "");
#endif
-#ifdef _GLIBCXX_USE_INT128
+#ifdef __SIZEOF_INT128__
static_assert(test_category<is_floating_point, __int128>(false), "");
static_assert(test_category<is_floating_point,
unsigned __int128>(false), "");
#ifndef __STRICT_ANSI__
// GNU Extensions.
-#ifdef _GLIBCXX_USE_INT128
+#ifdef __SIZEOF_INT128__
static_assert(test_category<is_integral, __int128>(true), "");
static_assert(test_category<is_integral, unsigned __int128>(true), "");
#endif
#ifndef __STRICT_ANSI__
// GNU Extensions.
-#ifdef _GLIBCXX_USE_INT128
+#ifdef __SIZEOF_INT128__
static_assert(test_category<is_signed, __int128>(true), "");
static_assert(test_category<is_signed, unsigned __int128>(false), "");
#endif
#ifndef __STRICT_ANSI__
// GNU Extensions.
-#ifdef _GLIBCXX_USE_INT128
+#ifdef __SIZEOF_INT128__
static_assert(test_category<is_unsigned, unsigned __int128>(true), "");
static_assert(test_category<is_unsigned, __int128>(false), "");
#endif
#ifndef __STRICT_ANSI__
// GNU Extensions.
-#ifdef _GLIBCXX_USE_INT128
+#ifdef __SIZEOF_INT128__
typedef make_signed<unsigned __int128>::type test25_type;
static_assert( is_same<test25_type, __int128>::value,
"make_signed<unsigned __int128>" );
#ifndef __STRICT_ANSI__
// GNU Extensions.
-#ifdef _GLIBCXX_USE_INT128
+#ifdef __SIZEOF_INT128__
typedef make_signed<unsigned __int128>::type test25_type;
static_assert(is_same<test25_type, __int128>::value, "");
#ifndef __STRICT_ANSI__
// GNU Extensions.
-#ifdef _GLIBCXX_USE_INT128
+#ifdef __SIZEOF_INT128__
typedef make_unsigned<unsigned __int128>::type test25_type;
static_assert(is_same<test25_type, unsigned __int128>::value, "");
#ifndef __STRICT_ANSI__
// GNU Extensions.
-#ifdef _GLIBCXX_USE_INT128
+#ifdef __SIZEOF_INT128__
typedef make_unsigned<unsigned __int128>::type test25_type;
static_assert(is_same<test25_type, unsigned __int128>::value, "");
#ifndef __STRICT_ANSI__
// GNU Extensions.
-#ifdef _GLIBCXX_USE_INT128
+#ifdef __SIZEOF_INT128__
static_assert(test<unsigned __int128>::value, "");
static_assert(test<unsigned __int128>::value, "");
#endif
enum E : unsigned { e };
static_assert( test( e ).did_not_match() );
-#if !defined(__STRICT_ANSI__) && defined _GLIBCXX_USE_INT128
+#if !defined(__STRICT_ANSI__) && defined __SIZEOF_INT128__
static_assert( test( (unsigned __int128)0 ) );
static_assert( test( (__int128)0 ).did_not_match() );
#endif
static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_2)0 ) );
static_assert( test( (__GLIBCXX_TYPE_INT_N_2)0 ).did_not_match() );
#endif
+#if defined(__GLIBCXX_TYPE_INT_N_3)
+static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_3)0 ) );
+static_assert( test( (__GLIBCXX_TYPE_INT_N_3)0 ).did_not_match() );
+#endif
#include <cstddef>
static_assert( test( (std::byte)0 ).did_not_match() );
enum E : unsigned { e };
static_assert( test( e ).did_not_match() );
-#if !defined(__STRICT_ANSI__) && defined _GLIBCXX_USE_INT128
+#if !defined(__STRICT_ANSI__) && defined __SIZEOF_INT128__
static_assert( test( (unsigned __int128)0 ) );
static_assert( test( (__int128)0 ).did_not_match() );
#endif
static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_2)0 ) );
static_assert( test( (__GLIBCXX_TYPE_INT_N_2)0 ).did_not_match() );
#endif
+#if defined(__GLIBCXX_TYPE_INT_N_3)
+static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_3)0 ) );
+static_assert( test( (__GLIBCXX_TYPE_INT_N_3)0 ).did_not_match() );
+#endif
#include <cstddef>
static_assert( test( (std::byte)0 ).did_not_match() );
enum E : unsigned { e };
static_assert( test( e ).did_not_match() );
-#if !defined(__STRICT_ANSI__) && defined _GLIBCXX_USE_INT128
+#if !defined(__STRICT_ANSI__) && defined __SIZEOF_INT128__
static_assert( test( (unsigned __int128)0 ) );
static_assert( test( (__int128)0 ).did_not_match() );
#endif
static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_2)0 ) );
static_assert( test( (__GLIBCXX_TYPE_INT_N_2)0 ).did_not_match() );
#endif
+#if defined(__GLIBCXX_TYPE_INT_N_3)
+static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_3)0 ) );
+static_assert( test( (__GLIBCXX_TYPE_INT_N_3)0 ).did_not_match() );
+#endif
#include <cstddef>
static_assert( test( (std::byte)0 ).did_not_match() );
enum E : unsigned { e };
static_assert( test( e ).did_not_match() );
-#if !defined(__STRICT_ANSI__) && defined _GLIBCXX_USE_INT128
+#if !defined(__STRICT_ANSI__) && defined __SIZEOF_INT128__
static_assert( test( (unsigned __int128)0 ) );
static_assert( test( (__int128)0 ).did_not_match() );
#endif
static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_2)0 ) );
static_assert( test( (__GLIBCXX_TYPE_INT_N_2)0 ).did_not_match() );
#endif
+#if defined(__GLIBCXX_TYPE_INT_N_3)
+static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_3)0 ) );
+static_assert( test( (__GLIBCXX_TYPE_INT_N_3)0 ).did_not_match() );
+#endif
#include <cstddef>
static_assert( test( (std::byte)0 ).did_not_match() );
enum E : unsigned { e };
static_assert( test( e ).did_not_match() );
-#if !defined(__STRICT_ANSI__) && defined _GLIBCXX_USE_INT128
+#if !defined(__STRICT_ANSI__) && defined __SIZEOF_INT128__
static_assert( test( (unsigned __int128)0 ) );
static_assert( test( (__int128)0 ).did_not_match() );
#endif
static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_2)0 ) );
static_assert( test( (__GLIBCXX_TYPE_INT_N_2)0 ).did_not_match() );
#endif
+#if defined(__GLIBCXX_TYPE_INT_N_3)
+static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_3)0 ) );
+static_assert( test( (__GLIBCXX_TYPE_INT_N_3)0 ).did_not_match() );
+#endif
#include <cstddef>
static_assert( test( (std::byte)0 ).did_not_match() );
enum E : unsigned { e };
static_assert( test( e ).did_not_match() );
-#if !defined(__STRICT_ANSI__) && defined _GLIBCXX_USE_INT128
+#if !defined(__STRICT_ANSI__) && defined __SIZEOF_INT128__
static_assert( test( (unsigned __int128)0 ) );
static_assert( test( (__int128)0 ).did_not_match() );
#endif
enum E : unsigned { e };
static_assert( test( e ).did_not_match() );
-#if !defined(__STRICT_ANSI__) && defined _GLIBCXX_USE_INT128
+#if !defined(__STRICT_ANSI__) && defined __SIZEOF_INT128__
static_assert( test( (unsigned __int128)0 ) );
static_assert( test( (__int128)0 ).did_not_match() );
#endif
static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_2)0 ) );
static_assert( test( (__GLIBCXX_TYPE_INT_N_2)0 ).did_not_match() );
#endif
+#if defined(__GLIBCXX_TYPE_INT_N_3)
+static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_3)0 ) );
+static_assert( test( (__GLIBCXX_TYPE_INT_N_3)0 ).did_not_match() );
+#endif
#include <cstddef>
static_assert( test( (std::byte)0 ).did_not_match() );
enum E : unsigned { e };
static_assert( test( e ).did_not_match() );
-#if !defined(__STRICT_ANSI__) && defined _GLIBCXX_USE_INT128
+#if !defined(__STRICT_ANSI__) && defined __SIZEOF_INT128__
static_assert( test( (unsigned __int128)0 ) );
static_assert( test( (__int128)0 ).did_not_match() );
#endif
static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_2)0 ) );
static_assert( test( (__GLIBCXX_TYPE_INT_N_2)0 ).did_not_match() );
#endif
+#if defined(__GLIBCXX_TYPE_INT_N_3)
+static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_3)0 ) );
+static_assert( test( (__GLIBCXX_TYPE_INT_N_3)0 ).did_not_match() );
+#endif
#include <cstddef>
static_assert( test( (std::byte)0 ).did_not_match() );
enum E : unsigned { e };
static_assert( test( e ).did_not_match() );
-#if !defined(__STRICT_ANSI__) && defined _GLIBCXX_USE_INT128
+#if !defined(__STRICT_ANSI__) && defined __SIZEOF_INT128__
static_assert( test( (unsigned __int128)0 ) );
static_assert( test( (__int128)0 ).did_not_match() );
#endif
static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_2)0 ) );
static_assert( test( (__GLIBCXX_TYPE_INT_N_2)0 ).did_not_match() );
#endif
+#if defined(__GLIBCXX_TYPE_INT_N_3)
+static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_3)0 ) );
+static_assert( test( (__GLIBCXX_TYPE_INT_N_3)0 ).did_not_match() );
+#endif
#include <cstddef>
static_assert( test( (std::byte)0 ).did_not_match() );
enum E : unsigned { e };
static_assert( test( e ).did_not_match() );
-#if !defined(__STRICT_ANSI__) && defined _GLIBCXX_USE_INT128
+#if !defined(__STRICT_ANSI__) && defined __SIZEOF_INT128__
static_assert( test( (unsigned __int128)0 ) );
static_assert( test( (__int128)0 ).did_not_match() );
#endif
static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_2)0 ) );
static_assert( test( (__GLIBCXX_TYPE_INT_N_2)0 ).did_not_match() );
#endif
+#if defined(__GLIBCXX_TYPE_INT_N_3)
+static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_3)0 ) );
+static_assert( test( (__GLIBCXX_TYPE_INT_N_3)0 ).did_not_match() );
+#endif
#include <cstddef>
static_assert( test( (std::byte)0 ).did_not_match() );
enum E : unsigned { e };
static_assert( test( e ).did_not_match() );
-#if !defined(__STRICT_ANSI__) && defined _GLIBCXX_USE_INT128
+#if !defined(__STRICT_ANSI__) && defined __SIZEOF_INT128__
static_assert( test( (unsigned __int128)0 ) );
static_assert( test( (__int128)0 ).did_not_match() );
#endif
static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_2)0 ) );
static_assert( test( (__GLIBCXX_TYPE_INT_N_2)0 ).did_not_match() );
#endif
+#if defined(__GLIBCXX_TYPE_INT_N_3)
+static_assert( test( (unsigned __GLIBCXX_TYPE_INT_N_3)0 ) );
+static_assert( test( (__GLIBCXX_TYPE_INT_N_3)0 ).did_not_match() );
+#endif
#include <cstddef>
static_assert( test( (std::byte)0 ).did_not_match() );
#else
typedef node<null_type> char8_typelist;
#endif
-# if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_INT128)
+# if !defined(__STRICT_ANSI__) && defined(__SIZEOF_INT128__)
__extension__ typedef __int128 a17;
__extension__ typedef unsigned __int128 a18;
typedef node<_GLIBCXX_TYPELIST_CHAIN2(a17, a18)> int128_typelist;