libI77 bug
Doug Gwyn <gwyn>
gwyn at brl-tgr.ARPA
Sat Jan 19 05:29:18 AEST 1985
There is a bug in the F77 I/O library on UNIX System V Release 2.0
(probably also under other versions of the f77 system).
The bug manifests itself as a spurious "err=" exception from a
formatted read from an internal string. This turns out to be due
to a missing "return 0;" at the end of the z_rnew() function in
source file iio.c. "lint" does not detect this since the function
is invoked indirectly via a pointer; alas, the strict type-checking
is relaxed for functions that are IMPLICITLY declared result type
(int), for backward compatibility with the days before (void).
The following test program tickles the bug:
program main
character arg*11
arg='100'
print 400,arg
read(arg,100,err=4) ll
print 300,ll
stop
4 print 200,arg,ll
stop 'at err=4'
100 format(i6)
200 format(' error, arg=',a,' ll=',i6)
300 format(' ok, ll=',i6)
400 format(' start test,arg=',a)
end
(Actually, the above program ran okay on a PDP-11 but that was just
an accident. It broke on a VAX.)
More information about the Net.bugs.usg
mailing list