This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
g77 compiler internal error
- To: emacs-bugs <egcs-bugs at cygnus dot com>
- Subject: g77 compiler internal error
- From: root <zalmano at ibm dot net>
- Date: Fri, 22 Jan 1999 22:51:38 -0200
- Reply-To: zalmano at ibm dot net
Hi,
while trying to compile a fortran77 function using the command: g77 -c
-v icrc.f
I got the following compiler error. By the way it compiles fine with f2c
(fort77)
> g77 version pgcc-2.91.60 19981201 (egcs-1.1.1 release) (from FSF-g77 version 0.5.24-19980804)
> Reading specs from /opt/pgcc/lib/gcc-lib/i586-pc-linux-gnu/pgcc-2.91.60/specs
> gcc version pgcc-2.91.60 19981201 (egcs-1.1.1 release)
> /opt/pgcc/lib/gcc-lib/i586-pc-linux-gnu/pgcc-2.91.60/f771 icrc.f -quiet -dumpbase icrc.f -version -fversion -o /tmp/cc8qZqoR.s
> GNU F77 version pgcc-2.91.60 19981201 (egcs-1.1.1 release) (i586-pc-linux-gnu) compiled by GNU C version pgcc-2.91.60 19981201 (egcs-1.1.1 release).
> GNU Fortran Front End version 0.5.24-19980804
> com.c:11030: failed assertion `ffeinfo_kindtype (ffebld_info (expr)) == FFEINFO_kindtypeCHARACTER1'
> g77: Internal compiler error: program f771 got fatal signal 6
>
I attach the fortran file icrc.f :
> FUNCTION icrc(crc,bufptr,len,jinit,jrev)
> INTEGER icrc,jinit,jrev,len
> CHARACTER*1 bufptr(*),crc(2)
> CU USES icrc1
> INTEGER ich,init,ireg,j,icrctb(0:255),it(0:15),icrc1,ib1,ib2,ib3
> CHARACTER*1 creg(4),rchr(0:255)
> SAVE icrctb,rchr,init,it,ib1,ib2,ib3
> EQUIVALENCE (creg,ireg)
> DATA it/0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15/, init /0/
> if (init.eq.0) then
> init=1
> ireg=256*(256*ichar('3')+ichar('2'))+ichar('1')
> do 11 j=1,4
> if (creg(j).eq.'1') ib1=j
> if (creg(j).eq.'2') ib2=j
> if (creg(j).eq.'3') ib3=j
> 11 continue
> do 12 j=0,255
> ireg=j*256
> icrctb(j)=icrc1(creg,char(0),ib1,ib2,ib3)
> ich=it(mod(j,16))*16+it(j/16)
> rchr(j)=char(ich)
> 12 continue
> endif
> if (jinit.ge.0) then
> crc(1)=char(jinit)
> crc(2)=char(jinit)
> else if (jrev.lt.0) then
> ich=ichar(crc(1))
> crc(1)=rchr(ichar(crc(2)))
> crc(2)=rchr(ich)
> endif
> do 13 j=1,len
> ich=ichar(bufptr(j))
> if(jrev.lt.0)ich=ichar(rchr(ich))
> ireg=icrctb(ieor(ich,ichar(crc(2))))
> crc(2)=char(ieor(ichar(creg(ib2)),ichar(crc(1))))
> crc(1)=creg(ib1)
> 13 continue
> if (jrev.ge.0) then
> creg(ib1)=crc(1)
> creg(ib2)=crc(2)
> else
> creg(ib2)=rchr(ichar(crc(1)))
> creg(ib1)=rchr(ichar(crc(2)))
> crc(1)=creg(ib1)
> crc(2)=creg(ib2)
> endif
> icrc=ireg
> return
> END
>
thanks,
Adrian