[Bug libfortran/30617] recursive I/O hangs under OSX
kargl at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Feb 8 16:18:00 GMT 2007
------- Comment #20 from kargl at gcc dot gnu dot org 2007-02-08 16:18 -------
(In reply to comment #17)
>
> Now, if Fortran2003 allows some recursive access to the same unit
> (under which conditions?),
Recursive IO to external units is simply not allowed by the Fortran
95 and Fortran 2003 standards. You could wade through Brooks
posts in fortran@ to see where recursion is allowed.
> __gthread_recursive_mutex_t as well as the initializer, perhaps together with
> adding a recursion count (as the recursion count in __gthread_recursive_mutex_t
> isn't portably accessible) to gfc_unit as well. The question is how much is
> libgfortran prepared for changes happening to gfc_unit happening between
> say st_write and st_write_done calls (st_write normally calls get_unit and thus
> acquires gfc_unit's lock, which is held until st_write_done calls unlock_unit).
>
This sound like a performance penalty imposed on anyone writing standard
conforming code to permit nonconforming code to run. The fact
remains that a fortran processor can do anything it wants with nonconforming
code. It might "work" on some architecture and it may "fail" another for
some definition of "work" and "fail". So be it.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30617
More information about the Gcc-bugs
mailing list