consider the following program
program short_test_inf
complex*16 nan_inf, normal_number, cmplx_test
real*8 tth, pi, zero
data tth /6.66666666666666667D-01/
data pi /3.1415926535897932385D0/
data zero /0.0D0/
normal_number = dcmplx(tth, zero)
nan_inf = dcmplx(pi/zero, zero/zero)
cmplx_test = nan_inf * normal_number
print *,'nan_inf ',nan_inf
print *,'cmplx_test (inf+iNan)*(2/3+i0) ',cmplx_test
cmplx_test = nan_inf * tth
print *,'tth ',tth
print *,'cmplx_test (inf+iNan)*(2/3)',cmplx_test
end program
optimized version (gfortran -O test.F)
returns
nan_inf ( +Infinity, NaN)
cmplx_test (inf+iNan)*(2/3+i0) ( +Infinity,
NaN)
tth 0.66666666666666663
cmplx_test (inf+iNan)*(2/3) ( +Infinity,
NaN)
non optimized version (gfortran test.F)
returns
nan_inf ( +Infinity, NaN)
cmplx_test (inf+iNan)*(2/3+i0) ( NaN,
NaN)
tth 0.66666666666666663
cmplx_test (inf+iNan)*(2/3) ( NaN,
NaN)
Note: gfortran4.2.3 returns for both (optimized/non optimized) NaN, NaN
intel 10 fortran has exactly the same behaviour as gfortran 4.3.0:
optimized Inf,NaN
non optimized Inf,Nan
thanks
--
Summary: difference between result in optimized and normal
executable
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dmarkman at mac dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35877