// PR c++/108099 // { dg-do compile { target { c++11 && int128 } } } // { dg-options "" } using u128 = unsigned __int128_t; using s128 = signed __int128_t; template struct integral_constant { static constexpr T value = v; }; typedef integral_constant false_type; typedef integral_constant true_type; template struct is_same : false_type {}; template struct is_same : true_type {}; static_assert (is_same <__int128, s128>::value, ""); static_assert (is_same ::value, ""); static_assert (is_same <__int128_t, s128>::value, ""); static_assert (is_same ::value, ""); static_assert (is_same <__uint128_t, u128>::value, ""); static_assert (sizeof (s128) == sizeof (__int128), ""); static_assert (sizeof (u128) == sizeof (unsigned __int128), ""); static_assert (s128(-1) < 0, ""); static_assert (u128(-1) > 0, "");