This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
g77 -ieee crash in 1.0.3a
- To: egcs-bugs at cygnus dot com
- Subject: g77 -ieee crash in 1.0.3a
- From: Greg Lindahl <lindahl at cs dot virginia dot edu>
- Date: Wed, 29 Jul 1998 10:42:18 -0400
[lindahl@spare-parts ocean]$ g77 --version
egcs-2.90.29 980515 (egcs-1.0.3 release)
the machine is a PC164LX alpha. I compiled egcs myself using
straight ./configure.
[lindahl@spare-parts ocean]$ g77 -c -O3 -static -I/usr/local/mpich/include -mieee test.f
test.f: In subroutine `minmax':
test.f:47: internal error--unrecognizable insn:
(insn 189 188 190 (set (reg:DF 142)
(le:DF (float_extend:DF (reg:SF 140))
(float_extend:DF (reg:SF 141)))) -1 (nil)
(nil))
This is a short routine which calls MPI message-passing routines. It
doesn't crash if I comment out the MPI calls. I commented out the
include "mpif.h" because the code is legal without it (although a few
things change from integers to reals), and the compiler still crashes.
SUBROUTINE MINMAX(UVEL,VVEL,H,MyNX,MyNY,II1,JJ1,TIME,
. RANK, COMM_2D)
C include "mpif.h"
INTEGER MyNX,MyNY,II1,JJ1,I,J,rank,comm_2d
C DIMENSION UVEL(MyNX,MyNY),VVEL(MyNX,MyNY),H(MyNX,MyNY)
real UVEL(MyNX,MyNY),VVEL(MyNX,MyNY),H(MyNX,MyNY)
REAL UMIN,UMAX,VMIN,VMAX,HMIN,HMAX,TIME
REAL GUMIN,GUMAX,GVMIN,GVMAX,GHMIN,GHMAX
UMAX = -1.E+6
UMIN = 1.E+6
VMAX = -1.E+6
VMIN = 1.E+6
HMAX = -1.E+6
HMIN = 1.E+6
DO 200 J = 2,JJ1
DO 200 I = 2,II1
UMAX = AMAX1(UMAX, UVEL(I,J))
VMAX = AMAX1(VMAX, VVEL(I,J))
HMAX = AMAX1(HMAX,H(I,J))
IF (H(I,J).NE. 0)THEN
UMIN = AMIN1(UMIN,UVEL(I,J))
VMIN = AMIN1(VMIN,VVEL(I,J))
HMIN = AMIN1(HMIN,H(I,J))
ENDIF
200 CONTINUE
CALL MPI_REDUCE(UMIN,GUMIN,1,MPI_REAL,MPI_MIN,0,
& COMM_2D, IERR)
CALL MPI_REDUCE(UMAX,GUMAX,1,MPI_REAL,MPI_MAX,0,
& COMM_2D, IERR)
CALL MPI_REDUCE(VMIN,GVMIN,1,MPI_REAL,MPI_MIN,0,
& COMM_2D, IERR)
CALL MPI_REDUCE(VMAX,GVMAX,1,MPI_REAL,MPI_MAX,0,
& COMM_2D,IERR)
CALL MPI_REDUCE(HMIN,GHMIN,1,MPI_REAL,MPI_MIN,0,
& COMM_2D,IERR)
CALL MPI_REDUCE(HMAX,GHMAX,1,MPI_REAL,MPI_MAX,0,
& COMM_2D,IERR)
C IF(RANK .EQ. 0)THEN
C PRINT 902, TIME,GUMAX,GUMIN,GVMAX,GVMIN,GHMAX,GHMIN
C ENDIF
902 FORMAT (F6.2,7E11.4)
RETURN
END