This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/33656] New: Internal compiler error
- From: "diepen at astron dot nl" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 4 Oct 2007 13:34:14 -0000
- Subject: [Bug fortran/33656] New: Internal compiler error
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
The following code gives an internal compiler error when compiled with -O. It
compiles fine if no -O is given.
(conrad)macdiepen.measures> gfortran -o problem.o -c -w -O problem.f
fortran/sofa/problem.f: In function 'iau_jd2cal':
fortran/sofa/problem.f:41: internal compiler error: tree check: expected
call_expr, have nop_expr in expand_call, at calls.c:1910
It compiled fine with gfortran 4.3.0 20061230, while it fails as described
above for the latest version (4.3.0 20070811).
Cheers,
Ger
SUBROUTINE iau_JD2CAL ( DJ1, DJ2, IY, IM, ID, FD, J )
IMPLICIT NONE
DOUBLE PRECISION DJ1, DJ2
INTEGER IY, IM, ID
DOUBLE PRECISION FD
INTEGER J
* Minimum and maximum allowed JD
DOUBLE PRECISION DJMIN, DJMAX
PARAMETER ( DJMIN = -68569.5D0, DJMAX = 1D9 )
INTEGER JD, L, N, I
DOUBLE PRECISION DJ, D1, D2, F1, F2, F, D
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* Check if date is acceptable.
DJ = DJ1 + DJ2
IF ( DJ.LT.DJMIN .OR. DJ.GT.DJMAX ) THEN
J = -1
ELSE
J = 0
* Copy the date, big then small, and re-align to midnight.
IF ( DJ1 .GE. DJ2 ) THEN
D1 = DJ1
D2 = DJ2
ELSE
D1 = DJ2
D2 = DJ1
END IF
D2 = D2 - 0.5D0
* Separate day and fraction.
F1 = MOD(D1,1D0)
F2 = MOD(D2,1D0)
F = MOD(F1+F2,1D0)
IF ( F .LT. 0D0 ) F = F+1D0
D = ANINT(D1-F1) + ANINT(D2-F2) + ANINT(F1+F2-F)
JD = NINT(D) + 1
* Express day in Gregorian calendar.
L = JD + 68569
N = ( 4*L ) / 146097
L = L - ( 146097*N + 3 ) / 4
I = ( 4000 * (L+1) ) / 1461001
L = L - ( 1461*I ) / 4 + 31
J = ( 80*L ) / 2447
ID = L - ( 2447*J ) / 80
L = J / 11
IM = J + 2 - 12*L
IY = 100 * ( N-49 ) + I + L
FD = F
J = 0
END IF
END
--
Summary: Internal compiler error
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: diepen at astron dot nl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33656