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
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).