This is the mail archive of the gcc-patches@gcc.gnu.org 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]

[libfortran] Patch for EOR related issues


Hi,

this patch fixes all issues I know of that libfortran has with
end-of record handling with formatted I/O, both with advancing
and with non-advancing I/O.

This is *strapped and regression-tested with mainline and 4.0.

I really hope that the FSF will send me the confirmation of my
copyright assignment papers in time for somebody to review this
patch for inclusion in 4.0.  The copyright assignment number is
227228, btw.  I have mailed Ted Teah, but no reply so far.

	Thomas

2005-04-05  Thomas Koenig <Thomas.Koenig@online.de>

	PR libfortran/17992
	PR libfortran/19568
	PR libfortran/19595
	PR libfortran/20005
	PR libfortran/20092
	PR libfortran/20131
	PR libfortran/20138
	PR libfortran/20661
	PR libfortran/20744
	* io/transfer.c (top level): eor_condition: New static variable.
	(read_sf): Remove unnecessary zeroing of buffer (there is enough
	information in its length).
	Return a string of length 0 (to be padded by caller) if EOR was
	seen previously.
	Remove erroneous special casing of EOR for standard input.
	Set eor_condition for non-advancing I/O if an end of line was
	detected.
	Increment ioparm.size if necessary.
	(formatted_transfer):  Skip the function if there is an EOR condition.
	(data_transfer_init):  Initialize eor_condition to zero (false).
	(next_record_r):  Clear sf_seen_eor if a \n has been seen already.
	(finalize_transfer):  If there is an EOR condition, raise the error.

2005-04-05  Thomas Koenig <Thomas.Koenig@online.de>

	PR libfortran/17992
	gfortran.dg/eor_handling_1.f90: New test
	PR libfortran/19568
	gfortran.dg/eor_handling_2.f90: New test
	PR libfortran/19595
	gfortran.dg/eor_handling_3.f90: New test
	PR libfortran/20092, 20131
	gfortran.dg/eor_handling_4.f90: New test
	PR libfortran/20661
	gfortran.dg/eor_handling_5.f90: New test
	PR libfortran/20774
	gfortran.dg/noadv_size.f90: New test
	gfortran.dg/pad_no.f90: New test

Attachment: eor_handling_1.f90
Description: Text document

Attachment: eor_handling_2.f90
Description: Text document

Attachment: eor_handling_3.f90
Description: Text document

Attachment: eor_handling_4.f90
Description: Text document

Attachment: eor_handling_5.f90
Description: Text document

Attachment: noadv_size.f90
Description: Text document

Attachment: pad_no.f90
Description: Text document

Attachment: transfer.c-diff-updated
Description: Text document


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