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]

egcs-19990502 g77 ICE on Irix6.5 & hpux10.20 & i686-cygwin


The attached source code produces ICE in expand_expr when
compiled with g77 -c .  The similar problem occurs at 3 other
equally or more messy locations in this application.  The
application runs correctly when the .o files which are not built by
egcs-19980502 are built with egcs-1.1.2.

Dr. Timothy C. Prince
Consulting Engineer
Solar Turbines, a Caterpillar Company
alternate e-mail: tprince@computer.org
      subroutine ud0301(xdata ,ydata ,ndata ,xin,yout,slope,nxy,ntype,nw
     &ot)
      implicitreal *4(a-h,o-z)
      real *4xdata (ndata ),ydata (ndata ),xin(nxy),yout(nxy),slope(nxy)
     &,b(21),d(21),m(21)
      if(ntype.ne.1.and.ndata .ge.3)then
	  d(1)= 0.0
	  b(1)= 0.0
	  n= ndata -1
	  do i= 2,n
	      ai= 1/((xdata (i+1)-xdata (i-1))*2-(xdata (i)-xdata (i-1))
     &*b(i-1))
	      b(i)= (xdata (i+1)-xdata (i))*ai
	      d(i)= (6*((ydata (i+1)-ydata (i))/(xdata (i+1)-xdata (i))-
     &(ydata (i)-ydata (i-1))/(xdata (i)-xdata (i-1)))-(xdata (i)-xdata 
     &(i-1))*d(i-1))*ai
23002       enddo
	  old= 0
	  m(ndata )= old
	  do i= ndata -1,1,-1
	      old= d(i)-b(i)*old
	      m(i)= old
23004       enddo
	  do i= 1,nxy
	    if(xin(i).lt.xdata (1).or.xin(i).gt.xdata (ndata ))then
		if(xin(i).lt.xdata (1))then
		    jp= 1
		    kp= 2
		  else
		      jp= ndata 
		      kp= ndata -1
		  endif
		yprime= (ydata (kp)-ydata (jp))/(xdata (kp)-xdata (jp))-
     &m(kp)/6.0*(xdata (kp)-xdata (jp))
		if(nwot.ne.1)then
		  yout(i)= ydata (jp)+(xin(i)-xdata (jp))*yprime
		  endif
		if(nwot.ne.0)then
		  slope(i)= yprime
		  endif
	      else
		  j= 2
		  continue
		  dowhile(xin(i).gt.xdata (j))
		    j= j+1
		    enddo
		  dx= xdata (j)-xdata (j-1)
		  if(nwot.ne.1)then
		    yout(i)= (m(j-1)/6*((xdata (j)-xin(i))**2/dx-dx)+yda
     &ta (j-1)/dx)*(xdata (j)-xin(i))+(m(j)/6.0*((xin(i)-xdata (j-1))**2
     &/dx-dx)+ydata (j)/dx)*(xin(i)-xdata (j-1))
		    endif
		  if(nwot.ne.0)then
		    slope(i)= ((-m(j-1)*(xdata (j)-xin(i))**2+m(j)*(xin(
     &i)-xdata (j-1))**2)*.5+ydata (j)-ydata (j-1))/dx-dx/6.*(m(j)-m(j-1
     &))
		    endif
	      endif
23006       enddo
	else
	  if(ndata .eq.1)then
	    do i= 1,nxy
	      yout(i)= ydata (1)
23024         enddo
	    else
		if(nwot.ne.1)then
		    j= 2
		    do i= 1,nxy
			do j= j,ndata -1
			  if(xin(i).le.xdata (j))then
			    goto 23031 
C break
			    endif
23030                     enddo
23031                     continue
			yout(i)= ydata (j-1)+(ydata (j)-ydata (j-1))/(xd
     &ata (j)-xdata (j-1))*(xin(i)-xdata (j-1))
23028                 enddo
		    if(nwot.ne.2)then
		      return
		      endif
		  endif
		yprime= (ydata (2)-ydata (1))/(xdata (2)-xdata (1))
		do i= 1,nxy
		  slope(i)= yprime
23036             enddo
	    endif
	endif
      return
      end

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