diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/module_nan.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/module_nan.f90 | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/module_nan.f90 b/gcc/testsuite/gfortran.dg/module_nan.f90 new file mode 100644 index 000000000..202781f07 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/module_nan.f90 @@ -0,0 +1,30 @@ +! { dg-do run } +! { dg-options "-fno-range-check" } +! { dg-add-options ieee } +! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } +! +! PR fortran/34318 +! +! Infinity and NaN were not properly written to the .mod file. +! +module nonordinal + implicit none + real, parameter :: inf = 1./0., nan = 0./0., minf = -1./0.0 +end module nonordinal + +program a + use nonordinal + implicit none + character(len=20) :: str + if (log(abs(inf)) < huge(inf)) call abort() + if (log(abs(minf)) < huge(inf)) call abort() + if (.not. isnan(nan)) call abort() + write(str,"(sp,f10.2)") inf + if (adjustl(str) /= "+Infinity") call abort() + write(str,*) minf + if (adjustl(str) /= "-Infinity") call abort() + write(str,*) nan + if (adjustl(str) /= "NaN") call abort() +end program a + +! { dg-final { cleanup-modules "nonordinal" } } |