diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/dfp/fe-convert-2.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/dfp/fe-convert-2.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/dfp/fe-convert-2.c b/gcc/testsuite/gcc.dg/dfp/fe-convert-2.c new file mode 100644 index 000000000..4abce24c6 --- /dev/null +++ b/gcc/testsuite/gcc.dg/dfp/fe-convert-2.c @@ -0,0 +1,31 @@ +/* Check that appropriate exceptions are raised for BFP to DFP conversions. + The test only uses double and _Decimal32; tests for conversions to + _Decimal64 would need 128-bit long double. */ + +#include "fe-check.h" + +volatile _Decimal32 d32; +volatile double d; + +CONVERT (100, d, d32, 1.0e96, FE_INEXACT) +CONVERT (101, d, d32, 1.0e97, FE_OVERFLOW|FE_INEXACT) +CONVERT (102, d, d32, -1.0e96, FE_INEXACT) +CONVERT (103, d, d32, -1.0e97, FE_OVERFLOW|FE_INEXACT) + +/* FIXME: These only result in fp exceptions when libbid is used. + libdecnumber doesn't work correctly. */ +CONVERT (104, d, d32, 1.0e-96, FE_UNDERFLOW|FE_INEXACT) +CONVERT (105, d, d32, 0.00048828125, FE_INEXACT) /* exact power of 2 */ + +int +main () +{ + convert_100 (); + convert_101 (); + convert_102 (); + convert_103 (); + convert_104 (); + convert_105 (); + + FINISH +} |