[Bug fortran/64022] [F2003][IEEE] ieee_support_flag does not handle kind=10 and kind=16 REAL variables
fxcoudert at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Nov 28 13:10:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64022
--- Comment #2 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> ---
Additional (related) issue:
The following program
module precision_module
implicit none
integer, parameter :: &
sp = selected_real_kind( 6, 37)
integer, parameter :: &
dp = selected_real_kind(15, 307)
integer, parameter :: &
qp = selected_real_kind(30, 291)
end module precision_module
program ch3406
use precision_module
use ieee_arithmetic
implicit none
real (sp) :: x0 = 0.0
real (dp) :: y0 = 0.0_dp
real (qp) :: z0 = 0.0_qp
real (sp) :: x1 = 1.0
real (dp) :: y1 = 1.0_dp
real (qp) :: z1 = 1.0_qp
real (sp) :: xnan = 1.0
real (dp) :: ynan = 1.0_dp
real (qp) :: znan = 1.0_qp
real (sp) :: xinfinite = 1.0
real (dp) :: yinfinite = 1.0_dp
real (qp) :: zinfinite = 1.0_qp
xinfinite=x1/x0
yinfinite=y1/y0
zinfinite=z1/z0
xnan=x0/x0
ynan=y0/y0
znan=z0/z0
if ( ieee_support_datatype(x1) ) then
print *,' 32 bit IEEE support'
print *,' inf ' , ieee_support_inf(x1)
print *,' nan ' , ieee_support_nan(x1)
print *,' 1/0 finite',ieee_is_finite(xinfinite)
print *,' 0/0 nan',ieee_is_nan(xnan)
endif
if ( ieee_support_datatype(y1) ) then
print *,' 64 bit IEEE support'
print *,' inf ' , ieee_support_inf(y1)
print *,' nan ' , ieee_support_nan(y1)
print *,' 1/0 finite',ieee_is_finite(yinfinite)
print *,' 0/0 nan',ieee_is_nan(ynan)
endif
if ( ieee_support_datatype(z1) ) then
print *,' 128 bit IEEE support'
print *,' inf ' , ieee_support_inf(z1)
print *,' nan ' , ieee_support_nan(z1)
print *,' 1/0 finite',ieee_is_finite(zinfinite)
print *,' 0/0 nan',ieee_is_nan(znan)
endif
end program ch3406
generates the following compilation message
d:\document\fortran\third_edition\examples>gfortran ch3406.f90
ch3406.f90:50.26:
print *,' 1/0 finite',ieee_is_finite(zinfinite)
1
Error: There is no specific function for the generic 'ieee_is_finite' at (1)
ch3406.f90:51.23:
print *,' 0/0 nan',ieee_is_nan(znan)
1
Error: There is no specific function for the generic 'ieee_is_nan' at (1)
More information about the Gcc-bugs
mailing list