The test program should consistently return
either 2.1 or NaN:
$ cat foo.f90
program main
real :: nan
nan = 0.0
nan = nan / nan
print *,max(2.1, nan)
print *,max(nan, 2.1)
end program main
$ gfortran foo.f90
$ ./a.out
2.100000
NaN
A lot of compilers seem to get this wrong, as well.
Marking it as an enhancement.
--
Summary: max / min and NaN
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tkoenig at gcc dot gnu dot org
OtherBugsDependingO 30694
nThis:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32048