/* PR c++/109884 */ /* PowerPC doesn't define these as builtins, but macros expanding to *f128 builtins. */ /* { dg-do compile { target { __float128 && { { c || c++11 } && { ! powerpc*-*-* } } } } } */ /* { dg-add-options __float128 } */ #ifdef __cplusplus template struct is_same { static const bool value = false; }; template struct is_same { static const bool value = true; }; #define HAS_TYPE(E, U) static_assert (is_same ::value, "") #else #define HAS_TYPE(E, U) _Static_assert (_Generic (E, default : 0, U : 1), "") #endif void foo () { __float128 a = 0; HAS_TYPE (__builtin_infq (), __float128); HAS_TYPE (__builtin_huge_valq (), __float128); HAS_TYPE (__builtin_nanq (""), __float128); HAS_TYPE (__builtin_nansq (""), __float128); HAS_TYPE (__builtin_fabsq (a), __float128); HAS_TYPE (__builtin_copysignq (a, a), __float128); }