http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51535
Bug #: 51535
Summary: Optimization problem with -finit-real=snan at -O1
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: [email protected]
ReportedBy: [email protected]
Hi,
with gfortran 4.7.0 svn rev. 181390 on i686-pc-linux-gnu
I have the following problem:
module mo_usstd
implicit none
contains
function p_h_usstd (h) result (p)
real, intent(in) :: h
real :: p
real :: sigma, delta
print *, "In p_h_usstd!"
call atmosphere (h, sigma, delta)
p = sigma/delta
end function p_h_usstd
subroutine atmosphere (h, sigma, delta)
real,intent(in) :: h
real,intent(out):: sigma
real,intent(out):: delta
delta = h
sigma = h
end subroutine atmosphere
end module mo_usstd
program gfcbug116
use mo_usstd
implicit none
real :: p, h
h = 5500
p = p_h_usstd (h)
print *, p
end program gfcbug116
Compilation:
% /opt/gcc/4.7/bin/gfortran -O1 -march=native -g -fbacktrace
-ffpe-trap=zero,overflow,invalid -finit-real=snan -static-libgfortran
gfcbug116.f90
Running the program, I get an SIGFPE with a backtrace:
Backtrace for this error:
#0 0x8058B3F in _gfortrani_show_backtrace at backtrace.c:261
#1 0x80495AF in _gfortrani_backtrace_handler at compile_options.c:93
#2 0xFFFFE3FF
#3 0x80493C4 in __mo_usstd_MOD_p_h_usstd at gfcbug116.f90:7
#4 0x8049479 in gfcbug116 at gfcbug116.f90:27
Does not make any sense to me.
No problem with -O0, -O2, -O3, -Ofast,-Os
No problem with -finit-real=nan
No problem with 4.6.0
Any ideas what might be going wrong?