egcs-19990502 u77-test.f failure on Irix6.5 -Reply

Tim C Prince
Mon May 31 21:06:00 GMT 1999

I've attached the result and .s for this Fortran driver; it gives
correct results with the code below, and the '69 result with the
calls switched.

Could y'all retry your test case, changed to look as follows?

      implicit none
      intrinsic time, ctime
      integer i
      character ctim*25, ctim2*25

      i = time ()
      ctim = ctime (i)
      call ctime (ctim2, i)

      print *, 'CTIME()    = ', ctim
      print *, 'CALL CTIME = ', ctim2
      if (ctim .ne. ctim2) then
         print *, 'CTIME() disagrees with CALL CTIME'
      end if
      print *, 'I is ', i


The addition of the print statement at the end should ensure that
the back end keeps `i' around somewhere.  Then, the question
does it properly handle passing the `&((long int *) i)', that is,
the address of the conversion of `i' to `long int', to G77_ctime_0
both times.  And, if not, why not -- is the g77 front end doing
something wrong, or is it the back end?

Also, try the above test case as is, and then with the two lines
ctime swapped (i.e. the subroutine call *before* the function
That might expose where the problem is.

In both cases, let me know how the program behaves *and*
include .s
output (for sparc and Irix6 and, heck, a powerpc system failing
while anyone's at it), as y'all have been doing so far.  That makes
it really easy for me.  (Even though I don't have any docs on Irix6
assembly code, it's easy enough to infer what's going on.)

        tq vm, (burley)

More information about the Gcc-bugs mailing list