This is the mail archive of the 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]
Other format: [Raw text]

Re: PATCH: PR libgfortran/39664: [4.5 Regression] Revision 145571 breaks stdio

Steve Kargl wrote:
On Mon, Apr 06, 2009 at 03:52:19PM -0700, H.J. Lu wrote:
libgfortran shouldn't close them for C library. Before revision 145571,
fd_close handled them correctly.  OK for trunk?

By default, stdin is attached to unit 5 and stdout is attached to unit 6. Does the following work with your patch?

program test
close(6) call sub
end program test
! Write 'help' to unit=6, which should create file 'fort.6'
subroutine sub
write(6) 'help'
end subroutine sub

It should work, though I haven't tested; when you close unit 6, libgfortran goes through the motions as usual, deallocating all the unit structures etc. The only difference is that the corresponding unix fd is really left open, though the library is led to believe it's closed. Then when you do the write(6), it sees that there is no unit 6 open, and opens a new external file (fort.6) which gets assigned whatever fd open() gives it.

Janne Blomqvist

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