aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2018-12-29 18:10:57 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2018-12-29 18:10:57 +0000
commit74ee24e23e96dde8a338a140c3cadd0bb7715e61 (patch)
treec4db89870b3f2233336a7b41c8e8316631d340f2 /gcc
parent0b774babfb8e8cee784cba061d245868e2e2d3aa (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/ieee/ieee_10.f9032
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