diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/pr39228.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/pr39228.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr39228.c b/gcc/testsuite/gcc.c-torture/execute/pr39228.c new file mode 100644 index 000000000..06d8efd1a --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr39228.c @@ -0,0 +1,36 @@ +extern void abort (void); + +static int __attribute__((always_inline)) testf (float b) +{ + float c = 1.01f * b; + + return __builtin_isinff (c); +} + +static int __attribute__((always_inline)) test (double b) +{ + double c = 1.01 * b; + + return __builtin_isinf (c); +} + +static int __attribute__((always_inline)) testl (long double b) +{ + long double c = 1.01L * b; + + return __builtin_isinfl (c); +} + +int main() +{ + if (testf (__FLT_MAX__) < 1) + abort (); + + if (test (__DBL_MAX__) < 1) + abort (); + + if (testl (__LDBL_MAX__) < 1) + abort (); + + return 0; +} |