This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Fortran: Failed assertion in f/com.c 'TREE_CONSTANT (t)'
- To: egcs at egcs dot cygnus dot com
- Subject: Fortran: Failed assertion in f/com.c 'TREE_CONSTANT (t)'
- From: Toon Moene <toon at moene dot indiv dot nluug dot nl>
- Date: Sun, 18 Apr 1999 11:37:29 +0200
- Organization: Moene Computational Physics, Maartensdijk, The Netherlands
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