egcs-19990502 u77-test.f failure on Irix6.5 -Reply
Tim C Prince
Prince_Tim_C@solarturbines.com
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
end
The addition of the print statement at the end should ensure that
the back end keeps `i' around somewhere. Then, the question
is,
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
calling
ctime swapped (i.e. the subroutine call *before* the function
call).
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
u77-test.f
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