aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2019-01-30 21:44:35 +0100
committerUros Bizjak <uros@gcc.gnu.org>2019-01-30 21:44:35 +0100
commit05dfdd6c5a62a4b2cfaab6be554e859987c2aa79 (patch)
tree88f641097402f9fecf222205629228d609bea182 /libgfortran
parent9f4e09a89a4879d1a39f6055b61afb8f335e7604 (diff)
re PR fortran/88678 (Many gfortran.dg/ieee/ieee_X.f90 test cases fail starting with r267465)
PR fortran/88678 * config/fpu-glibc.h (support_fpu_trap): Do not try to enable exceptions to determine if exception is supported. From-SVN: r268402
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog6
-rw-r--r--libgfortran/config/fpu-glibc.h36
2 files changed, 7 insertions, 35 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 87fc2d6a38c..3cf16a57c7e 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,6 +1,12 @@
2019-01-30 Uroš Bizjak <ubizjak@gmail.com>
PR fortran/88678
+ * config/fpu-glibc.h (support_fpu_trap): Do not try to enable
+ exceptions to determine if exception is supported.
+
+2019-01-30 Uroš Bizjak <ubizjak@gmail.com>
+
+ PR fortran/88678
* config/fpu-glibc.h (set_fpu_trap_exceptions): Clear stalled
exception flags before changing trap mode. Optimize to call
feenableexcept and fedisableexcept only once.
diff --git a/libgfortran/config/fpu-glibc.h b/libgfortran/config/fpu-glibc.h
index 9abdfd95ee3..df2588e038d 100644
--- a/libgfortran/config/fpu-glibc.h
+++ b/libgfortran/config/fpu-glibc.h
@@ -129,41 +129,7 @@ get_fpu_trap_exceptions (void)
int
support_fpu_trap (int flag)
{
- int exceptions = 0;
- int old;
-
- if (!support_fpu_flag (flag))
- return 0;
-
-#ifdef FE_INVALID
- if (flag & GFC_FPE_INVALID) exceptions |= FE_INVALID;
-#endif
-
-#ifdef FE_DIVBYZERO
- if (flag & GFC_FPE_ZERO) exceptions |= FE_DIVBYZERO;
-#endif
-
-#ifdef FE_OVERFLOW
- if (flag & GFC_FPE_OVERFLOW) exceptions |= FE_OVERFLOW;
-#endif
-
-#ifdef FE_UNDERFLOW
- if (flag & GFC_FPE_UNDERFLOW) exceptions |= FE_UNDERFLOW;
-#endif
-
-#ifdef FE_DENORMAL
- if (flag & GFC_FPE_DENORMAL) exceptions |= FE_DENORMAL;
-#endif
-
-#ifdef FE_INEXACT
- if (flag & GFC_FPE_INEXACT) exceptions |= FE_INEXACT;
-#endif
-
- old = feenableexcept (exceptions);
- if (old == -1)
- return 0;
- fedisableexcept (exceptions & ~old);
- return 1;
+ return support_fpu_flag (flag);
}