------- Comment #12 from brooks at gcc dot gnu dot org 2007-02-07 09:10 ------- (In reply to comment #7) > If I read the F2003 standrad correctly, then > your program conforms to F2003. You may want > to change this to an enhancement request.
This is incorrect -- the code does not conform to F2003 either. Section 9.11, paragraph 3, says that a recursive I/O statement -- that is, one that occurs while another is in progress, such as the "print *, 'test'" in this code -- may not identify an external unit, unless it is a "child I/O statement". Section 9.5.3.7.1, paragarph 2, defines a "child I/O statement" as one that's occuring within a user-defined derived-type I/O function -- which is definitely not applicable here. Therefore, I believe that this bug should be closed as INVALID, but given the amount of commentary (and the fact that hanging is an unfortunate response even to invalid code), I'll let someone else make that call. -- brooks at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |brooks at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30617