]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/testsuite/g77.f-torture/noncompile/19990826-4.f
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / testsuite / g77.f-torture / noncompile / 19990826-4.f
diff --git a/gcc/testsuite/g77.f-torture/noncompile/19990826-4.f b/gcc/testsuite/g77.f-torture/noncompile/19990826-4.f
deleted file mode 100644 (file)
index 86d2a93..0000000
+++ /dev/null
@@ -1,648 +0,0 @@
-* Culled from 970528-1.f in Burley's g77 test suite.  Copyright
-* status not clear.  Feel free to chop down if the bug is still
-* reproducible (see end of test case for how bug shows up in gdb
-* run of f771).  No particular reason it should be a noncompile
-* case, other than that I didn't want to spend time "fixing" it
-* to compile cleanly (with -O0, which works) while making sure the
-* ICE remained reproducible.  -- burley 1999-08-26
-
-* Date: Mon, 26 May 1997 13:00:19 +0200 (GMT+0200)
-* From: "D. O'Donoghue" <dod@da.saao.ac.za>
-* To: Craig Burley <burley@gnu.ai.mit.edu>
-* Cc: fortran@gnu.ai.mit.edu
-* Subject: Re: g77 problems
-
-       program dophot
-       parameter (napple = 4)
-        common /window/nwindo,ixwin(50),iywin(50),iboxwin(50),itype(50)
-        common/io/luout,ludebg
-       common/search/nstot,thresh
-       common /fitparms / acc(npmax),alim(npmax),mit,mpar,mfit1,
-     +                     mfit2,ind(npmax)
-       common /starlist/ starpar(npmax,nsmax), imtype(nsmax),
-       1shadow(npmax,nsmax),shaderr(npmax,nsmax),idstr(nsmax)
-       common /aperlist/ apple(napple ,nsmax)
-       common /parpred / ava(npmax)
-       common /unitize / ufactor
-       common /undergnd/ nfast, nslow
-       common/bzero/ scale,zero
-       common /ctimes / chiimp, apertime, filltime, addtime
-       common / drfake / needit 
-       common /mfit/ psfpar(npmax),starx(nfmax),stary(nfmax),xlim,ylim
-       common /vers/ version
-       logical needit,screen,isub,loop,comd,burn,wrtres,fixedxy
-       logical fixed,piped,debug,ex,clinfo
-       character header*5760,rhead*2880
-       character yn*1,version*40,ccd*4,infile*20
-       character*30 numf,odir,record*80
-       integer*2 instr(8)
-       character*800 line
-       external pseud0d, pseud2d, pseud4d, pseudmd, shape
-C
-C      Initialization
-       data burn,   fixedxy,fixed,  piped 
-     +     /.false.,.false.,.false.,.false./
-       data needit,screen,comd,isub
-     + /.true.,.false.,.true.,.false. /
-       data acc / .01, -.03, -.03, .01, .03, .1, .03 /
-       data alim / -1.0e8, 2*-1.0e3, -1.0e8, 3*-1.0e3 /
-C
-       version = 'DoPHOT Version 1.0 LINUX May 97 '
-        debug=.false.
-        clinfo=.false.
-       line(1:800) = ' '
-       odir = ' '
-C
-C
-C      Read default tuneable parameters 
-       call tuneup ( nccd, ccd, piped, debug )
-       version(33:36) = ccd(1:4)
-C
-      
-        ludebg=6
-        if(piped)then
-          yn='n'
-        else
-         write(*,'(''****************************************'')')
-         write(*,1000) version
-         write(*,'(''****************************************''//)')           
-C                                                             
-          write(*,'(''Screen output (y/[n])? '',$)')             
-         read(*,1000) yn
-        end if
-       if(yn.eq.'y'.or.yn.eq.'Y') then
-          screen=.true.                
-          luout=6
-        else
-          luout=2
-        end if
-C
-        if(piped)then
-          yn='y'
-        else
-          write(*,'(''Batch mode ([y]/n)? '',$)')
-          read(*,1000) yn
-        end if
-       if(yn.eq.'n'.or.yn.eq.'N') comd = .false.
-C                                          
-       if(.not.comd) then                                     
-          write(*,
-     *         '(''Do you want windowing ([y]/n)? '',$)')
-          read(*,1000)yn
-          iwindo=1
-          if(yn.eq.'n'.or.yn.eq.'N')then
-            nwindo=0
-            iwindo=0
-          end if
-C
-          write(*,
-     *       '(''Star classification info (y/[n]) ?'',$)')
-          read(*,1000)yn
-          clinfo=.false.
-          if(yn.eq.'y'.or.yn.eq.'Y')clinfo=.true.
-C
-         write(*,
-     *        '(''Create a star-subtracted frame (y/[n])? '',$)')
-         read(*,1000) yn                                     
-         if(yn.eq.'y'.or.yn.eq.'Y') isub = .true.
-C               
-         write(*,'(''Apply after-burner (y/[n])? '',$)')
-         read(*,1000) yn
-         if ( yn.eq.'y'.or.yn.eq.'Y' ) burn = .true.
-         wrtres = burn
-C
-         write(*,'(''Read from fixed (X,Y) list (y/[n])? '',$)')
-         read(*,1000) yn
-         if ( yn.eq.'y'.or.yn.eq.'Y' ) then
-           fixedxy = .true.
-           fixed = .true.
-           burn = .true.
-           wrtres = .true.
-         endif
-       endif         
-        iopen=0
-C
-C       This is the start of the loop over the input files
-c
-        iframe=0
-        open(10,file='timing',status='unknown',access='append')
-
-1      ifit = 0
-       iapr = 0
-       itmn = 0
-       model = 1
-       xc = 0.0
-       yc = 0.0
-       rc = 0.0
-       ibr = 0
-       ixy = 0
-C      
-        iframe=iframe+1
-        tgetpar=0.0
-        tsearch=0.0
-        tshape=0.0
-        timprove=0.0
-C
-C      Batch mode ...
-
-       if ( comd ) then
-          if(iopen.eq.0)then
-            iopen=1
-            open(11,file='dophot.bat',status='old',err=995)
-          end if
-          read(11,1000,end=999)infile
-c         now read in the parameter instructions. these are:
-c         instr(1) : if 1, specifies uncrowded field, otherwise crowded 
-c         instr(2) : if 1, specifies sequential frames of same field
-c                          with a window around the stars of interest -
-c                          all other objects are ignored
-c         instr(3) : if 0, takes cmin from dophot.inp (via tuneup)
-c                    if>0, sets cmin=instr(3)
-c         instr(4) : if 0, does nothing
-c                    if 1, then opens a file called classifications
-c                    sets clinfo to .true. and writes out the star
-c                    typing info to this file
-c         instr(5) : Delete the shd.nnnnnnn file
-c         instr(6) : Delete the out.nnnnnnn file
-c         instr(7) : Delete the input frame
-c         instr(8) : Create a star-subtracted frame 
-          read(11,*)instr
-          read(11,*)ifit,iapr,tmn,model,xc,yc,rc,ibr,ixy
-          nocrwd = instr(1)
-          iwindo=instr(2)
-          if(iwindo.eq.0)nwindo=0
-          itmn=tmn
-          if ( instr(3).gt.0 ) cmin=instr(3)
-          clinfo=.false.
-          if ( instr(4).gt.0 )then
-            clinfo=.true.
-            open(12,file='classifications',status='unknown')
-            ludebg=12
-          end if
-         if ( instr(8).ne.0 ) then
-           isub = .true.            
-         else
-           isub = .false.
-         endif
-C
-         if(ibr.ne.0) burn = .true.
-         if(ixy.ne.0) then
-           fixedxy = .true.
-           fixed = .true.
-           burn = .true.
-           goto 20
-          endif
-          if(iwindo.eq.0)then
-            write(6,10)iframe,infile(1:15)
-   10       format('  ***** DoPHOT-ing frame ',i4,': ',a)
-            if(ludebg.eq.12)write(ludebg,11)iframe,infile(1:15)
-   11       format(////'  ',62('*')/
-     *                 '  *     DoPHOT-ing frame ',i4,': ',a,
-     *                 '                 *'/'  ',62('*'))
-          end if
-          if(iwindo.eq.1)then
-            write(6,12)iframe,infile(1:15)
-   12       format('  ***** DoPHOT-ing frame ',i4,': ',a,
-     *             '   - Windowed *****')
-            if(ludebg.eq.12)write(ludebg,13)iframe,infile(1:15)
-   13       format(////'  ',62('*')/
-     *                 '  *     DoPHOT-ing frame ',i4,': ',a,
-     *                 '   - Windowed    *'/2x,62('*'))
-          end if
-C
-C      Interactive...
-       else
-         write(*,'(''Image name: '',$)')
-         read(*,1000) infile
-         if(infile(1:1).eq.' ') goto 999                     
-1000     format(a)                          
-          write(*,'(''Crowded field mode ([y]/n) ? '',$)')
-          read(*,1000)yn
-          nocrwd=0
-          if(yn.eq.'n'.or.yn.eq.'N')nocrwd=1
-         if(.not.fixed) then
-           write(*,1001)
-1001        format('Sky model ([1]=Plane, 2=Power, 3=Hubble)? ',$)
-            read(*,1000)record
-            if(record.ne.' ')then
-             read(record,*) model
-            else
-              model=1
-            end if
-         else         
-           burn=.true.
-           goto 20           
-         endif
-       endif
-C
-C       if windowing, open the file and read the window
-        if(iwindo.eq.1)then
-          inquire(file='windows',exist=ex)
-          if(.not.ex)go to 997
-          if(iframe.eq.1)open(9,file='windows',status='old')
-          nwindo=0
-    2     read(9,*,end=3)intype,inx,iny,inbox
-          nwindo=nwindo+1
-          if(nwindo.gt.50)then
-            print *,'too many windows - max = 50'
-            stop
-          end if
-          ixwin(nwindo)=inx
-          iywin(nwindo)=iny
-          iboxwin(nwindo)=inbox
-          itype(nwindo)=intype
-          go to 2
-
-    3     rewind 9
-          if(screen)print 4,(itype(j),ixwin(j),iywin(j),iboxwin(j),
-     *                       j=1,nwindo)
-    4     format(' Windows: Type   X    Y   Size'/
-     *           (I13,i6,i5,i5))
-        end if
-
-       t1 = cputime(0.0)
-C
-C      Read FITS frame.
-       call getfits(1,infile,header,nhead,nfast,nslow,numf,nc,line,ccd)
-C
-C      Ignore frame if not the correct chip
-       if(nc.lt.0) goto 900
-C                     
-C      Estimate starting PSF parameters.
-   15   call getparams(nfast,nslow,gxwid,gywid,skyval,tmin,tmax,
-     *                 iframe)
-        tgetpar = cputime(t1) + tgetpar
-        if(debug)write(ludebg,16)iframe,skyval,gxwid,gywid,tmin,tmax
-   16   format(' Getparams on frame ',i4,'  sky ',f6.1,'  gxwid ',f5.1,
-     *         '  gywid ',f5.1,'  tmin ',f5.1,'  tmax ',f5.1)
-C
-C      Initialize
-       do j=1,nsmax
-         imtype(j) = 0
-         do i=1,npmax  
-           shadow(i,j)=0.                               
-           shaderr(i,j)=0.
-         enddo
-       enddo
-C              
-       skyguess=skyval
-       tfac = 1.0            
-C      Use 4.5 X SD as fitting width       
-       fitr=fitfac*(gxwid*asprat*gywid)**0.25 + 0.5                      
-       i=fitr
-       irect(1)=i
-       irect(2)=fitr/asprat 
-C      Use 4/3 X FitFac X SD as aperture width
-       gmax = asprat*gywid
-       if(gxwid.gt.gmax) gmax=gxwid
-       aprw = 1.33*fitfac*sqrt(gmax) + 0.5
-       i = aprw
-       arect(1) = i
-       i = aprw/asprat + 0.1
-       arect(2) = i          
-C                                     
-       if(irect(1).gt.50) irect(1)=50
-       if(irect(2).gt.50) irect(2)=50  
-       if(arect(1).gt.45.) arect(1)=45.
-       if(arect(2).gt.45.) arect(2)=45.
-C
-       if (screen) call htype(line,skyval,.false.,fitr,ngr,ncon)
-C
-C       Prompt for further information         
-       if ( .not.comd ) then
-          write(*,1002)
- 1002     format(/'The above are the inital parameters DoPHOT'/
-     *            'has found. You can change them now or accept'/
-     *            'the values in [ ] by pressing enter'/)
-
-          write(*,1004)tmin
- 1004     format('Enter Tmin: threshold for star detection',
-     *           ' [',f5.1,']  ',$)
-          read(*,1000)record
-          if(record.ne.' ')read(record,*)tmin
-
-          write(*,1005)cmin
- 1005     format('Enter Cmin: threshold for PSF stars',
-     *           '      [',f5.1,']  ',$)
-          read(*,1000)record
-          if(record.ne.' ')read(record,*)cmin
-
-          write(*,1006)
- 1006     format('Do you want to fix the aperture mag size ?',
-     *           ' (y/[n]) ')
-          read(*,1000)record
-          if(record.eq.'y'.or.record.eq.'Y')then
-            write(*,1007)
- 1007       format('Enter the size in pixels: ',$)
-            read(*,*)iapr
-           if(iapr.gt.0) then          
-              arect(1)=iapr
-              i = iapr/asprat + 0.1
-              arect(2)=i
-            end if
-         endif                     
-C
-         write(*,1008)
- 1008     format('Satisfied with other input parameters ? ([y]/n)?',$)
-         read(*,1000) yn        
-          if(yn.eq.'n'.or.yn.eq.'N')then
-            yn='n'
-          else
-            yn='y'
-          end if
-         if(.not.(yn.eq.'y'.or.yn.eq.'Y') ) call input
-       else
-         if ( ifit.ne.0 ) then
-           irect(1)=ifit
-           irect(2)=(ifit/asprat + 0.1)
-         endif              
-         if ( iapr.ne.0 ) then
-           arect(1)=iapr
-           i = iapr/asprat + 0.1
-           arect(2)=i
-         endif                                       
-         if ( itmn.ne.0 ) tmin = itmn
-         if ( .not.(xc.eq.0.0.and.yc.eq.0.0) ) then
-           xcen = xc
-           ycen = yc
-          endif
-       endif          
-C
-C--------------------------------
-C
-C
-       call setup ( numf,nc,screen,line,skyval,fitr,ngr,ncon,
-     +nfast, nslow )
-C
-C       if the uncrowded field option has been chosen, jump
-C       straight to the minimum threshold
-C
-        if(nocrwd.eq.1)tmax=tmin
-C             
-C      Adjust tfac so that thresh ends precisely on Tmin.
-       if(tmin/tmax .gt. 0.999) then
-         thresh = tmin
-         tfac = 1.          
-       else                                                     
-         thresh = tmax
-         xnum = alog10(tmax/tmin)/alog10(2.**tfac)
-         if(xnum.gt.1.5) then
-           xnum = float(nint(xnum))
-         else if(xnum.ge.1) then               
-           xnum = 2.0
-         else             
-           xnum = 1.0             
-         endif                                         
-         tfac = alog10(tmax/tmin)/alog10(2.)/xnum                   
-       endif
-C                       
-C------------------------------------------------------------------------
-C                            
-C         This is the BIG LOOP which searches the frame for stars
-C               with intensities > thresh.                
-C        
-C-----------------------------------------------------------------------
-C                           
-       loop = .true.
-       nstot = 0
-       do while ( loop )   
-         loop = thresh/tmin .ge. 1.01
-         write(luout,1050) thresh
-1050     format(/20('-')/'THRESHOLD: ', f10.3)
-         if(ludebg.eq.12)write(ludebg,1050) thresh
-C
-C         Fit given model to sky values.
-C
-          call varipar(nstot, nfast, nslow )            
-         t1 = cputime(0.0)
-C               
-C         Identifies potential objects in cleaned array IMG
-         nstar = isearch( pseud2d, nfast, nslow , clinfo)
-         tsearch = cputime(t1) + tsearch
-C                                                                   
-         if ( (nstar .ne. 0).or.(xnum.lt.1.5) ) then
-C                                           
-C           Performs 7-parameter PSF fit and determines nature of object.
-           t1 = cputime(0.0)
-           call shape(pseud2d,pseud4d,nfast,nslow,clinfo)
-           tshape = cputime(t1) + tshape
-C                           
-C           Computes average sky values etc from star list
-           call paravg
-           t1 = cputime(0.0)
-C                                                          
-C           Computes 4-parameter fits for all stellar objects using 
-C           new average shape parameters.  
-           call improve(pseud2d,nfast,nslow,clinfo)
-           timprove = cputime(t1) + timprove
-         end if                         
-C
-C         Calculate aperture photometry on last pass.
-         if(.not.loop) call aper ( pseud2d, nstot, nfast, nslow )
-C             
-         totaltime = (tgetpar+tsearch+tshape+timprove)
-         write(3,1060) totaltime
-         write(4,1060) totaltime
-         write(luout,1060) totaltime
-1060     format('Total CPU time consumed:',F10.2,' seconds.')
-          write(10,1070)infile,tgetpar,tsearch,tshape,timprove,
-     *                  totaltime
-1070      format(a20,'   T(getp/f)',f5.1,'  T(search)',f5.1,
-     *               '  T(shape)',f5.1,'  T(improve)',f5.1,
-     *               '  Total',f6.1)
-         call title (line,skyval,.false.,fitr,ngr,ncon,strint,ztot,nums)
-         rewind(2)          
-         rewind(3)                              
-         rewind(4)
-C
-         call output ( line )
-C
-C         Now reduce the threshold and loop back
-C
-         thresh = thresh/2.**tfac
-       end do                   
-C                              
-C--------- END OF BIG LOOP ---------------------------------------
-C                      
-C      If after-burner required, residuals from analytic PSF are computed
-C      and stored in RES.
-C      
-20     if ( burn ) then
-C      
-C      If using a fixed (X,Y) coordinate list, read it.
-        if (fixed) then
-C       Read the image frame
-         call getfits(1,infile,header,nhead,nfast,nslow,numf,nc,line)
-C
-C       Initialize arrays, open files etc.
-         call setup ( numf,nc,screen,line,skyval,fitr,ngr,ncon,
-     +nfast, nslow )
-C
-C       Read the XY list                                 
-         write(luout,'(''Reading XY list ...'')')
-         call xylist(numf, nc, ios )
-         if(ios.ne.0) then
-          fixed = .false.
-          write(luout,'(''SXY file absent or incorrect...'')')
-          goto 15
-         endif
-C
-         call htype(line,skyval,.false.,fitr,ngr,ncon)
-C
-C       Remove good stars
-         write(luout,'(''Cleaning frame of stars: '',i8)') nstot
-         call clean ( pseud2d, nstot, nfast, nslow, -1)
-C             
-C      Calculate aperture photometry
-C        call aper ( pseud2d, nstot, nfast, nslow )
-        else            
-          rewind(3)
-          rewind(4)         
-        endif 
-C             
-C-----------------------
-C      Flag all stars close together in groups.  Keep making the distance
-C      criterion FITR smaller until the maximum number in a group is less
-C      than NFMAX         
-C                      
-        fitr = amax1(arect(1),arect(2))
-        fitr = fitr + 2.0      
-        nmax = 10000 
-        write(*,'(''Regrouping ...'')')
-C              
-        do while ( nmax.gt.nfmax )
-         fitr = fitr - 1.0       
-         write(luout,'(''Min distance ='',f8.1)') fitr
-         call regroup( fitr, ngr, nmax )     
-        enddo
-C
-        xlim = irect(1)/2 
-        ylim = irect(2)/2
-C
-C      Calculate normalized PSF residual from PSEUD2D
-        call getres (pseud0d,pseud2d,strint,rmn,rmx,nfast,nslow,irect,
-     +arect,ztot,nums)
-        if(nums.eq.0) then
-         write(luout,'(''No suitable PSF stars!'')')
-         goto 30
-        endif
-C
-        write(luout,'(/''AFTERBURNER tuned ON!'')')
-C
-C      Fit multiple stars in a group with enhanced PSF using box size IRECT.
-        call mulfit( pseud2d,pseudmd,ngr,ncon,nfast,nslow,irect )        
-C
-C      Re-calculate aperture photometry
-        call aperm ( pseudmd, nstot, nfast, nslow )
-C
-        call skyadj ( nstot )
-C
-        call title (line,skyval,.true.,fitr,ngr,ncon,strint,ztot,nums)
-        call output ( line )
-       endif 
-C---------------------                                                
-C
-C-----  This section skipped if PSF residual not written out ------
-C                     
-30     if( isub ) then
-C
-C      Write final Cleaned array.
-        infile = 'x'//numf(1:nc)//'.fits'
-        call putfits(2,infile,header,nhead,nfast,nslow)
-        close(2)                 
-C             
-C      If afterburner used, then residual array also written out.
-C      Find suitable scale for writing residual PSF to FITS "R" file.
-C
-        if ( wrtres ) then
-         scale=20000.0/(rmx-rmn)
-         zero=-scale*rmn   
-         do j=-nres,nres
-          jj=nres+j+1   
-          do i=-nres,nres
-           ii=nres+i+1                                  
-           big(ii,jj)=scale*res(i,j)+zero
-          enddo
-         enddo
-         nx=2*nres+1  
-C
-         infile = 'r'//numf(1:nc)//'.fits'
-         zer=-zero/scale
-         scl=1.0/scale            
-C                                           
-C      Create a FITS header for the normalized PSF residual image    
-         call sethead(rhead,numf,nx,nx,zer,scl)
-         scale=1.0             
-         zero=0.0    
-C      Write the normalized PSF residual image
-         call putfits(2,infile,rhead,1,nx,nx)
-         close(2)
-        endif
-C                        
-       end if
-C                     
-C                     
-900    close(1)
-       close(3)                                 
-       close(4)
-       if ( .not.screen ) close(luout)
-       if(comd) then
-          if(instr(5).eq.1)call system('rm shd.'//numf(1:nc))
-          if(instr(6).eq.1)call system('rm out.'//numf(1:nc))
-          n=1
-          do while(infile(n:n).ne.' ')
-            n=n+1
-          end do
-          if(instr(7).eq.1)call system('rm '//infile(1:n-1))
-        end if
-       fixed = fixedxy
-       goto 1
-C
-995     print 996
-996     format(/'*** Fatal error ***'/
-     *          'You asked for batch processing but'/
-     *          'I cant open the "dophot.bat" file.'/
-     *          'Please make one (using batchdophot)'/
-     *          'and restart DoPHOT'/)
-        go to 999
-
-C
-997     print 998
-998     format(/'*** Fatal error ***'/
-     *          'You asked for "windowed" processing'/
-     *          'but I cant open the "windows" file.'/
-     *          'Please make one and restart DoPHOT'/)
-
-999    call exit(0)
-       end
-
-* (gdb) r
-* Starting program: /home3/craig/gnu/f77-e/gcc/f771 -quiet < ../../play/19990826-4.f -O
-* [...]
-* Breakpoint 2, fancy_abort (
-*     file=0x8285220 "../../g77-e/gcc/config/i386/i386.c", line=4399,
-*     function=0x82860df "output_fp_cc0_set") at ../../g77-e/gcc/rtl.c:1010
-* (gdb) up
-* #1  0x8222fab in output_fp_cc0_set (insn=0x8382324)
-*     at ../../g77-e/gcc/config/i386/i386.c:4399
-* (gdb) p insn
-* $1 = 0x3a
-* (gdb) up
-* #2  0x8222b81 in output_float_compare (insn=0x8382324, operands=0x82acc60)
-*     at ../../g77-e/gcc/config/i386/i386.c:4205
-* (gdb) p insn
-* $2 = 0x8382324
-* (gdb) whatis insn
-* type = rtx
-* (gdb) pr
-* (insn 2181 2180 2191 (parallel[
-*             (set (cc0)
-*                 (compare (reg:SF 8 %st(0))
-*                     (mem:SF (plus:SI (reg:SI 6 %ebp)
-*                             (const_int -9948 [0xffffd924])) 0)))
-*             (clobber (reg:HI 0 %ax))
-*         ] ) 29 {*cmpsf_cc_1} (insn_list 2173 (insn_list 2173 (nil)))
-*     (expr_list:REG_DEAD (reg:DF 8 %st(0))
-*         (expr_list:REG_UNUSED (reg:HI 0 %ax)
-*             (nil))))
-* (gdb)