This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

g77 -ieee crash in 1.0.3a


[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]