This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/82207] ieee_class identifies signaling NaNs as quiet NaNs
- From: "kargl at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 13 Sep 2017 23:20:11 +0000
- Subject: [Bug fortran/82207] ieee_class identifies signaling NaNs as quiet NaNs
- Auto-submitted: auto-generated
- References: <bug-82207-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82207
--- Comment #2 from kargl at gcc dot gnu.org ---
See gcc/gcc/libgfortran/ieee/ieee_helper.c lines 75-79:
if (res == IEEE_QUIET_NAN) \
{ \
/* TODO: Handle signaling NaNs */ \
return res; \
} \
See also gcc/gcc/libgfortran/ieee/ieee_arithmetic.F90
lines 860-871
elemental real(kind=4) function IEEE_VALUE_4(X, CLASS) result(res)
real(kind=4), intent(in) :: X
type(IEEE_CLASS_TYPE), intent(in) :: CLASS
select case (CLASS%hidden)
case (1) ! IEEE_SIGNALING_NAN
res = -1
res = sqrt(res)
case (2) ! IEEE_QUIET_NAN
res = -1
res = sqrt(res)
It seems gfortran supports NaN, but does not make a distinction
between a quiet and a signal NaN.