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 compiler internal error


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




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