public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/24679]  New: internal compiler error: Segmentation fault
@ 2005-11-04 22:22 icgomes at icgomes dot com
  2005-11-04 22:58 ` [Bug fortran/24679] " pinskia at gcc dot gnu dot org
  0 siblings, 1 reply; 2+ messages in thread
From: icgomes at icgomes dot com @ 2005-11-04 22:22 UTC (permalink / raw)
  To: gcc-bugs

The following on screen description happened:
jacin04 PHITS/src> gcc -v -save-temps -O4 -c mars00.f
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.0.1/configure --prefix=/usr/common/usg/gcc/4.0.1
--with-mpfr-dir=/usr/common/usg/gmp/src/gmp-4.1.4/mpfr/
--with-mpfr=/usr/common/usg/gmp/4.1.4/lib --with-gmp=/usr/common/usg/gmp/4.1.4
--with-gmp_dir=/usr/common/usg/gmp/src/gmp-4.1.4 --disable-multilib
Thread model: posix
gcc version 4.0.1
 /usr/common/usg/gcc/4.0.1/libexec/gcc/x86_64-unknown-linux-gnu/4.0.1/f951
mars00.f -ffixed-form -quiet -dumpbase mars00.f -mtune=k8 -auxbase mars00 -O4
-version -o mars00.s
GNU F95 version 4.0.1 (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.0.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=65536
 In file mars00.f:838

         if (iii-2) 570,510,540                                         
                                                                       1
Warning: Obsolete: arithmetic IF statement at (1)
mars00.f: In function 'fidas':
mars00.f:927: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

The subroutine that generated the error is as follows:

      subroutine fidas (d,ld,lld,ll2,j3,n5,n6)
      external fidcom
c
c   *** data array modification
c#######################################################################
c
c                audit trail information
c
c     date the module was last permanently updated:     93/09/20
c     time the module was last permanently updated:     07:31:12
c     programmer name:                                  l.m.petrie
c     module name:                                      s7fidas
c     current archiving level number:                   00020
c     current number of permanent updates:              00020
c     date of last access by librarian:                 93/09/20
c     dataset name:  x4s.scale4.master
c
c#######################################################################
      dimension in(37),k(37),v(37),ld(*),vmt(18),w(12),
     *          d(*),lld(*)
      common /fidasc/ iprtrg
      dimension prt(3)
      equivalence (bb,lbb)
      dimension vs(74)
      equivalence (v(1),vs(1))
      double precision v,vv,vu,del,delt,dif
      character*1 k,lbb,ldl,ls,lr1,li,lt,lss,lf,la,lap,lpl,lmi,lz,lv,lu
      character*1 bb,lq,lm,ln,le,lli,lki,lo,lc,lsls,ldb,lhl,lb
      character*4 prt,vmt
      dimension dv(2),vi(2)
      equivalence (dv(1),delt),(vi(1),vv)
      data ldl,ls,lr1,li,lt,lss/'$','*','r','i','t','s'/
      data lf,la,lap,lpl,lmi/'f','a','&','+','-'/
      data lz,lv,lu,bb/'z','v','u',' '/
      data lq,lm,ln/'q','m','n'/,le/'e'/,lli/'l'/
      data lki/'k'/
      data lo,lc,prt(1),prt(2),prt(3)/'o','c','off ','prt ','on  '/
      data lsls /'/'/
      data ldb/'#'/, lhl/'h'/
      kdbl   = 0
      ldbl   = 0
      j      = 0
      j3     = 0
      iii    = 0
      ivmt   = 0
      ncount = 0
  100 call ffread(in,k,v,nf,n5,n6,iprtrg)
      do 120 i=1,nf
         if (k(i).ne.lpl.and.k(i).ne.lap.and.k(i).ne.lmi) go to 120
c   *** exponentiation (&,+,-)
         l      = in(i)
         if (l.eq.0) go to 120
         e      = 10.0**l
         if (k(i).eq.lmi) go to 110
         v(i)   = v(i)*e
         go to 120
  110    v(i)   = v(i)/e
  120    continue
      i      = 1
  130 continue
         if (iii.eq.0)                 go to 140
         if (iii-2) 570,510,540
  140    iii    = 0
         if (k(i).eq.lbb)              go to 370
         if (k(i).eq.lhl)              go to 370
         if (k(i).eq.ldl)              go to 200
         if (k(i).eq.ls)               go to 190
         if (k(i).eq.ldb)              go to 180
         if (k(i).eq.lr1)              go to 400
         if (k(i).eq.li)               go to 560
         if (k(i).eq.lt)               go to 150
         if (k(i).eq.lss)              go to 340
         if (k(i).eq.lf)               go to 290
         if (k(i).eq.la)               go to 330
         if (k(i).eq.lz)               go to 390
         if (k(i).eq.le)               go to 320
         if (k(i).eq.lq)               go to 420
         if (k(i).eq.lm.or.k(i).eq.ln) go to 460
         if (k(i).eq.lu)               go to 160
         if (k(i).eq.lv)               go to 170
         if (k(i).eq.lli)              go to 500
         if (k(i).eq.lki)              go to 530
         if (k(i).eq.lo)               go to 350
         if (k(i).eq.lc)               go to 360
         if (k(i).eq.lsls)             go to 210
         go to 370
c   *** terminate (t)
  150    j2     = 0
         itest  = in(i)
         kdbl   = ldbl
         if (j.eq.0) go to 250
         go to 220
c   *** variable format control (u,v)
  160    read(n5,10900)vmt
  170    ivmt   = 1
         go to 190
c    *** begin new array (*,$,#)
  180    kdbl   = ldbl
cshr
         ldbl   = 1
cshr
clng
c        ldbl   = 0
clng
         kkk    = 0
         go to 210
  190    kkk    = 0
         kdbl   = ldbl
         ldbl   = 0
         go to 210
  200    kkk    = 1
         kdbl   = ldbl
         ldbl   = 0
  210    if (ncount+j.eq.0) go to 270
         j2     = 1
  220    ij     = j
         ic     = ncount
         inc    = 1
         if (kdbl.eq.0) go to 230
         ij     = j/2
         ic     = ncount/2
         inc    = 2
  230    write(n6,10400) ll,lb,ij
         if (j.eq.ncount) go to 250
         imax   = j1 + j - 1
         if (j.gt.10000) imax   = j + 99
         if (kk.eq.1) then
           write(n6,'(1x,10i12)')      (ld(ii),ii=j1,imax,inc)
         else
           write(n6,'(1x,1p,10e12.5)') (d(ii),ii=j1,imax,inc)
         end if
         j3     = j3 + 1
         write(n6,10500) ic,ll,lb
  250    if (j2.ne.0) go to 270
         write(n6,10600)in(i),lt
  260    return
  270    if (k(i).eq.lsls) go to 590
         ll     = in(i)
         ll3    = ll + ll2 - 1
         kk     = kkk
         lb     = k(i)
         inc    = ldbl+1
         j      = inc*v(i)
         j1     = lld(ll3) + j
         ncount = lld(ll3+ 1) - j1
         j      = 0
         if (ivmt.eq.0) go to 600
c   *** variable format control (u,v)
  280    if (ncount.eq.0) go to 100
         j      = ncount
         ncc    = j1 + ncount - 1
         read(n5,vmt) (d(j2),j2=j1,ncc)
         ivmt   = 0
         go to 100
c   *** fill array (f)
  290    if (j.ge.ncount) go to 310
         ncc    = j+1
         do 300 ii=ncc,ncount,inc
            j2     = j1 + ii -1
            if (ldbl.eq.1) then
              d(j2)   = vs(2*i-1)
              d(j2+1) = vs(2*i)
            else
              d(j2)   = v(i)
            end if
            if (kk.ne.0)  ld(j2) = v(i)
  300       continue
         j      = ncount
         go to 600
  310    write(n6,10700) ll,lb
         go to 600
c   *** end array (e)
  320    if (j.le.ncount) j=ncount
         go to 600
c   *** address modification (a)
  330    j      = v(i)
         if (j.gt.ncount.or.j.le.0) write(n6,10800)j,ll,lb
         j      = inc*(j-1)
         go to 600
c   *** skip (s)
  340    j      = j + inc*in(i)
         go to 600
c   *** turn print trigger on/off
  350    iprtrg = -iprtrg
         write(n6,10100)prt(2),prt(iprtrg+2),in(i),lo
         go to 600
c   *** print count in current array
  360    write(n6,10200)ll,lb,j,in(i),lc
         go to 600
c   *** no modification
  370    continue
  380    j2     = j1 + j
         j      = j+inc
         if (ldbl.eq.1) then
           d(j2)   = vs(2*i-1)
           d(j2+1) = vs(2*i)
         else
           if (k(i).eq.lhl) then
             d(j2)   = vs(2*i-1)
             go to 600
           else
             d(j2)   = v(i)
           end if
         end if
         if (kk.ne.0) ld(j2) = v(i)
         go to 600
c   *** zero (z)
  390    in(i)  = v(i) + in(i)
         v(i)   = 0.0
c   *** repeat (r)
  400    l      = in(i)
cst      do 410 ii=1,max(1,l)
         do 410 ii=1,max0(1,l)
            j2     = j1 + j
            if (ldbl.eq.1) then
              d(j2)   = vs(2*i-1)
              d(j2+1) = vs(2*i)
            else
              d(j2)   = v(i)
            end if
            if (kk.ne.0)  ld(j2) = v(i)
  410       j      = j+inc
         go to 600
c   *** sequence repeat (q)
  420    l      = v(i) + in(i)
         lseq   = 1
         if (v(i).eq.0.0.or.in(i).eq.0) go to 430
         l      = v(i)
         lseq   = in(i)
  430    do 450 lsq=1,lseq
            do 440 ii=1,l
               j2     = j1 + j
               j4     = j2 - l*inc
               d(j2)  = d(j4)
               if (ldbl.eq.1) d(j2+1) = d(j4+1)
  440          j      = j+inc
  450       continue
         go to 600
c   *** inverted sequence repeat (n)
  460    l      = v(i) + in(i)
         lseq   = 1
         if (v(i).eq.0.0.or.in(i).eq.0) go to 470
         l      = v(i)
         lseq   = in(i)
  470    do 490 lsq=1,lseq
            do 480 ii=1,l
               j2     = j1 + j
               j4     = j2 - 2*ii*inc + inc
c   *** reversed sign inverted sequence repeat (m)
               if (ldbl.eq.1)  then
                 vi(1) = d(j4)
                 vi(2) = d(j4+1)
               else
                 vv     = d(j4)
               end if
               if (k(i).eq.lm)     vv = -vv
               if (ldbl.eq.1) then
                 d(j2)   = vi(1)
                 d(j2+1) = vi(2)
               else
                 d(j2)  = vv
               end if
  480          j      = j+inc
  490       continue
         go to 600
c   *** logarithmic interpolation (l)
  500    l      = in(i) + 1
         vv     = v(i)
         iii    = 2
         go to 600
  510    vu     = v(i)/vv
changed by st 96/12/18 for lahey fortran
c        del    = dexp(dlog(vu)/dfloat(l))
         del    = dexp(dlog(vu)/dble(l))
         j2     = j1 + j
         if (ldbl.eq.1) then
           d(j2)   = vi(1)
           d(j2+1) = vi(2)
         else
           d(j2)   = vv
         end if
         j      = j+inc
         do 520 ii=2,l
            j2     = j1 + j
            vv     = del*vv
            if (ldbl.eq.1) then
              d(j2)   = vi(1)
              d(j2+1) = vi(2)
            else
              d(j2)  = vv
            end if
  520       j      = j+inc
         if (iii.ne.0) go to 140
         go to 600
c   *** fixed 10 log interp.  (k)
  530    l      = in(i) + 1
         vv     = v(i)
         iii    = 3
         go to 600
  540    dif    = (v(i)-vv)/9.0d0
changed by st 96/12/18 for lahey fortran
c        del    = dexp(2.302585092994045d0/dfloat(l))
         del    = dexp(2.302585092994045d0/dble(l))
         j2     = j1 + j
         if (ldbl.eq.1) then
           d(j2)   = vi(1)
           d(j2+1) = vi(2)
         else
           d(j2)   = vv
         end if
         vv     = vv-dif
         j      = j+inc
         do 550 ii=2,l
            j2     = j1 + j
            dif    = dif*del
            delt   = vv + dif
            if (ldbl.eq.1) then
              d(j2)   = dv(1)
              d(j2+1) = dv(2)
            else
              d(j2)   = delt
            end if
  550       j      = j+inc
         if (iii.ne.0) go to 140
         go to 600
c   *** interpolate (i)
  560    l      = in(i) + 1
         vv     = v(i)
         iii    = 1
         go to 600
  570    del    = (v(i)-vv)/float(l)
         do 580 ii=1,l
            j2     = j1 + j
            delt   = del*float(ii-1) + vv
            if (ldbl.eq.1) then
              d(j2)   = dv(1)
              d(j2+1) = dv(2)
            else
              d(j2)   = delt
            end if
            if (kk.ne.0)  ld(j2) = delt + sign(0.5d0,del)
  580       j      = j+inc
         if (iii.ne.0) go to 140
         go to 600
c   *** read alphanumeric
  590    ll     = in(i)
         ll3    = ll+ll2-1
         j2     = 1
         j      = 0
         ncount = 0
         mode   = 0
         if (v(i).eq.0) mode   = 1
         lstart = v(mode+i)
         lstop  = v(mode+i+1)
         lstar  = lld(ll3) + lstart - 1
         lsto   = lld(ll3) + lstop - 1
         read(n5,10900) (d(ii),ii=lstar,lsto)
         write(n6,10300)ll,lstart,lstop
         i      = mode+i+1
  600    continue
         i      = i+1
         if ( i.le.nf ) go to 130
      go to 100
c   *** format statements
10000 format(6(i2,a1,f9.0),t5,2a4,5(4x,2a4))
10100 format(' ',t53,2a4,i7,a1)
10200 format(t90,i5,a1,' array',i7,' entries read at',i4,a1)
10300 format('0',i5,'/ array read from',i5,' to',i5)
10400 format(1h0,i5,a1,' array',i7,' entries read')
10500 format('0****** error ',i7,' entries required in ',i3,a1,' array'/
     *  '0 data edit continues' )
10600 format(1h0,i5,a1)
10700 format('0****** fill option ignored in ',i2,a1,' array' )
10800 format('0****** warning  address',i7,' is beyond limits of',i3,a1,
     *  ' array')
10900 format(18a4)
      end
C


-- 
           Summary: internal compiler error: Segmentation fault
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: icgomes at icgomes dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24679


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Bug fortran/24679] internal compiler error: Segmentation fault
  2005-11-04 22:22 [Bug fortran/24679] New: internal compiler error: Segmentation fault icgomes at icgomes dot com
@ 2005-11-04 22:58 ` pinskia at gcc dot gnu dot org
  0 siblings, 0 replies; 2+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-04 22:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2005-11-04 22:58 -------
Fixed in 4.0.2 and above at least.  Most likely a dup of bug 15966.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.0.2


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24679


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2005-11-04 22:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-11-04 22:22 [Bug fortran/24679] New: internal compiler error: Segmentation fault icgomes at icgomes dot com
2005-11-04 22:58 ` [Bug fortran/24679] " pinskia at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).