gcc/libgfortran
Thomas Koenig 07b3bbf200 re PR libfortran/29568 (implement unformatted files with subrecords (Intel style))
2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/29568
	* gfortran.dg/convert_implied_open.f90:  Change to
	new default record length.
	* gfortran.dg/unf_short_record_1.f90:  Adapt to
	new error message.
	* gfortran.dg/unformatted_subrecords_1.f90:  New test.

2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/29568
	* gfortran.h (gfc_option_t):  Add max_subrecord_length.
	(top level): Define MAX_SUBRECORD_LENGTH.
	* lang.opt:  Add option -fmax-subrecord-length=.
	* trans-decl.c:  Add new function set_max_subrecord_length.
	(gfc_generate_function_code): If we are within the main
	program and max_subrecord_length has been set, call
	set_max_subrecord_length.
	* options.c (gfc_init_options):  Add defaults for
	max_subrecord_lenght, convert and record_marker.
	(gfc_handle_option):  Add handling for
	-fmax_subrecord_length.
	* invoke.texi:  Document the new default for
	-frecord-marker=<n>.

2006-12-01  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/29568
	* libgfortran/libgfortran.h (compile_options_t):  Add
	record_marker. (top level):  Define GFC_MAX_SUBRECORD_LENGTH.
	* runtime/compile_options.c (set_record_marker):  Change
	default to four-byte record marker.
	(set_max_subrecord_length):  New function.
	* runtime/error.c (translate_error):  Change error message
	for short record on unformatted read.
	* io/io.h (gfc_unit):  Add recl_subrecord, bytes_left_subrecord
	and continued.
	* io/file_pos.c (unformatted_backspace):  Change default of record
	marker size to four bytes.  Loop over subrecords.
	* io/open.c:  Default recl is max_offset.  If
	compile_options.max_subrecord_length has been set, set set
	u->recl_subrecord to its value, to the maximum value otherwise.
	* io/transfer.c (top level):  Add prototypes for us_read, us_write,
	next_record_r_unf and next_record_w_unf.
	(read_block_direct):  Separate codepaths for unformatted direct
	and unformatted sequential.  If a recl has been set by the
	user, use the number of bytes left for the record if it is smaller
	than the read request.  Loop over subrecords.  Set an error if the
	user has set a recl and the read was short.
	(write_buf):  Separate codepaths for unformatted direct and
	unformatted sequential. If a recl has been set by the
	user, use the number of bytes left for the record if it is smaller
	than the read request.  Loop over subrecords.  Set an error if the
	user has set a recl and the read was short.
	(us_read):  Add parameter continued (to indicate that bytes_left
	should not be intialized).  Change default of record marker size
	to four bytes. Use subrecord.  If the subrecord length is smaller than
	zero, this indicates a continuation.
	(us_write):  Add parameter continued (to indicate that the continued
	flag should be set).  Use subrecord.
	(pre_position):  Use 0 for continued on us_write and us_read calls.
	(skip_record):  New function.
	(next_record_r_unf):  New function.
	(next_record_r):  Use next_record_r_unf.
	(write_us_marker):  Default size for record markers is four bytes.
	(next_record_w_unf):  New function.
	(next_record_w):  Use next_record_w_unf.

From-SVN: r119412
2006-12-01 21:04:38 +00:00
..
config fpu-387.h: Use previously added SSE code in all cases, as it really is the right thing to do. 2006-04-01 21:24:24 +00:00
generated re PR libfortran/27895 (problem with RESHAPE and zero-sized arrays) 2006-11-03 11:51:09 +00:00
intrinsics Makefile.am: Remove intrinsics/erf.c and intrinsics/bessel.c. 2006-11-25 17:22:53 +00:00
io re PR libfortran/29568 (implement unformatted files with subrecords (Intel style)) 2006-12-01 21:04:38 +00:00
m4 re PR libfortran/27895 (problem with RESHAPE and zero-sized arrays) 2006-11-03 11:51:09 +00:00
runtime re PR libfortran/29568 (implement unformatted files with subrecords (Intel style)) 2006-12-01 21:04:38 +00:00
acinclude.m4 acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from test. 2006-10-06 08:21:22 +00:00
aclocal.m4 configure: Regenerate. 2006-10-29 11:34:53 +00:00
c99_protos.h Makefile.am: Remove intrinsics/erf.c and intrinsics/bessel.c. 2006-11-25 17:22:53 +00:00
ChangeLog re PR libfortran/29568 (implement unformatted files with subrecords (Intel style)) 2006-12-01 21:04:38 +00:00
ChangeLog-2002 * Split the ChangeLog into years. 2006-01-01 17:14:35 +00:00
ChangeLog-2003 * Split the ChangeLog into years. 2006-01-01 17:14:35 +00:00
ChangeLog-2004 * Split the ChangeLog into years. 2006-01-01 17:14:35 +00:00
ChangeLog-2005 * Split the ChangeLog into years. 2006-01-01 17:14:35 +00:00
config.h.in re PR fortran/15441 (RRSPACING broken for denormals) 2006-10-09 20:55:29 +00:00
configure configure: Regenerate. 2006-10-29 11:34:53 +00:00
configure.ac re PR fortran/15441 (RRSPACING broken for denormals) 2006-10-09 20:55:29 +00:00
configure.host acinclude.m4 (LIBGFOR_CHECK_FPSETMASK): New check. 2005-10-28 20:13:20 +00:00
fmain.c Merge tree-ssa-20020619-branch into mainline. 2004-05-13 02:41:07 -04:00
libgfortran.h re PR libfortran/29568 (implement unformatted files with subrecords (Intel style)) 2006-12-01 21:04:38 +00:00
libtool-version etime.c: Remove etime_ 2006-07-15 16:12:15 +00:00
Makefile.am Makefile.am: Remove intrinsics/erf.c and intrinsics/bessel.c. 2006-11-25 17:22:53 +00:00
Makefile.in Makefile.am: Remove intrinsics/erf.c and intrinsics/bessel.c. 2006-11-25 17:22:53 +00:00
mk-kinds-h.sh re PR libfortran/19308 (I/O library should support more real and integer kinds) 2005-10-03 07:22:20 +00:00
mk-sik-inc.sh mk-sik-inc.sh: Use a temporary string instead of 'echo -n'. 2004-09-01 17:51:42 +00:00
mk-srk-inc.sh mk-sik-inc.sh: Use a temporary string instead of 'echo -n'. 2004-09-01 17:51:42 +00:00