diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2018-12-29 18:10:57 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2018-12-29 18:10:57 +0000 |
commit | 74ee24e23e96dde8a338a140c3cadd0bb7715e61 (patch) | |
tree | c4db89870b3f2233336a7b41c8e8316631d340f2 /gcc | |
parent | 0b774babfb8e8cee784cba061d245868e2e2d3aa (diff) | |
download | gcc-74ee24e23e96dde8a338a140c3cadd0bb7715e61.zip gcc-74ee24e23e96dde8a338a140c3cadd0bb7715e61.tar.gz gcc-74ee24e23e96dde8a338a140c3cadd0bb7715e61.tar.bz2 |
re PR fortran/88342 (Possible bug with IEEE_POSITIVE_INF and -ffpe-trap=overflow)
2018-12-29 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/88342
* ieee/ieee_arithmetic.F90: Prevent exceptions in IEEE_VALUE if
-ffpe-trap=invalid or -ffpe-trap=overflow is used.
2018-12-29 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/88342
* gfortran.dg/ieee/ieee_10.f90: New test.
From-SVN: r267465
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/ieee/ieee_10.f90 | 32 |
2 files changed, 37 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4960665..109441d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-12-29 Steven G. Kargl <kargl@gcc.gnu.org> + + PR fortran/88342 + * gfortran.dg/ieee/ieee_10.f90: New test. + 2018-12-29 Dominique d'Humieres <dominiq@gcc.gnu.org> PR tree-optimization/68356 diff --git a/gcc/testsuite/gfortran.dg/ieee/ieee_10.f90 b/gcc/testsuite/gfortran.dg/ieee/ieee_10.f90 new file mode 100644 index 0000000..9eb4620 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/ieee/ieee_10.f90 @@ -0,0 +1,32 @@ +! { dg-do run } +! { dg-options "-ffpe-trap=overflow,invalid" } +program foo + + use ieee_arithmetic + + implicit none + + real x + real(8) y + + x = ieee_value(x, ieee_signaling_nan) + if (.not. ieee_is_nan(x)) stop 1 + x = ieee_value(x, ieee_quiet_nan) + if (.not. ieee_is_nan(x)) stop 2 + + x = ieee_value(x, ieee_positive_inf) + if (ieee_is_finite(x)) stop 3 + x = ieee_value(x, ieee_negative_inf) + if (ieee_is_finite(x)) stop 4 + + y = ieee_value(y, ieee_signaling_nan) + if (.not. ieee_is_nan(y)) stop 5 + y = ieee_value(y, ieee_quiet_nan) + if (.not. ieee_is_nan(y)) stop 6 + + y = ieee_value(y, ieee_positive_inf) + if (ieee_is_finite(y)) stop 7 + y = ieee_value(y, ieee_negative_inf) + if (ieee_is_finite(y)) stop 8 + +end program foo |