This is the mail archive of the gcc@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]

Fortran: Failed assertion in f/com.c 'TREE_CONSTANT (t)'


With the appended Fortran source I get the following failed assertion
since Craig's "mass update":

/usr/snp/bin/g77 -c  c.f
../../../egcs/gcc/f/com.c:13014: failed assertion `TREE_CONSTANT (t)'
g77: Internal compiler error: program f771 got fatal signal 6

Fortran source:

      SUBROUTINE INIERS1
      IMPLICIT   LOGICAL(L)
      COMMON/COMOBS/
     I NDTANA,   NTMANA,   NDTOBF,   NTMOBF,   NDTOBT,   NTMOBT,
     I NBFRED,   NDTANF,   NTMANF,   NDTANT,   NTMANT,   MODSOB
      COMMON/COMIOD/
     I NIN,      NOUT,     NAOF,     NSPECI,   NBLACK,   NXPBF,
     I NAIREP,   NTEMP,    NPILOT,   NSATOB,   NSURF,    NBUOY,
     I NTOVS,    NSATEM,   NPAOB,    NFDESC,   NHITOV,   NDMSP,
     I NERS1,    NHIERS1,  NMESAG
      COMMON/COMAOF/
     I NMXL,     NKEY,     NLNAIR,   NUMAIR,   NLNTEM,   NUMTEM,
     I NLNPIL,   NUMPIL,   NLNSTB,   NUMSTB,   NLNSRF,   NUMSRF,
     I NLNBUO,   NUMBUO,   NLNTOV,   NUMTOV,   NLNTVM,   NUMTVM,
     I NLNSTM,   NUMSTM,   NLNSMM,   NUMSMM,   NLNPAO,   NUMPAO,
     I NLNERS1,  NUMERS1,
     I NLNAOF,   NUMAOF,   NUMAFM,   NLNDMS,   NUMDMS,   NLNDMM,
     I NUMDMM,   NDATA(2000),
     L LTVMRG,   LPRESAT,  LERS1
      DIMENSION IDDR(16),ITEMP(16)
      integer   nopbio
      data      nopbio /0/
 110  CONTINUE
      LERS1=.FALSE.
      if (nopbio .eq. 0) then
         inquire(nhiers1, exist=lers1)
         goto 210       ! Sorry, can't do more than this.
      else
         CALL READ(NHIERS1, IDDR, ILEN, IERR, IUBC)
         IF (IERR .EQ. 2 .OR. IERR .EQ. 3) GOTO 210
         IF (IERR .NE. 0) THEN
            WRITE(NOUT,*)'ERROR WHILE READING DDR FROM ERS1 INPUT FILE'
            WRITE(NOUT,*)'ERROR =',IERR
            CALL ABORT
         ENDIF
         LERS1=.TRUE.
      endif
 120  CONTINUE
      IF (ILEN.EQ.16) GOTO 130
      IF (ILEN.EQ.2) THEN
         CALL GBYTES(IDDR,ITEMP,0,8,0,16)
         ILEN=ITEMP(1)
         IF (ILEN.NE.16) THEN
            REWIND NHIERS1
            GOTO 210
         ENDIF
         DO 125 J=1,16
         IDDR(J)=ITEMP(J)
 125     CONTINUE
      ELSE
         REWIND NHIERS1
         GOTO 210
      ENDIF
 130  CONTINUE
      IDTFRM=IDDR(2)+IDDR(3)*100+IDDR(4)*10000
      ITMFRM=IDDR(6)*100+IDDR(5)*10000
      IF (IDTFRM.NE.NDTOBF .OR. ITMFRM.NE.NTMOBF) THEN
         WRITE(NOUT,'(''0ERROR IN SUBROUTINE INIERS1'')')
         WRITE(NOUT,'('' START DATE AND TIME OF PRESAT DATA DIFFER '',
     1                ''FROM REST OF BUFR DATA'')')
         WRITE(NOUT,'('' PRESAT DATA START DATE = '',I6)') IDTFRM
         WRITE(NOUT,'('' PRESAT DATA START TIME = '',I6)') ITMFRM
         WRITE(NOUT,'('' OTHER BUFR DATA START DATE = '',I6)') NDTOBF
         WRITE(NOUT,'('' OTHER BUFR DATA START TIME = '',I6)') NTMOBF
         CALL ABORT
      ENDIF
      IDTANA=IDDR(7)+IDDR(8)*100+IDDR(9)*10000
      ITMANA=IDDR(11)*100+IDDR(10)*10000
      IF (IDTANA.NE.NDTANA .OR. ITMANA.NE.NTMANA) THEN
         WRITE(NOUT,'(''0ERROR IN SUBROUTINE INIERS1'')')
         WRITE(NOUT,'('' ANALYSIS DATE AND TIME OF PRESAT DATA '',
     1                ''DIFFER FROM REST OF BUFR DATA'')')
         WRITE(NOUT,'('' PRESAT DATA ANALYSIS DATE = '',I6)') IDTANA
         WRITE(NOUT,'('' PRESAT DATA ANALYSIS TIME = '',I6)') ITMANA
         WRITE(NOUT,'('' OTHER BUFR DATA ANALYSIS DATE = '',I6)') NDTANA
         WRITE(NOUT,'('' OTHER BUFR DATA ANALYSIS TIME = '',I6)') NTMANA
         CALL ABORT
      ENDIF
      IDTEND=IDDR(12)+IDDR(13)*100+IDDR(14)*10000
      ITMEND=IDDR(16)*100+IDDR(15)*10000
      IF (IDTEND.NE.NDTOBT .OR. ITMEND.NE.NTMOBT) THEN
         WRITE(NOUT,'(''0ERROR IN SUBROUTINE INIERS1'')')
         WRITE(NOUT,'('' END DATE AND TIME OF PRESAT DATA DIFFER '',
     1                ''FROM REST OF BUFR DATA'')')
         WRITE(NOUT,'('' PRESAT DATA END DATE = '',I6)') IDTEND
         WRITE(NOUT,'('' PRESAT DATA END TIME = '',I6)') ITMEND
         WRITE(NOUT,'('' OTHER BUFR DATA END DATE = '',I6)') NDTOBT
         WRITE(NOUT,'('' OTHER BUFR DATA END TIME = '',I6)') NTMOBT
         CALL ABORT
      ENDIF
 210  CONTINUE
      RETURN
      END

-- 
Toon Moene (toon@moene.indiv.nluug.nl)
Saturnushof 14, 3738 XG  Maartensdijk, The Netherlands
Phone: +31 346 214290; Fax: +31 346 214286
g77 Support: fortran@gnu.org; egcs: egcs-bugs@cygnus.com


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