Commit Graph

626 Commits

Author SHA1 Message Date
Jerry DeLisle a7a8dddd99 re PR fortran/27634 (formatted reading/writing: real format without dot)
2006-05-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/27634
	* io/format.c (parse_format_list): Allow missing period in format only
	if -std=legacy.

From-SVN: r114212
2006-05-29 19:28:48 +00:00
Thomas Koenig 6545ef83c1 string_intrinsics.c (compare_string): Use memcmp instead of strncmp to avoid tripping over CHAR(0) in a string.
2006-05-28  Thomas Koenig  <Thomas.Koenig@online.de>

	* intrinsics/string_intrinsics.c (compare_string):
	Use memcmp instead of strncmp to avoid tripping over
	CHAR(0) in a string.

2006-05-28  Thomas Koenig  <Thomas.Koenig@online.de>

	* gfortran.dg/string_null_compare_1.f:  New test case.

From-SVN: r114175
2006-05-28 20:25:15 +00:00
Janne Blomqvist 59c0928b6a io.h (find_or_create_unit): Correct export declaration.
2006-05-27  Janne Blomqvist  <jb@gcc.gnu.org>

	* io/io.h (find_or_create_unit): Correct export declaration.

From-SVN: r114151
2006-05-27 11:36:49 +03:00
Janne Blomqvist 647e11bb64 libgfortran ChangeLog:
2006-05-27  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsics/abort.c (abort_): Remove.

testsuite ChangeLog:

2006-05-27  Janne Blomqvist  <jb@gcc.gnu.org>

	* gfortran.dg/hollerith_f95.f90: Add -fall-intrinsics.
	* gfortran.dg/byte_1.f90: Likewise.
	* gfortran.dg/dup_save_2.f90: Likewise.

From-SVN: r114150
2006-05-27 10:11:29 +03:00
Janne Blomqvist dd46a4ded1 configure.ac: Remove AC_FUNC_MMAP.
2006-05-26  Janne Blomqvist  <jb@gcc.gnu.org>

	* configure.ac: Remove AC_FUNC_MMAP.
	* configure: Regenerated.
	* Makefile.in: Regenerated.
	* config.h.in: Regenerated.
	* aclocal.m4: Regenerated.

From-SVN: r114137
2006-05-26 22:12:08 +03:00
François-Xavier Coudert e803fecc52 * ChangeLog: fix previous incorrect entry.
From-SVN: r114114
2006-05-25 12:47:38 +00:00
Francois-Xavier Coudert 71d4afdc0e associated (associated): Zero-sized arrays should not be reported as ASSOCIATED.
* intrinsics/associated (associated): Zero-sized arrays should
	not be reported as ASSOCIATED.

From-SVN: r114113
2006-05-25 12:47:08 +00:00
Carlos O'Donell f635a77220 Makefile.am: Add install-html target.
2006-05-24  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.am: Add install-html target. Add install-html to .PHONY
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.

From-SVN: r114049
2006-05-24 18:37:53 +00:00
Jerry DeLisle 25292a1bf1 re PR libfortran/24459 ([4.1 Only] gfortran namelist problem)
2006-05-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/24459
	* io/list_read.c (nml_parse_qualifier): Leave loop spec end value
	at default value unless -std=f95 or if an array section
	is specified in namelist input.  Warn if -pedantic.
	* io/io.h (st_parameter_dt): Add expanded_read flag.

From-SVN: r113924
2006-05-20 07:14:50 +00:00
Jerry DeLisle 8bf6519618 re PR libfortran/22423 (Warnings when building libgfortran)
2006-05-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/22423
	* io/transfer.c (read_block): Return NULL instead of nothing.

From-SVN: r113923
2006-05-20 03:29:58 +00:00
Jerry DeLisle cacf2b9638 re PR libfortran/27575 (gfortran - does not generate error when trying to read too much data)
2006-05-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/27575
	* io/transfer.c (read_block):  Add check for end file condition.
	(read_block_direct): Add check for end file condition.

From-SVN: r113837
2006-05-17 00:36:53 +00:00
Francois-Xavier Coudert 1633cb7cb6 re PR libfortran/26985 (incorrect matmul result)
PR libfortran/26985

	* m4/matmul.m4: Correct the condition for the memset call,
	and remove the unneeded call to size0.
	* generated/matmul_r4.c: Regenerate.
	* generated/matmul_r8.c: Regenerate.
	* generated/matmul_r10.c: Regenerate.
	* generated/matmul_r16.c: Regenerate.
	* generated/matmul_c4.c: Regenerate.
	* generated/matmul_c8.c: Regenerate.
	* generated/matmul_c10.c: Regenerate.
	* generated/matmul_c16.c: Regenerate.
	* generated/matmul_i4.c: Regenerate.
	* generated/matmul_i8.c: Regenerate.
	* generated/matmul_i16.c: Regenerate.

	* gfortran.dg/matmul_2.f90: New test.

From-SVN: r113552
2006-05-05 11:08:23 +00:00
Jerry DeLisle 4e72e1c5a2 re PR libfortran/27360 (Memory leaks when reading logicals)
2006-04-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/27360
	
	* io/list_read.c (read_logical):  Free line_buffer and free saved.

From-SVN: r113388
2006-04-30 03:19:37 +00:00
Jerry DeLisle c4ee121ad5 re PR fortran/27304 (gfortran: Warn/abort when format in write does not fit passed arguments)
2006-04-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/27304
	* io/transfer.c (formatted_transfer_scalar):  Generate error if data
	descriptors are exhausted.
	* io/format.c (next_format0): Fix comment.

From-SVN: r113363
2006-04-28 23:55:30 +00:00
Jerry DeLisle 54ffdb125c re PR libfortran/20257 (Fortran runtime error: End of record occurs when writing large arrays)
2006-04-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/20257
	* io/io.h: Add prototypes for get_internal_unit and free_internal_unit.
	* io/unit.c (get_internal_unit): Initialize unit number, not zero.
	(free_internal_unit): New function to consolidate freeing memory.
	(get_unit): Initialize internal_unit_desc to NULL when unit is
	external.
	* io/unix.c (mem_close): Check for not NULL before freeing memory.
	* io/transfer.c (read_block): Reset bytes_left and skip error if unit
	is preconnected and default record length is reached.
	(read_block_direct): Ditto.
	(write_block): Ditto.
	(write_buf): Ditto.
	(data_transfer_init): Only flush if not internal unit.
	(finalize_transfer): Ditto and delete code to free memory used by
	internal units.
	(st_read_done): Use new function - free_internal_unit.
	(st_write_done): Use new function - free_internal unit.

From-SVN: r113190
2006-04-23 02:04:58 +00:00
Jakub Jelinek 6d360fd8f2 re PR fortran/26769 (Implement transpose() and reshape() for real instead of using integer)
PR fortran/26769
	* iresolve.c (gfc_resolve_reshape): Use reshape_r16 for real(16).
	(gfc_resolve_transpose): Use transpose_r16 for real(16).

	* Makefile.am (i_transpose_c): Add generated/transpose_r16.c.
	(i_reshape_c): Add generated/reshape_r16.c.
	* Makefile.in: Regenerated.
	* generated/transpose_r16.c: Generated new file.
	* generated/redhape_r16.c: Generated new file.

From-SVN: r113169
2006-04-22 09:08:58 +02:00
Jerry DeLisle 9855448d22 re PR fortran/27138 (gfortran: read(*,*) myInt advances only one character on error)
2006-04-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/27138
	* io/list_read.c (eat_line): New function.
	(parse_repeat): Use new function and free_saved.
	(read_logical): Same.
	(read_integer): Use new function.
	(parse_real): Use nml_bad_return and new function.
	(read_complex): Use new function and free_saved.
	(read_real): Same.

From-SVN: r112999
2006-04-17 02:33:51 +00:00
Jerry DeLisle 6f34d6e078 re PR fortran/26766 ([F2003] Recursive I/O still (again) broken)
2006-04-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/26766
	* io/io.h: Add bit to identify associated unit as internal.
	* io/unit.c (get_external_unit): Renamed the find_unit_1 function to
	reflect the external unit functionality vs internal unit.
	(get_internal_unit): New function to allocate and initialize an internal
	unit structure.
	(get_unit): Use get_internal_unit and get_external_unit.
	(is_internal_unit): Revised to use new bit added in io.h.
	* io/transfer.c (data_transfer_init): Fix line width.
	(st_read_done): Free memory allocated for internal unit.
	(st_write_done): Add test to only flush and truncate when not an
	internal unit.  Free memory allocated for internal unit.

From-SVN: r112914
2006-04-13 06:24:58 +00:00
Jakub Jelinek ebf85e50c0 io.h (st_parameter_dt): Revert 2005-12-10 change to u.pad, fix comment.
* io/io.h (st_parameter_dt): Revert 2005-12-10 change to
	u.pad, fix comment.
	(check_st_parameter_dt): New compile time assert.

From-SVN: r112850
2006-04-11 09:15:00 +02:00
Jakub Jelinek 55fc9243b7 re PR libfortran/24685 (real(16) formatted input is broken for huge values (gfortran.dg/default_format_2.f90))
PR libgfortran/24685
	* io/write.c (MIN_FIELD_WIDTH, STR, STR1): Define.
	(output_float): Increase buffer sizes for IEEE quad and IBM extended
	long double.
	(write_real): Output REAL(16) as 1PG43.34E4 rather than 1PG40.31E4.

From-SVN: r112819
2006-04-10 14:02:55 +02:00
Jerry DeLisle 967d4d456c re PR libfortran/26890 (SIZE parameter interacts with same variable in IO list character length specification.)
2006-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/26890
	* io/io.h: Revert change to pad size made on 2006-03-30.
	Add comment explaining dependency with fortran/trans-io.c.

From-SVN: r112769
2006-04-07 23:05:12 +00:00
Jerry DeLisle 5eb90a1cbc write.c (output_float): Update condition to not error when decimal precision in format specifier is zero.
2006-04-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* io/write.c (output_float): Update condition to not error when
	decimal precision in format specifier is zero.

From-SVN: r112656
2006-04-04 02:50:23 +00:00
Francois-Xavier Coudert 24726083a4 fpu-387.h: Use previously added SSE code in all cases, as it really is the right thing to do.
* config/fpu-387.h: Use previously added SSE code in all
	cases, as it really is the right thing to do.

From-SVN: r112610
2006-04-01 21:24:24 +00:00
Jerry DeLisle d57d342432 re PR libfortran/26890 (SIZE parameter interacts with same variable in IO list character length specification.)
2006-03-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/26890
	* io/io.h: Add size_used to st_parameter_dt, adjust pad size.
	*io/transfer.c (data_transfer_init): Initialize size_used to zero.
	(read_sf): Use size_used.
	(read_block): Likewise.
	(read_block_direct): Likewise.
	(write_block): Likewise.
	(write_buf): Likewise and eliminate erroneous FAILURE return.
	(finalize_transfer): Assign value of size_used to *dtp->size.

From-SVN: r112570
2006-03-31 05:11:03 +00:00
Francois-Xavier Coudert 7d30b888b5 re PR libfortran/26712 (gfortran on mac intel runtime floating point exception when printing)
PR libfortran/26712
	* config/fpu-387.h: Add special case for handling of SSE
	control bit on i386-darwin.

From-SVN: r112546
2006-03-30 22:00:21 +00:00
Thomas Koenig 6b86a9bc05 re PR fortran/25031 ([4.1 only] Allocatable array can be reallocated.)
2006-03-30  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/25031
	* runtime/memory.c (allocate_array):  If stat is present and
	the variable is already allocated, free the variable, do
	the allocation and set stat.
	(allocate_array_64):  Likewise.  Whitespace fix.

2006-03-30  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/25031
	* gfortran.dg/multiple_allocation_1.f90:  Check that the
	size has changed after a re-allocation with stat.

From-SVN: r112539
2006-03-30 16:30:26 +00:00
Jerry DeLisle ef6fa01d3a re PR libfortran/26880 (Can't read after non-advancing write with rewind)
2006-03-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/26880
	* io/file_pos.c (st_rewind): Clear read_bad flag.

From-SVN: r112407
2006-03-27 05:59:37 +00:00
Jerry DeLisle 0853054e96 re PR libfortran/26661 (Sequential formatted read goes too far)
2006-03-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/26661
	* io/io.h: Add read_sf so it can be used by read_x.
	* io/transfer.c (read_sf): Pass no_error flag to read_sf.  Use it to
	break out rather than error on EOF or EOR conditions.
	(read_block): Update call to read_sf.
	(read_block_direct): Ditto.
	* io/read.c (read_x): Use the modified read_sf instead of read_block.

From-SVN: r112390
2006-03-26 02:15:44 +00:00
Thomas Koenig 5068c62534 re PR libfortran/26735 ([4.1 only] -fconvert=swap and implied open)
2006-03-25  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/26735
	* io/transfer.c (data_transfer_init):  Set u_flags.convert
	on an unopened unit if specified by environment variable
	(via get_unformatted_convert) or by compile-time option.

2006-03-25  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/26735
	* gfortran.dg/convert_implied_open.f90:  New test case.

From-SVN: r112382
2006-03-25 21:31:48 +00:00
Thomas Koenig 9a0fb43ea1 re PR fortran/26769 (Implement transpose() and reshape() for real instead of using integer)
2006-03-25  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/26769
	* iresolve.c (gfc_resolve_reshape):  Remove doubling of
	kind for complex. For real(kind=10), call reshape_r10.
	(gfc_resolve_transpose):  For real(kind=10), call
	transpose_r10.

2006-03-25  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/26769
	* Makefile.am:  Add transpose_r10.c and reshape_r10.c.
	* aclocal.m4:  Regenerate using aclocal 1.9.3.
	* Makefile.in:  Regenerate using automake 1.9.3.
	* m4/iparm.m4 (rtype_ccode):  If rtype_letter is `i',
	evaluate to rtype_kind, otherwise to rtype_code.
	* generated/transpose_r10.c:  Add.
	* generated/reshape_r10.c:  Add.

2006-03-25  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/26769
	* gfortran.dg/transpose_reshape_r10.f90:  New test case.

From-SVN: r112381
2006-03-25 21:15:48 +00:00
Thomas Koenig d67ab5eef8 [multiple changes]
2006-03-22  Thomas Koenig  <Thomas.Koenig@onlien.de>

	PR fortran/19303
	* gfortran.h (gfc_option_t):  Add record_marker.
	* lang.opt:  Add -frecord-marker=4 and -frecord-marker=8.
	* trans-decl.c:  Add gfor_fndecl_set_record_marker.
	(gfc_build_builtin_function_decls): Set
	gfor_fndecl_set_record_marker.
	(gfc_generate_function_code):  If we are in the main program
	and -frecord-marker was provided, call set_record_marker.
	* options.c (gfc_handle_option):  Add handling for
	-frecord-marker=4 and -frecord-marker=8.
	* invoke.texi:  Document -frecord-marker.

2006-03-22  Thomas Koenig  <Thomas.Koenig@onlien.de>

	PR fortran/19303
	* libgfortran.h (compile_options_t):  Add record_marker.
	* runtime/compile_options.c (set_record_marker):
	New function.
	* io/open.c:  If we have four-byte record markers, use
	GFC_INTEGER_4_HUGE as default record length.
	* io/file_pos.c (unformatted_backspace):  Handle
	different size record markers.
	* io/transfer.c (us_read):  Likewise.
	(us_write):  Likewise.
	(next_record_r):  Likewise.
	(write_us_marker):  Likewise.
	(next_record_w):  Likewise.

2006-03-22  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/19303
	* gfortran.dg/record_marker_1.f90:  New test case.
	* gfortran.dg/record_marker_2.f:  New test case.
	* gfortran.dg/record_marker_3.f90:  New test case.

From-SVN: r112290
2006-03-22 19:09:11 +00:00
Thomas Koenig 97a6203866 re PR fortran/20935 (failed assertion for maxloc(n, mask=.true.))
2006-03-20  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/20935
	* iresolve.c (gfc_resolve_maxloc):   If mask is scalar,
	prefix the function name with an "s".  If the mask is scalar
	or if its kind is smaller than gfc_default_logical_kind,
	coerce it to default kind.
	(gfc_resolve_maxval):  Likewise.
	(gfc_resolve_minloc):  Likewise.
	(gfc_resolve_minval):  Likewise.
	(gfc_resolve_product):  Likewise.
	(gfc_resolve_sum):  Likewise.

2006-03-20  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/20935
	* m4/iforeach.m4:  Add SCALAR_FOREACH_FUNCTION macro.
	* m4/ifunction.m4:  Add SCALAR_ARRAY_FUNCTION macro.
	* m4/minloc0.m4:  Use SCALAR_FOREACH_FUNCTION.
	* m4/minloc1.m4:  Use SCALAR_ARRAY_FUNCTION.
	* m4/maxloc0.m4:  Use SCALAR_FOREACH_FUNCTION.
	* m4/maxloc1.m4:  Use SCALAR_ARRAY_FUNCTION.
	* m4/minval.m4:  Likewise.
	* m4/maxval.m4:  Likewise.
	* m4/product.m4:  Likewise.
	* m4/sum.m4:  Likewise.
	* minloc0_16_i16.c : Regenerated.
	* minloc0_16_i4.c : Regenerated.
	* minloc0_16_i8.c : Regenerated.
	* minloc0_16_r10.c : Regenerated.
	* minloc0_16_r16.c : Regenerated.
	* minloc0_16_r4.c : Regenerated.
	* minloc0_16_r8.c : Regenerated.
	* minloc0_4_i16.c : Regenerated.
	* minloc0_4_i4.c : Regenerated.
	* minloc0_4_i8.c : Regenerated.
	* minloc0_4_r10.c : Regenerated.
	* minloc0_4_r16.c : Regenerated.
	* minloc0_4_r4.c : Regenerated.
	* minloc0_4_r8.c : Regenerated.
	* minloc0_8_i16.c : Regenerated.
	* minloc0_8_i4.c : Regenerated.
	* minloc0_8_i8.c : Regenerated.
	* minloc0_8_r10.c : Regenerated.
	* minloc0_8_r16.c : Regenerated.
	* minloc0_8_r4.c : Regenerated.
	* minloc0_8_r8.c : Regenerated.
	* minloc1_16_i16.c : Regenerated.
	* minloc1_16_i4.c : Regenerated.
	* minloc1_16_i8.c : Regenerated.
	* minloc1_16_r10.c : Regenerated.
	* minloc1_16_r16.c : Regenerated.
	* minloc1_16_r4.c : Regenerated.
	* minloc1_16_r8.c : Regenerated.
	* minloc1_4_i16.c : Regenerated.
	* minloc1_4_i4.c : Regenerated.
	* minloc1_4_i8.c : Regenerated.
	* minloc1_4_r10.c : Regenerated.
	* minloc1_4_r16.c : Regenerated.
	* minloc1_4_r4.c : Regenerated.
	* minloc1_4_r8.c : Regenerated.
	* minloc1_8_i16.c : Regenerated.
	* minloc1_8_i4.c : Regenerated.
	* minloc1_8_i8.c : Regenerated.
	* minloc1_8_r10.c : Regenerated.
	* minloc1_8_r16.c : Regenerated.
	* minloc1_8_r4.c : Regenerated.
	* minloc1_8_r8.c : Regenerated.
	* maxloc0_16_i16.c : Regenerated.
	* maxloc0_16_i4.c : Regenerated.
	* maxloc0_16_i8.c : Regenerated.
	* maxloc0_16_r10.c : Regenerated.
	* maxloc0_16_r16.c : Regenerated.
	* maxloc0_16_r4.c : Regenerated.
	* maxloc0_16_r8.c : Regenerated.
	* maxloc0_4_i16.c : Regenerated.
	* maxloc0_4_i4.c : Regenerated.
	* maxloc0_4_i8.c : Regenerated.
	* maxloc0_4_r10.c : Regenerated.
	* maxloc0_4_r16.c : Regenerated.
	* maxloc0_4_r4.c : Regenerated.
	* maxloc0_4_r8.c : Regenerated.
	* maxloc0_8_i16.c : Regenerated.
	* maxloc0_8_i4.c : Regenerated.
	* maxloc0_8_i8.c : Regenerated.
	* maxloc0_8_r10.c : Regenerated.
	* maxloc0_8_r16.c : Regenerated.
	* maxloc0_8_r4.c : Regenerated.
	* maxloc0_8_r8.c : Regenerated.
	* maxloc1_16_i16.c : Regenerated.
	* maxloc1_16_i4.c : Regenerated.
	* maxloc1_16_i8.c : Regenerated.
	* maxloc1_16_r10.c : Regenerated.
	* maxloc1_16_r16.c : Regenerated.
	* maxloc1_16_r4.c : Regenerated.
	* maxloc1_16_r8.c : Regenerated.
	* maxloc1_4_i16.c : Regenerated.
	* maxloc1_4_i4.c : Regenerated.
	* maxloc1_4_i8.c : Regenerated.
	* maxloc1_4_r10.c : Regenerated.
	* maxloc1_4_r16.c : Regenerated.
	* maxloc1_4_r4.c : Regenerated.
	* maxloc1_4_r8.c : Regenerated.
	* maxloc1_8_i16.c : Regenerated.
	* maxloc1_8_i4.c : Regenerated.
	* maxloc1_8_i8.c : Regenerated.
	* maxloc1_8_r10.c : Regenerated.
	* maxloc1_8_r16.c : Regenerated.
	* maxloc1_8_r4.c : Regenerated.
	* maxloc1_8_r8.c : Regenerated.
	* maxval_i16.c : Regenerated.
	* maxval_i4.c : Regenerated.
	* maxval_i8.c : Regenerated.
	* maxval_r10.c : Regenerated.
	* maxval_r16.c : Regenerated.
	* maxval_r4.c : Regenerated.
	* maxval_r8.c : Regenerated.
	* minval_i16.c : Regenerated.
	* minval_i4.c : Regenerated.
	* minval_i8.c : Regenerated.
	* minval_r10.c : Regenerated.
	* minval_r16.c : Regenerated.
	* minval_r4.c : Regenerated.
	* minval_r8.c : Regenerated.
	* sum_c10.c : Regenerated.
	* sum_c16.c : Regenerated.
	* sum_c4.c : Regenerated.
	* sum_c8.c : Regenerated.
	* sum_i16.c : Regenerated.
	* sum_i4.c : Regenerated.
	* sum_i8.c : Regenerated.
	* sum_r10.c : Regenerated.
	* sum_r16.c : Regenerated.
	* sum_r4.c : Regenerated.
	* sum_r8.c : Regenerated.
	* product_c10.c : Regenerated.
	* product_c16.c : Regenerated.
	* product_c4.c : Regenerated.
	* product_c8.c : Regenerated.
	* product_i16.c : Regenerated.
	* product_i4.c : Regenerated.
	* product_i8.c : Regenerated.
	* product_r10.c : Regenerated.
	* product_r16.c : Regenerated.
	* product_r4.c : Regenerated.
	* product_r8.c : Regenerated.

2006-03-20  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/20935
	* gfortran.dg/scalar_mask_2.f90:  New test case.

From-SVN: r112230
2006-03-20 21:56:00 +00:00
Jerry DeLisle 54f9e2781e re PR fortran/26509 (incorrect behaviour of error-handler for direct access write)
2006-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/26509
	* libgfortran.h: Add ERROR_DIRECT_EOR.
	* runtime/error.c (translate_error): Add translation for new error.
	* io/transfer.c (write_buf): Add check for EOR when mode is 
	direct access.

From-SVN: r112198
2006-03-18 01:56:07 +00:00
Janne Blomqvist a277877c31 Re-add ChangeLog entry that somehow managed to get itself missing in action.
From-SVN: r112068
2006-03-14 22:49:52 +02:00
Paul Thomas a4b9e93e5d re PR libfortran/25378 ([Fortran 2003] maxloc for all-false mask)
2006-03-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/25378
	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set the initial position to zero and
	modify the condition for updating it, to implement the F2003 requirement for all(mask)
	is false.

2006-03-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/25378
	* libgfortran/m4/minloc1.m4: Set the initial position to zero and modify the condition for
	updating it, to implement the F2003 requirement for all(mask).eq.false.
	* libgfortran/m4/maxloc1.m4: The same.
	* libgfortran/m4/iforeach.m4: The same.
	* libgfortran/m4/minloc0.m4: The same.
	* libgfortran/m4/maxloc0.m4: The same.
	* libgfortran/generated/maxloc0_16_i16.c: Regenerated, together with 41 others.
	* libgfortran/generated/minloc0_16_i16.c: Regenerated, together with 41 others.

2006-03-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/25378
	* gfortran.fortran-torture/execute/intrinsic_mmloc_3.f90: Expand test to include more
	permuatations of mask and index.
	* testsuite/gfortran.dg/scalar_mask_1.f90: Modify last test to respond to F2003 spec.
	that the position returned for an all false mask && condition is zero.

From-SVN: r112028
2006-03-13 22:49:56 +00:00
Jerry DeLisle 99c6db71de re PR libfortran/26499 (gfortran - End of File incorrectly positioned after binary I/O.)
2006-03-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/26499
	* io/file_pos (st_rewind): Flush always.
	* io/unix.c (fd_truncate): Return SUCCESS rather than FAILURE for
	special files like /dev/null.
	* io/transfer.c (st_write_done): Remove broken logic that prevented
	calling fd_truncate.

From-SVN: r111924
2006-03-10 03:15:36 +00:00
Jerry DeLisle 03e957f8c8 re PR fortran/26554 ([gfortran] incorrect behaviour when reading a logical variable from a string)
2006-03-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/26554
	* io/list_read.c (read_logical): Return the value if not in namelist
	mode.

From-SVN: r111738
2006-03-05 17:54:07 +00:00
Thomas Koenig 5b725b8d04 re PR fortran/25031 ([4.1 only] Allocatable array can be reallocated.)
2006-03-03  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/25031
	* trans-array.h:  Adjust gfc_array_allocate prototype.
	* trans-array.c (gfc_array_allocate):  Change type of
	gfc_array_allocatate to bool.  Function returns true if
	it operates on an array.  Change second argument to gfc_expr.
	Find last reference in chain.
	If the function operates on an allocatable array, emit call to
	allocate_array() or allocate64_array().
	* trans-stmt.c (gfc_trans_allocate):  Code to follow to last
	reference has been moved to gfc_array_allocate.
	* trans.h:  Add declaration for gfor_fndecl_allocate_array and
	gfor_fndecl_allocate64_array.
	(gfc_build_builtin_function_decls):  Add gfor_fndecl_allocate_array
	and gfor_fndecl_allocate64_array.

2006-03-03  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/25031
	* runtime/memory.c:  Adjust copyright years.
	(allocate_array):  New function.
	(allocate64_array):  New function.
	* libgfortran.h (error_codes):  Add ERROR_ALLOCATION.

2006-03-03  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/25031
	* multiple_allocation_1.f90:  New test.

From-SVN: r111677
2006-03-03 16:18:46 +00:00
Jerry DeLisle c9f15d9c0e re PR libfortran/26136 (List directed input with underfilled (logicals) array read incorrectly)
2006-02-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/26136
	* io/io.h: Add flag for reading from line_buffer.
	* io/list_read.c (l_push_char): New function to save namelist
	input when reading logicals.
	(free_line): New function to free line_buffer memory.
	(next_char): Added feature to read from line_buffer.
	(read_logical): Use new functions to test for '=' after reading a
	logical value, checking for possible variable name.
	(namelist_read): Use free_line when all done.

From-SVN: r111597
2006-03-01 06:04:45 +00:00
Jerry DeLisle 9985dd8aaf re PR libfortran/26464 (Runtime I/O error/invald argument on READ)
2006-02-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/26464
	* io/file_pos.c (st_backspace): Flush and truncate file
	when in AFTER_ENDFILE condition.
	* io/transfer.c (st_read_done): Remove flush, no longer needed.

From-SVN: r111506
2006-02-28 02:07:00 +00:00
Jerry DeLisle c5418dcb96 re PR libfortran/26423 (Error on binary I/O for large array)
2006-02-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/26423
	* io/unix.c (fd_seek): Revert change from 25949.
	(fd_read): Same.
	(fd_write): Same.

From-SVN: r111420
2006-02-24 18:16:25 +00:00
François-Xavier Coudert 8f0d39a86b re PR libfortran/21303 (L edit descriptor without a width)
PR libfortran/21303

	* gfortran.h (notification): New enumeration.
	(gfc_notification_std): Prototype for the new function.
	* error.c (gfc_notification_std): New function.
	* io.c (check_format): Handle the case of a L format descriptor
	without a width.

	* runtime/error.c (notification_std): New function.
	* libgfortran.h (notification): New enumeration.
	* io/io.h (notification_std): Prototype for the new function. 
	* io/format.c (parse_format_list): Handle the case of a L format
	descriptor without a width.

	* gcc/testsuite/gfortran.dg/fmt_l.f90: New test.

From-SVN: r111281
2006-02-19 21:31:02 +00:00
Francois-Xavier Coudert c05f6d04cb * io/open.c (edit_modes): Correct abusive copy-pasting.
From-SVN: r111266
2006-02-19 10:23:28 +00:00
Francois-Xavier Coudert 83d38ece09 re PR libfortran/24903 (dotprod should use __builtin_conj)
PR libfortran/24903
	* m4/dotprodc.m4: Use __builtin_conj instead of assigning real
	and imaginary parts separately.
	* generated/dotprod_c4.c: Regenerated.
	* generated/dotprod_c8.c: Regenerated.
	* generated/dotprod_c10.c: Regenerated.
	* generated/dotprod_c16.c: Regenerated.

From-SVN: r111131
2006-02-16 07:52:22 +00:00
Janne Blomqvist 82b8244c51 re PR libfortran/25949 (Unbounded I/O buffer memory usage for formatted IO)
2006-02-12  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libgfortran/25949
	* io/io.h: Add set function pointer to struct stream.  
	* io/unix.c (fd_seek): Only update offset, don't seek.
	(fd_sset): New function.
	(fd_read): Call lseek directly if necessary.
	(fd_write): Likewise.
	(fd_open): Set pointer to fd_sset.
	(mem_set): New function.
	(open_internal): Set pointer to mem_set.
	* io/transfer.c (write_block_direct): Rename to write_buf, add
	error return, non-pointer length argument.
	(unformatted_write): Update to use write_buf.
	(us_write): Simplify by using swrite instead of salloc_w.
	(write_us_marker): New function.
	(new_record_w): Use sset instead of memset, use write_us_marker,
	simplify by using swrite instead of salloc_w.

From-SVN: r110895
2006-02-12 21:59:32 +02:00
François-Xavier Coudert 5f8f531322 re PR libfortran/25425 ([4.1 only] F95 and F2003 differ on list-directed output for 0.0)
PR libfortran/25425

	* trans-decl.c (gfc_generate_function_code): Add new argument,
	pedantic, to set_std call.

	* libgfortran.h: Add pedantic field to compile_options struct.
	* io/write.c (calculate_G_format): Depending on the standard,
	choose E or F format for list-directed output of 0.0.
	* runtime/error.c (notify_std): Make warning and error dependent
	on pedanticity.
	* runtime/compile_options.c (set_std): Use new pedantic argument.

From-SVN: r110769
2006-02-08 20:54:14 +00:00
Tobias Schlüter 43ff4e9aa3 re PR libfortran/25577 (gfortran routine mvbits returns wrong answer.)
libgfortran/
2006-02-07  Dale Ranta  <dir@lanl.gov>

	PR fortran/25577
	* intrinsics/mvbits.c: Shift '(TYPE)1' type when building 'lenmask'.

testsuite/
2006-02-07  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>

	PR fortran/25577
	* gfortran.dg/mvbits_1.f90: New.

Also fixed Dirk Mueller's preceding ChangeLog entry.

From-SVN: r110728
2006-02-08 00:52:37 +01:00
Rainer Emrich 0e5264e8ea c99_functions.c: Work around incompatible declarations of cabs{,f,l} on pre-C99 IRIX systems.
2006-02-07  Rainer Emrich <r.emrich@de.tecosim.com>

	* intrinsics/c99_functions.c: Work around incompatible
        declarations of cabs{,f,l} on pre-C99 IRIX systems.

From-SVN: r110700
2006-02-07 18:26:54 +01:00
Thomas Koenig eaa90d25da re PR fortran/23815 (Add -byteswapio flag)
2005-02-06  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/23815
	* gfortran.texi: Document the GFORTRAN_CONVERT_UNIT environment
	variable.
	* invoke.texi:  Mention the "Runtime" chapter.
	Document the -fconvert= option.
	* gfortran.h:  Add options_convert.
	* lang.opt:  Add fconvert=little-endian, fconvert=big-endian,
	fconvert=native and fconvert=swap.
	* trans-decl.c (top level):  Add gfor_fndecl_set_convert.
	(gfc_build_builtin_function_decls):  Set gfor_fndecl_set_convert.
	(gfc_generate_function_code):  If -fconvert was specified,
	and this is the main program, add a call to set_convert().
	* options.c:  Handle the -fconvert options.

2005-02-06  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/23815
	* runtime/environ.c (init_unformatted):  Add GFORTRAN_CONVERT_UNIT
	environment variable.
	(top level):  Add defines, type and static variables for
	GFORTRAN_CONVERT_UNIT handling.
	(search_unit):  New function.
	(match_word): New function.
	(match_integer): New function.
	(next_token): New function.
	(push_token): New function.
	(mark_single): New function.
	(mark_range): New funciton.
	(do_parse): New function.
	(init_unformatted): New function.
	(get_unformatted_convert): New function.
	* runtime/compile_options.c:  Add set_convert().
	* libgfortran.h:  Add convert to compile_options_t.
	* io/open.c (st_open): Call get_unformatted_convert to get
	unit default; if CONVERT_NONE is returned, check for
	the presence of a CONVERT specifier and use it.
	As default, use compile_options.convert.
	* io/io.h (top level): Add CONVERT_NONE to unit_convert, to signal
	"nothing has been set".
	(top level): Add prototype for get_unformatted_convert.

2005-02-06  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/23815
	* unf_io_convert_4.f90:  New test.

From-SVN: r110664
2006-02-06 20:12:44 +00:00
Francois-Xavier Coudert df6ea78456 re PR libfortran/24685 (real(16) formatted input is broken for huge values (gfortran.dg/default_format_2.f90))
PR libfortran/24685

	* io/write.c (write_real): Widen the default format for real(10)
	variables output.

	* gfortran.dg/large_real_kind_form_io_2.f90: New test.

From-SVN: r110627
2006-02-05 23:04:07 +00:00
Jerry DeLisle dd9cf77f3c ChangeLog: Remove garbage text from one entry.
2006-01-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	* ChangeLog: Remove garbage text from one entry.

From-SVN: r110381
2006-01-29 22:17:22 +00:00
Jerry DeLisle ecc9e67eef re PR libfortran/25835 (Segfault or Bad Address error on unformatted sequential READ)
2006-01-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25835
	* io/transfer.c (st_read_done): Flush buffers when read is done.

From-SVN: r110200
2006-01-25 01:19:11 +00:00
Jerry DeLisle 7b7034ea9a re PR libfortran/25697 (libfortran - Segmentation fault/ Bad Address on unformatted read)
2006-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25697
	* io/transfer.c (us_read): Detect end of file condition from previous
	operations and bail out (no need to pre-position).

From-SVN: r109870
2006-01-18 06:21:28 +00:00
Jerry DeLisle 272c35bd98 re PR libfortran/25631 (tl format specifier not working correctly)
2006-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25631
	* io/transfer.c (formatted_transfer_scalar): Adjust pending_spaces and
	skips so that TL works correctly when no bytes_used yet.

From-SVN: r109858
2006-01-18 00:52:21 +00:00
Roger Sayle d1f37bc642 configure.ac (CFLAGS): Update to include -std=gnu99 so that the configure tests will be run with the...
* configure.ac (CFLAGS): Update to include -std=gnu99 so that
	the configure tests will be run with the same environment as
	used to compile the libgfortran source code.
	* configure: Regenerate.

From-SVN: r109774
2006-01-16 22:03:14 +00:00
Roger Sayle edf8dc34ff c99_functions.c: Add function prototypes to avoid warnings from -Wstrict-prototypes...
* intrinsics/c99_functions.c: Add function prototypes to avoid
	warnings from -Wstrict-prototypes -Wmissing-prototypes.  On Tru64
	work around a brain-dead libm by redirecting calls to cabs{,f,l}
	to a local __gfc_cabs{,f,l}.

From-SVN: r109646
2006-01-12 17:37:47 +00:00
Janne Blomqvist 8c7ffa93a8 configure.ac: Remove check for sys/mman.h.
2006-01-07  Janne Blomqvist  <jb@gcc.gnu.org>

	* configure.ac: Remove check for sys/mman.h.
	* configure: Regenerated.
	* Makefile.in: Regenerated.
	* config.h.in: Regenerated.
	* aclocal.m4: Regenerated.

From-SVN: r109455
2006-01-07 21:28:22 +02:00
Jerry DeLisle b184f89b8a Fix date.
From-SVN: r109447
2006-01-07 01:22:50 +00:00
Tobias Schlüter cc4bb878f1 Fix previous ChangeLog entry
From-SVN: r109417
2006-01-06 13:31:17 +01:00
Jerry DeLisle 9696b2257c re PR libfortran/25598 (gfortran - Fortran runtime error: Invalid argument)
2006-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25598
	* io/file_pos.c (unformatted_backspace): Assure the new file position
	to seek is not less than zero.
	(st_backspace): Set unit bytes_left to zero.
	* io/transfer.c (next_record_r): Fix line lengths, no functional change.

From-SVN: r109405
2006-01-06 01:39:34 +00:00
Paolo Bonzini 4c4b3eb0fc re PR libgomp/25259 (bootstrap failures on non-C99 platforms (no stdint.h))
config:
2006-01-02  Paolo Bonzini  <bonzini@gnu.org>

	PR target/25259
	* stdint.m4: New.

gcc:
2006-01-02  Paolo Bonzini  <bonzini@gnu.org>

	PR target/25259
	* Makefile.in (DECNUMINC): Include libdecnumber's build directory.

libgfortran:
2006-01-02  Paolo Bonzini  <bonzini@gnu.org>

	PR target/25259
	* configure.ac: Use GCC_HEADER_STDINT.
	* libgfortran.h: Include gstdint.h.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

libdecnumber:
2006-01-02  Paolo Bonzini  <bonzini@gnu.org>

	PR target/25259
	* configure.ac: Use GCC_HEADER_STDINT.
	* decContext.h: Include gstdint.h.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

From-SVN: r109241
2006-01-02 18:53:27 +00:00
Steven G. Kargl f1d592bed3 * Split the ChangeLog into years.
From-SVN: r109225
2006-01-01 17:14:35 +00:00
Jerry DeLisle a7c633eaef re PR libfortran/25594 (LAPACK regression in schkbl.f)
2005-12-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25594
	PR libgfortran/25419
	* io/list_read.c (list_formatted_read_scalar): Test for comma to return
	a null value (default). Revert patch of 25419 on 2005-12-28.

From-SVN: r109211
2006-01-01 02:45:22 +00:00
Jerry DeLisle 844234fb50 re PR libfortran/25139 ("Invalid argument" error on I/O)
2005-12-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25139
	* io/unix.c (fd_truncate): Set s->active to zero.
	PR libgfortran/25510
	* libgfortran.h: Add ERROR_INTERNAL and ERROR_INTERNAL_UNIT.
	* runtime/error.c (translate_error): Add messages for new errors.
	* io/list_read.c (next_char): Use new errors.
	* io/transfer.c (next_record_r) (next_record_w): Use new errors.

From-SVN: r109122
2005-12-28 20:58:08 +00:00
Jerry DeLisle b5918dea9c re PR libfortran/25550 (file data corrupted after reading end of file)
2005-12-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25550
	* io/file_pos.c (st_rewind): Reset bytes left so no error occurs in
	next_record_r.

From-SVN: r109101
2005-12-28 07:20:19 +00:00
Jerry DeLisle 93f006d8e3 re PR libfortran/25419 (gfortran read does not take comma for default on one entry)
2005-12-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25419
	* io/list_read.c (list_formatted_read_scalar): Allow comma to return a
	null value (default).

From-SVN: r109099
2005-12-28 06:59:35 +00:00
Jerry DeLisle 8ad4c89538 re PR libfortran/25307 (internal read with end=label aborts)
2005-12-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25307
	* io/list_read.c (next_char): Handle end-of-file conditions for
	internal units and add support for internal character array units.

From-SVN: r108938
2005-12-22 02:32:29 +00:00
Jerry DeLisle 0a73639369 re PR libfortran/25463 (T edit descriptor and ADVANCE="no")
2005-12-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25463
	* io/transfer.c (finalize_transfer): Fix execution order so that
	next_record is set to zero in all cases.

From-SVN: r108784
2005-12-19 06:52:33 +00:00
Jerry DeLisle 494ef4c254 re PR fortran/25264 (write to internal unit from the string itself gives wrong result ?)
2005-12-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25264
	PR libgfortran/25349
	* io/unit.c (get_unit): Delete code that cleared the string when the
	unit was opened, which is too soon.
	* io/transfer.c (next_record_w): Pass done flag in.  Change logic for
	setting max_pos.  Add code to position unit and pad record as needed.

From-SVN: r108671
2005-12-16 19:32:21 +00:00
Jakub Jelinek 78fdb6d283 re PR libfortran/24991 (gfortran build fails with - error:gthr-default.h: No such file or directory)
PR libfortran/24991
	* acinclude.m4 (LIBGFOR_CHECK_PRAGMA_WEAK): Rename to...
	(LIBGFOR_GTHREAD_WEAK): ... this.  Define SUPPORTS_WEAK rather
	than HAVE_PRAGMA_WEAK.  Define GTHREAD_USE_WEAK to 0 on hosts
	that shouldn't use weak in gthr.h.
	* configure.ac: Use LIBGFOR_GTHREAD_WEAK instead of
	LIBGFOR_CHECK_PRAGMA_WEAK.
	* config.h.in: Regenerated.
	* configure: Regenerated.
	* io/io.h (SUPPORTS_WEAK): Don't define here.

	* intrinsics/ftell.c (ftell, FTELL_SUB): Add unlock_unit call.
	* intrinsics/fget.c (fgetc, fputs): Likewise.
	* intrinsics/tty.c (ttynam): Likewise.

From-SVN: r108471
2005-12-13 09:31:41 +01:00
Richard Sandiford 1524f80b1c Make-lang.in (fortran/trans-resolve.o): Depend on fortran/dependency.h.
gcc/fortran/
	* Make-lang.in (fortran/trans-resolve.o): Depend on
	fortran/dependency.h.
	* gfortran.h (gfc_expr): Add an "inline_noncopying_intrinsic" flag.
	* dependency.h (gfc_get_noncopying_intrinsic_argument): Declare.
	(gfc_check_fncall_dependency): Change prototype.
	* dependency.c (gfc_get_noncopying_intrinsic_argument): New function.
	(gfc_check_argument_var_dependency): New function, split from
	gfc_check_fncall_dependency.
	(gfc_check_argument_dependency): New function.
	(gfc_check_fncall_dependency): Replace the expression parameter with
	separate symbol and argument list parameters.  Generalize the function
	to handle dependencies for any type of expression, not just variables.
	Accept a further argument giving the intent of the expression being
	tested.  Ignore	intent(in) arguments if that expression is also
	intent(in).
	* resolve.c: Include dependency.h.
	(find_noncopying_intrinsics): New function.
	(resolve_function, resolve_call): Call it on success.
	* trans-array.h (gfc_conv_array_transpose): Declare.
	(gfc_check_fncall_dependency): Remove prototype.
	* trans-array.c (gfc_conv_array_transpose): New function.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Don't use the
	libcall handling if the expression is to be evaluated inline.
	Add a case for handling inline transpose()s.
	* trans-expr.c (gfc_trans_arrayfunc_assign): Adjust for the new
	interface provided by gfc_check_fncall_dependency.

libgfortran/
	* m4/matmul.m4: Use a different order in the special case of a
	transposed first argument.
	* generated/matmul_c4.c, generated/matmul_c8.c, generated/matmul_c10.c,
	* generated/matmul_c16.c, generated/matmul_i4.c, generated/matmul_i8.c,
	* generated/matmul_i10.c, generated/matmul_r4.c, generated/matmul_r8.c
	* generated/matmul_r10.c, generated/matmul_r16.c: Regenerated.

Co-Authored-By: Victor Leikehman <LEI@il.ibm.com>

From-SVN: r108459
2005-12-13 05:23:12 +00:00
Janne Blomqvist cef578a882 Forgot ChangeLog for 108359
From-SVN: r108361
2005-12-11 00:05:55 +02:00
Janne Blomqvist 74f04a6a44 Makefile.am: Enable loop unrolling for matmul.
2005-12-10  Janne Blomqvist  <jb@gcc.gnu.org>

	* Makefile.am: Enable loop unrolling for matmul.
	* configure: Regenerated.
	* Makefile.in: Regenerated.
	* aclocal.m4: Regenerated.

From-SVN: r108359
2005-12-10 23:22:16 +02:00
Thomas Koenig 181c9f4a9b re PR fortran/23815 (Add -byteswapio flag)
2005-12-10  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/23815
	* io.c (top level):  Add convert to io_tag.
	(resolve_tag):  convert is GFC_STD_GNU.
	(match_open_element):  Add convert.
	(gfc_free_open):  Likewise.
	(gfc_resolve_open):  Likewise.
	(gfc_free_inquire):  Likewise.
	(match_inquire_element):  Likewise.
	* dump-parse-tree.c (gfc_show_code_node):  Add
	convet for open and inquire.
	gfortran.h: Add convert to gfc_open and gfc_inquire.
	* trans-io.c (gfc_trans_open):  Add convert.
	(gfc_trans_inquire):  Likewise.
	* ioparm.def:  Add convert to open and inquire.
	* gfortran.texi:  Document CONVERT.

2005-12-10  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/23815
	* io/file_pos.c (unformatted_backspace):  If flags.convert
	does not equal CONVERT_NATIVE, reverse the record marker.
	* io/open.c:  Add convert_opt[].
	(st_open):  If no convert option is given, set CONVERT_NATIVE.
	If CONVERT_BIG or CONVERT_LITTLE are given, set flags.convert to
	CONVERT_NATIVE or CONVERT_SWAP (depending on wether we have
	a big- or little-endian system).
	* io/transfer.c (unformatted_read):  Remove unused attribute
	from arguments.
	If we need to reverse
	bytes, break up large transfers into a loop.  Split complex
	numbers into its two parts.
	(unformatted_write):  Likewise.
	(us_read):  If flags.convert does not equal CONVERT_NATIVE,
	reverse the record marker.
	(next_record_w): Likewise.
	(reverse_memcpy):  New function.
	* io/inquire.c (inquire_via_unit):  Implement convert.
	* io/io.h (top level):  Add enum unit_convert.
	Add convert to st_parameter_open and st_parameter_inquire.
	Define IOPARM_OPEN_HAS_CONVERT and IOPARM_INQUIRE_HAS_CONVERT.
	Increase padding for st_parameter_dt.
	Declare reverse_memcpy().

2005-12-10  Thomas Koenig  <Thomas.Koenig@online.de>

	PR fortran/23815
	* gfortran.dg/unf_io_convert_1.f90:  New test.
	* gfortran.dg/unf_io_convert_2.f90:  New test.
	* gfortran.dg/unf_io_convert_3.f90:  New test.

From-SVN: r108358
2005-12-10 20:01:56 +00:00
Jakub Jelinek 891c05b102 re PR libfortran/24991 (gfortran build fails with - error:gthr-default.h: No such file or directory)
PR libfortran/24991
	* acinclude.m4: Include acx.m4 and no-executables.m4.
	* configure.ac: Add GCC_TOPLEVEL_SUBDIRS.
	* configure: Rebuilt.
	* Makefile.am (AM_CPPFLAGS): Use $(host_subdir) in build dir
	path.
	* Makefile.in: Rebuilt.

From-SVN: r108280
2005-12-09 14:50:11 +01:00
Jerry DeLisle b14c7e14ab re PR libfortran/25039 ([4.1 only] comma short-circuit field width)
2005-12-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25039
	* io/io.h: Create a new flag sf_read_comma to control comma
	separators in numeric reads.
	* io/transfer.c (formatted_transfer_scalar): Initialize the flag.
	(read_sf): Check for commas coming in and if the flag is set,
	shortcut the read.
	* io/read.c (read_a) (read_x): Clear the flag for character reads and
	reset it after the reads.

From-SVN: r108271
2005-12-09 02:53:41 +00:00
Francois-Xavier Coudert 93af36c5c1 format.c: Removing unused code.
* io/format.c: Removing unused code.
	* intrinsics/random.c: Likewise.

From-SVN: r108014
2005-12-04 18:13:59 +00:00
Janne Blomqvist cc21057721 Add forgotten ChangeLog entry:
2005-11-27  Janne Blomqvist  <jb@gcc.gnu.org>

	* m4/ifunction.m4: Add const restrict to function arguments.
	* m4/iforeach.m4: Likewise.
	* m4/eoshift1.m4: Likewise.
	* m4/eoshift3.m4: Likewise.
	* m4/dotprod.m4: Likewise.
	* m4/dotprodc.m4: Likewise.
	* m4/dotprodl.m4: Likewise.
	* m4/shape.m4: Likewise.
	* m4/cshift1.m4: Likewise.
	* m4/reshape.m4: Likewise.
	* m4/transpose.m4: Likewise.
	* generated/eoshift*: Regenerated
	* generated/dotprod*: Likewise.
	* generated/shape*: Likewise.
	* generated/cshift1*: Likewise.
	* generated/reshape*: Likewise.
	* generated/transpose*: Likewise.

From-SVN: r107912
2005-12-02 20:23:06 +02:00
Francois-Xavier Coudert cc0de35e81 re PR libfortran/25116 ([4.0] namelist read from non-opened file)
PR libfortran/25116
	* io/transfer.c (data_transfer_init): Don't set the default for
	namelist I/O on preconnected files to UNFORMATTED.

From-SVN: r107900
2005-12-02 16:46:49 +00:00
Eric Botcazou a488b14d1b libgfortran.h (ILP32 typedefs): Define _UINT8_T, _UINT32_T and _UINT64_T on Solaris.
* libgfortran.h (ILP32 typedefs): Define _UINT8_T, _UINT32_T and
	_UINT64_T on Solaris.

From-SVN: r107708
2005-11-30 08:45:25 +00:00
Steven G. Kargl 9852c209be re PR fortran/25149 (Compiler dies on -std=f95)
2005-11-28  Steven G. Kargl  <kargls@comcast.net>

	PR libgfortran/25149
	* intrinsics/abort.c: Add external abort_ to allow linking when 
	invoking -std=f95 in testsuite.

From-SVN: r107655
2005-11-29 05:52:57 +00:00
Jakub Jelinek e669bd2b69 acinclude.m4 (LIBGFOR_CHECK_PRAGMA_WEAK): Rename to...
libfortran/24991
	* acinclude.m4 (LIBGFOR_CHECK_PRAGMA_WEAK): Rename to...
	(LIBGFOR_GTHREAD_WEAK): ... this.  Define SUPPORTS_WEAK rather
	than HAVE_PRAGMA_WEAK.  Define GTHREAD_USE_WEAK to 0 on hosts
	that shouldn't use weak in gthr.h.
	* configure.ac: Use LIBGFOR_GTHREAD_WEAK instead of
	LIBGFOR_CHECK_PRAGMA_WEAK.
	* config.h.in: Regenerated.
	* configure: Regenerated.
	* io/io.h (SUPPORTS_WEAK): Don't define here.

From-SVN: r107616
2005-11-28 20:51:02 +01:00
Jakub Jelinek 401cd90a90 ftell.c (ftell, FTELL_SUB): Add unlock_unit call.
* intrinsics/ftell.c (ftell, FTELL_SUB): Add unlock_unit call.
	* intrinsics/fget.c (fgetc, fputs): Likewise.
	* intrinsics/tty.c (ttynam): Likewise.

From-SVN: r107595
2005-11-28 08:16:33 +01:00
Jerry DeLisle ee17607ab3 re PR fortran/25109 (formatted reads with embedded blanks in input fields)
2005-11-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/25109
	* io/unit.c (init_units): Set default flag to BLANK_NULL per
	requirement of F95 standard.  Set PAD_YES for stdin.

From-SVN: r107588
2005-11-28 00:23:28 +00:00
David Edelsohn a0ba8cb101 random.c: Include config.h
* intrinsics/random.c: Include config.h
        * io/size_from_kind.c: Include config.h and libgfortran.h
        * io/io.h: Revert 2005-11-21 change.

From-SVN: r107577
2005-11-27 17:09:40 -05:00
Janne Blomqvist 64acfd9910 libgfortran ChangeLog:
2005-11-27  Janne Blomqvist  <jb@gcc.gnu.org>

	* m4/*: Add const restrict to function arguments.
	* generated/*.c: Regenerate.

From-SVN: r107573
2005-11-27 23:03:33 +02:00
Francois-Xavier Coudert b87ff3358b * io/write.c (namelist_write): Correct type in previous commit.
From-SVN: r107564
2005-11-27 11:56:25 +00:00
Francois-Xavier Coudert 8824fd4cc1 re PR libfortran/24919 ([4.0] CRLF support in libgfortran)
PR libfortran/24919

	* io/list_read.c (eat_separator, finish_separator,
	read_character): Handle CRLF separators correctly during reads.
	(nml_query): Use the HAVE_CRLF macro to print adequate newlines.
	* io/io.h (st_parameter_dt): Add comment about the possible
	values for sf_seen_eor.
	* io/unix.c (tempfile, regular_file): HAVE_CRLF doesn't imply
	that O_BINARY is defined, so we add that condition.
	(stream_at_bof): Fix typo in comment.
	* io/transfer.c (read_sf): Handle correctly CRLF, setting
	sf_seen_eor value to 2 instead of 1.
	(formatted_transfer_scalar): Use the sf_seen_eor value to
	handle CRLF the right way.
	* io/write.c (nml_write_obj, namelist_write): Use CRLF as newline
	when HAVE_CRLF is defined.

	* gfortran.dg/ftell_1.f90: Modify testcase so that it doesn't
	fail on CRLF platforms.
	* gfortran.dg/ftell_2.f90: Likewise.

From-SVN: r107563
2005-11-27 11:42:46 +00:00
Richard Henderson e9af03e0bc list_read.c (nml_parse_qualifier): Use ssize_t instead of int in dtp->u.p.value.
* io/list_read.c (nml_parse_qualifier): Use ssize_t instead of int
        in dtp->u.p.value.

From-SVN: r107545
2005-11-26 14:54:14 -08:00
Janne Blomqvist cea51b427a libgfortran ChangeLog:
2005-11-26  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libgfortran/24945
	* io/open.c (edit_modes): Check for STATUS_UNKNOWN flag.
	
testsuite ChangeLog

2005-11-26  Janne Blomqvist  <jb@gcc.gnu.org>

	PR libgfortran/24945
	* gfortran.dg/open_status_2.f90: New test.

From-SVN: r107538
2005-11-26 11:12:36 +02:00
Richard Henderson b90ba157c1 list_read.c (nml_parse_qualifier): Use memcpy to extract values from dtp->u.p.value.
* io/list_read.c (nml_parse_qualifier): Use memcpy to extract
        values from dtp->u.p.value.
        * io/io.h (struct st_parameter_dt): Change reversion_flag, first_item,
        seen_dollar, sf_seen_eor, eor_condition, no_leading_blank, char_flag,
        input_complete, at_eol, comma_flag, namelist_mode, nml_read_error to
        single-bit fields.  Move value to where it'll be at least pointer
        aligned.

From-SVN: r107520
2005-11-25 14:15:20 -08:00
Alan Modra 1ed1c7ce30 open.c (new_unit): Use the right unit number when checking for stdin, stdout, stderr.
* io/open.c (new_unit): Use the right unit number when checking
	for stdin, stdout, stderr.

From-SVN: r107413
2005-11-23 20:48:11 +10:30
Jerry DeLisle c4a108fd8e re PR libfortran/24794 (problem with namelist input of character array)
2005-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/24794
	* io/list_read.c (read_character): Add auto completion on short
	namelist reads.

From-SVN: r107394
2005-11-23 02:02:31 +00:00
David Edelsohn 73e5b024f8 io.h (_LARGE_FILES): Undefine for AIX.
* io/io.h (_LARGE_FILES): Undefine for AIX.
        (_LARGE_FILE_API): Define for AIX.

From-SVN: r107380
2005-11-22 17:45:10 -05:00
Jakub Jelinek 5e805e44c0 re PR fortran/14943 (read/write code generation is not thread safe)
gcc/fortran/
	PR fortran/14943
	PR fortran/21647
	* Make-lang.in (fortran/trans-io.o): Depend on fortran/ioparm.def.
	* dump-parse-tree.c (gfc_show_code_node): Dump c->block for
	EXEC_{READ,WRITE,IOLENGTH} nodes.
	* io.c (terminate_io, match_io, gfc_match_inquire): Put data
	transfer commands into EXEC_{READ,WRITE,IOLENGTH}'s code->block.
	* resolve.c (resolve_blocks): Handle EXEC_{READ,WRITE,IOLENGTH}.
	* trans-io.c (ioparm_unit, ioparm_err, ioparm_end, ioparm_eor,
	ioparm_list_format, ioparm_library_return, ioparm_iostat,
	ioparm_exist, ioparm_opened, ioparm_number, ioparm_named,
	ioparm_rec, ioparm_nextrec, ioparm_size, ioparm_recl_in,
	ioparm_recl_out, ioparm_iolength, ioparm_file, ioparm_file_len,
	ioparm_status, ioparm_status_len, ioparm_access, ioparm_access_len,
	ioparm_form, ioparm_form_len, ioparm_blank, ioparm_blank_len,
	ioparm_position, ioparm_position_len, ioparm_action,
	ioparm_action_len, ioparm_delim, ioparm_delim_len, ioparm_pad,
	ioparm_pad_len, ioparm_format, ioparm_format_len, ioparm_advance,
	ioparm_advance_len, ioparm_name, ioparm_name_len,
	ioparm_internal_unit, ioparm_internal_unit_len,
	ioparm_internal_unit_desc, ioparm_sequential, ioparm_sequential_len,
	ioparm_direct, ioparm_direct_len, ioparm_formatted,
	ioparm_formatted_len, ioparm_unformatted, ioparm_unformatted_len,
	ioparm_read, ioparm_read_len, ioparm_write, ioparm_write_len,
	ioparm_readwrite, ioparm_readwrite_len, ioparm_namelist_name,
	ioparm_namelist_name_len, ioparm_namelist_read_mode, ioparm_iomsg,
	ioparm_iomsg_len, ioparm_var): Remove.
	(enum ioparam_type, enum iofield_type, enum iofield,
	enum iocall): New enums.
	(gfc_st_parameter_field, gfc_st_parameter): New typedefs.
	(st_parameter, st_parameter_field, iocall): New variables.
	(ADD_FIELD, ADD_STRING): Remove.
	(dt_parm, dt_post_end_block): New variables.
	(gfc_build_st_parameter): New function.
	(gfc_build_io_library_fndecls): Use it.  Initialize iocall
	array rather than ioparm_*, add extra first arguments to
	the function types.
	(set_parameter_const): New function.
	(set_parameter_value): Add type argument, return a bitmask.
	Changed to set a field in automatic structure variable rather
	than set a field in a global _gfortran_ioparm variable.
	(set_parameter_ref): Likewise.  If requested var has different
	size than what field should point to, call with a temporary and
	then copy into the user variable.  Add postblock argument.
	(set_string): Remove var_len argument, add type argument, return
	a bitmask.  Changed to set fields in automatic structure variable
	rather than set a field in a global _gfortran_ioparm variable.
	(set_internal_unit): Remove iunit, iunit_len, iunit_desc arguments,
	add var argument.  Return a bitmask.  Changed to set fields in
	automatic structure variable rather than set a field in a global
	_gfortran_ioparm variable.
	(set_flag): Removed.
	(io_result): Add var argument.  Changed to read common.flags field
	from automatic structure variable and bitwise AND it with 3.
	(set_error_locus): Add var argument.  Changed to set fields in
	automatic structure variable rather than set a field in a global
	_gfortran_{filename,line} variables.
	(gfc_trans_open): Use gfc_start_block rather than gfc_init_block.
	Create a temporary st_parameter_* structure.  Adjust callers of
	all above mentioned functions.  Pass address of the temporary
	variable as first argument to the generated function call.
	Use iocall array rather than ioparm_* separate variables.
	(gfc_trans_close, build_filepos, gfc_trans_inquire): Likewise.
	(build_dt): Likewise.  Change first argument to tree from tree *.
	Don't dereference code->ext.dt if last_dt == INQUIRE.  Emit
	IOLENGTH argument setup here.  Set dt_parm/dt_post_end_block
	variables and gfc_trans_code the nested data transfer commands
	in code->block.
	(gfc_trans_iolength): Just set last_dt and call build_dt immediately.
	(transfer_namelist_element): Pass address of dt_parm variable
	to generated functions.  Use iocall array rather than ioparm_*
	separate variables.
	(gfc_trans_backspace, gfc_trans_endfile, gfc_trans_rewind,
	gfc_trans_flush, gfc_trans_read, gfc_trans_write): Use iocall array
	rather than ioparm_* separate variables.
	(gfc_trans_dt_end): Likewise.  Pass address of dt_parm variable
	as first argument to generated function.  Adjust io_result caller.
	Prepend dt_post_end_block before io_result code.
	(transfer_expr): Use iocall array rather than ioparm_* separate
	variables.  Pass address of dt_parm variables as first argument
	to generated functions.
	* ioparm.def: New file.
gcc/testsuite/
	PR fortran/24774
	* gfortran.dg/inquire_9.f90: New test.

	PR fortran/21647
	* gfortran.fortran-torture/execute/inquire_5.f90: New test.
libgfortran/
	PR fortran/24774
	PR fortran/14943
	PR fortran/21647
	* Makefile.am (AM_CPPFLAGS): Add gcc directories as -I paths,
	add -D_GNU_SOURCE.
	* Makefile.in: Regenerated.
	* acinclude.m4 (LIBGFOR_CHECK_SYNC_FETCH_AND_ADD,
	LIBGFOR_CHECK_GTHR_DEFAULT, LIBGFOR_CHECK_PRAGMA_WEAK): New macros.
	* configure.ac: Add them.
	* configure: Rebuilt.
	* config.h.in: Rebuilt.
	* libtool-version: Bump libgfortran.so SONAME to libgfortran.so.1.
	* libgfortran.h (library_start, show_locus, internal_error,
	generate_error, find_option): Add st_parameter_common * argument.
	(library_end): Change into a dummy macro.
	* io/io.h: Include gthr.h.
	(SUPPORTS_WEAK): Define if HAVE_PRAGMA_WEAK.
	(CHARACTER): Remove define.
	(st_parameter, global_t): Remove typedef.
	(ioparm, g, ionml, current_unit): Remove variables.
	(init_error_stream): Remove prototype.
	(CHARACTER1, CHARACTER2): Define.
	(st_parameter_common, st_parameter_open, st_parameter_close,
	st_parameter_filepos, st_parameter_inquire, st_parameter_dt): New
	typedefs.
	(IOPARM_LIBRETURN_MASK, IOPARM_LIBRETURN_OK, IOPARM_LIBRETURN_ERROR,
	IOPARM_LIBRETURN_END, IOPARM_LIBRETURN_EOR, IOPARM_ERR, IOPARM_END,
	IOPARM_EOR, IOPARM_HAS_IOSTAT, IOPARM_HAS_IOMSG, IOPARM_COMMON_MASK,
	IOPARM_OPEN_HAS_RECL_IN, IOPARM_OPEN_HAS_FILE, IOPARM_OPEN_HAS_STATUS,
	IOPARM_OPEN_HAS_ACCESS, IOPARM_OPEN_HAS_FORM, IOPARM_OPEN_HAS_BLANK,
	IOPARM_OPEN_HAS_POSITION, IOPARM_OPEN_HAS_ACTION,
	IOPARM_OPEN_HAS_DELIM, IOPARM_OPEN_HAS_PAD, IOPARM_CLOSE_HAS_STATUS,
	IOPARM_INQUIRE_HAS_EXIST, IOPARM_INQUIRE_HAS_OPENED,
	IOPARM_INQUIRE_HAS_NUMBER, IOPARM_INQUIRE_HAS_NAMED,
	IOPARM_INQUIRE_HAS_NEXTREC, IOPARM_INQUIRE_HAS_RECL_OUT,
	IOPARM_INQUIRE_HAS_FILE, IOPARM_INQUIRE_HAS_ACCESS,
	IOPARM_INQUIRE_HAS_FORM, IOPARM_INQUIRE_HAS_BLANK,
	IOPARM_INQUIRE_HAS_POSITION, IOPARM_INQUIRE_HAS_ACTION,
	IOPARM_INQUIRE_HAS_DELIM, IOPARM_INQUIRE_HAS_PAD,
	IOPARM_INQUIRE_HAS_NAME, IOPARM_INQUIRE_HAS_SEQUENTIAL,
	IOPARM_INQUIRE_HAS_DIRECT, IOPARM_INQUIRE_HAS_FORMATTED,
	IOPARM_INQUIRE_HAS_UNFORMATTED, IOPARM_INQUIRE_HAS_READ,
	IOPARM_INQUIRE_HAS_WRITE, IOPARM_INQUIRE_HAS_READWRITE,
	IOPARM_DT_LIST_FORMAT, IOPARM_DT_NAMELIST_READ_MODE,
	IOPARM_DT_HAS_REC, IOPARM_DT_HAS_SIZE, IOPARM_DT_HAS_IOLENGTH,
	IOPARM_DT_HAS_FORMAT, IOPARM_DT_HAS_ADVANCE,
	IOPARM_DT_HAS_INTERNAL_UNIT, IOPARM_DT_HAS_NAMELIST_NAME,
	IOPARM_DT_IONML_SET): Define.
	(gfc_unit): Add lock, waiting and close fields.  Change file
	from flexible array member into pointer to char.
	(open_external): Add st_parameter_open * argument.
	(find_file, file_exists): Add file and file_len arguments.
	(flush_all_units): New prototype.
	(max_offset, unit_root, unit_lock): New variable.
	(is_internal_unit, is_array_io, next_array_record,
	parse_format, next_format, unget_format, format_error,
	read_block, write_block, next_record, convert_real,
	read_a, read_f, read_l, read_x, read_radix, read_decimal,
	list_formatted_read, finish_list_read, namelist_read,
	namelist_write, write_a, write_b, write_d, write_e, write_en,
	write_es, write_f, write_i, write_l, write_o, write_x, write_z,
	list_formatted_write, get_unit): Add st_parameter_dt * argument.
	(insert_unit): Remove prototype.
	(find_or_create_unit, unlock_unit): New prototype.
	(new_unit): Return gfc_unit *.  Add st_parameter_open *
	and gfc_unit * arguments.
	(free_fnodes): Remove prototype.
	(free_format_data): New prototype.
	(scratch): Remove.
	(init_at_eol): Remove prototype.
	(free_ionml): New prototype.
	(inc_waiting_locked, predec_waiting_locked, dec_waiting_unlocked):
	New inline functions.
	* io/unit.c (max_offset, unit_root, unit_lock): New variables.
	(insert): Adjust os_error caller.
	(insert_unit): Made static.  Allocate memory here, initialize
	lock and after inserting it return it, locked.
	(delete_unit): Adjust for deletion of g.
	(find_unit_1): New function.
	(find_unit): Use it.
	(find_or_create_unit): New function.
	(get_unit): Add dtp argument, change meaning of the int argument
	as creation request flag.  Adjust for different st_* calling
	conventions, lock internal unit's lock before returning it
	and removal of g.  Call find_unit_1 instead of find_unit.
	(is_internal_unit, is_array_io): Add dtp argument, adjust for
	removal of most of global variables.
	(init_units): Initialize unit_lock.  Adjust insert_unit callers
	and adjust for g removal.
	(close_unit_1): New function.
	(close_unit): Use it.
	(unlock_unit): New function.
	(close_units): Lock unit_lock, use close_unit_1 rather than
	close_unit.
	* io/close.c (st_close): Add clp argument.  Adjust for new
	st_* calling conventions and internal function API changes.
	* io/file_pos.c (st_backspace, st_endfile, st_rewind, st_flush):
	Add fpp argument.  Adjust for new st_* calling conventions and
	internal function API changes.
	(formatted_backspace, unformatted_backspace): Likewise.  Add
	u argument.
	* io/open.c (edit_modes, st_open): Add opp argument.  Adjust for
	new st_* calling conventions and internal function API changes.
	(already_open): Likewise.  If not HAVE_UNLINK_OPEN_FILE, unlink
	scratch file.  Instead of calling close_unit just call sclose,
	free u->file if any and clear a few u fields before calling
	new_unit.
	(new_unit): Return gfc_unit *.  Add opp and u arguments.
	Adjust for new st_* calling conventions and internal function
	API changes.  Don't allocate unit here, rather than work with
	already created unit u already locked on entry.  In case
	of failure, close_unit it.
	* io/unix.c: Include unix.h.
	(BUFFER_SIZE, unix_stream): Moved to unix.h.
	(unit_to_fd): Add unlock_unit call.
	(tempfile): Add opp argument, use its fields rather than ioparm.
	(regular_file): Likewise.
	(open_external): Likewise.  Only unlink file if fd >= 0.
	(init_error_stream): Add error argument, set structure it points
	to rather than filling static variable and returning its address.
	(FIND_FILE0_DECL, FIND_FILE0_ARGS): Define.
	(find_file0): Use them.  Don't crash if u->s == NULL.
	(find_file): Add file and file_len arguments, use them instead
	of ioparm.  Add locking.  Pass either an array of 2 struct stat
	or file and file_len pair to find_file0.
	(flush_all_units_1, flush_all_units): New functions.
	(file_exists): Add file and file_len arguments, use them instead
	of ioparm.
	* io/unix.h: New file.
	* io/lock.c (ioparm, g, ionml): Remove variables.
	(library_start): Add cmp argument, adjust for new st_* calling
	conventions.
	(library_end): Remove.
	(free_ionml): New function.
	* io/inquire.c (inquire_via_unit, inquire_via_filename,
	st_inquire): Add iqp argument, adjust for new st_* calling
	conventions and internal function API changes.
	* io/format.c (FARRAY_SIZE): Decrease to 64.
	(fnode_array, format_data): New typedefs.
	(avail, array, format_string, string, error, saved_token, value,
	format_string_len, reversion_ok, saved_format): Remove variables.
	(colon_node): Add const.
	(free_fnode, free_fnodes): Remove.
	(free_format_data): New function.
	(next_char, unget_char, get_fnode, format_lex, parse_format_list,
	format_error, parse_format, revert, unget_format, next_test): Add
	fmt or dtp arguments, pass it all around, adjust for internal
	function API changes and adjust for removal of global variables.
	(next_format): Likewise.  Constify return type.
	(next_format0): Constify return type.
	* io/transfer.c (current_unit, sf_seen_eor, eor_condition, max_pos,
	skips, pending_spaces, scratch, line_buffer, advance_status,
	transfer): Remove variables.
	(transfer_integer, transfer_real, transfer_logical,
	transfer_character, transfer_complex, transfer_array, current_mode,
	read_sf, read_block, read_block_direct, write_block,
	write_block_direct, unformatted_read, unformatted_write,
	type_name, write_constant_string, require_type,
	formatted_transfer_scalar, us_read, us_write, pre_position,
	data_transfer_init, next_record_r, next_record_w, next_record,
	finalize_transfer, iolength_transfer, iolength_transfer_init,
	st_iolength, st_iolength_done, st_read, st_read_done, st_write,
	st_write_done, st_set_nml_var, st_set_nml_var_dim,
	next_array_record): Add dtp argument, pass it all around, adjust for
	internal function API changes and removal of global variables.
	* io/list_read.c (repeat_count, saved_length, saved_used,
	input_complete, at_eol, comma_flag, last_char, saved_string,
	saved_type, namelist_mode, nml_read_error, value, parse_err_msg,
	nml_err_msg, prev_nl): Remove variables.
	(push_char, free_saved, next_char, unget_char, eat_spaces,
	eat_separator, finish_separator, nml_bad_return, convert_integer,
	parse_repeat, read_logical, read_integer, read_character,
	parse_real, read_complex, read_real, check_type,
	list_formatted_read_scalar, list_formatted_read, finish_list_read,
	find_nml_node, nml_untouch_nodes, nml_match_name, nml_query,
	namelist_read): Add dtp argument, pass it all around, adjust for
	internal function API changes and removal of global variables.
	(nml_parse_qualifier): Likewise.  Add parse_err_msg argument.
	(nml_read_obj): Likewise.  Add pprev_nl, nml_err_msg, clow and
	chigh arguments.
	(nml_get_obj_data): Likewise.  Add pprev_nl and nml_err_msg
	arguments.
	(init_at_eol): Removed.
	* io/read.c (convert_real, read_l, read_a, next_char, read_decimal,
	read_radix, read_f, read_x): Add dtp argument, pass it all around,
	adjust for internal function API changes and removal of global
	variables.
	(set_integer): Adjust internal_error caller.
	* io/write.c (no_leading_blank, nml_delim): Remove variables.
	(write_a, calculate_sign, calculate_G_format, output_float,
	write_l, write_float, write_int, write_decimal, write_i, write_b,
	write_o, write_z, write_d, write_e, write_f, write_en, write_es,
	write_x, write_char, write_logical, write_integer, write_character,
	write_real, write_complex, write_separator,
	list_formatted_write_scalar, list_formatted_write, nml_write_obj,
	namelist_write): Add dtp argument, pass it all around, adjust for
	internal function API changes and removal of global variables.
	(extract_int, extract_uint, extract_real): Adjust internal_error
	callers.
	* runtime/fpu.c (_GNU_SOURCE): Don't define here.
	* runtime/error.c: Include ../io/unix.h.
	(filename, line): Remove variables.
	(st_printf): Pass address of a local variable to init_error_stream.
	(show_locus): Add cmp argument.  Use fields it points to rather than
	filename and line variables.
	(os_error, runtime_error): Remove show_locus calls.
	(internal_error): Add cmp argument.  Pass it down to show_locus.
	(generate_error): Likewise.  Use flags bitmask instead of non-NULL
	check for iostat and iomsg parameter presence, adjust for st_*
	calling convention changes.
	* runtime/stop.c (stop_numeric, stop_string): Remove show_locus
	calls.
	* runtime/pause.c (pause_numeric, pause_string): Likewise.
	* runtime/string.c: Include ../io/io.h.
	(find_option): Add cmp argument.  Pass it down to generate_error.
	* intrinsics/flush.c (recursive_flush): Remove.
	(flush_i4, flush_i8): Use flush_all_units.  Add unlock_unit
	call.
	* intrinsics/rand.c: Include ../io/io.h.
	(rand_seed_lock): New variable.
	(srand, irand): Add locking.
	(init): New constructor function.
	* intrinsics/random.c: Include ../io/io.h.
	(random_lock): New variable.
	(random_r4, random_r8, arandom_r4, arandom_r8): Add locking.
	(random_seed): Likewise.  open failed if fd < 0.  Set i correctly.
	(init): New constructor function.
	* intrinsics/system_clock.c (tp0, t0): Remove.
	(system_clock_4, system_clock_8): Don't subtract tp0/t0 from current
	time, use just integer arithmetics.
	* intrinsics/tty.c (isatty_l4, isatty_l8, ttynam_sub): Add
	unlock_unit calls.

From-SVN: r107328
2005-11-21 23:03:56 +01:00
Richard Henderson fd9b524973 Makefile.am: Revert 2005-11-14 change.
* Makefile.am: Revert 2005-11-14 change.  Enable -free-vectorize
        via gmake per-target variables.
        * Makefile.in, aclocal.m4: Regenerate.

From-SVN: r107261
2005-11-20 12:35:17 -08:00
Francois-Xavier Coudert eda4ed4719 configure.ac: Add "-I ." to the AM_FCFLAGS.
* configure.ac: Add "-I ." to the AM_FCFLAGS.
	* configure: Regenerate.

From-SVN: r107172
2005-11-18 10:51:57 +00:00
Hans-Peter Nilsson eaa9c6bdb4 fpu-glibc.h (set_fpu): Only call fedisableexcept for nonzero FE_ALL_EXCEPT.
* config/fpu-glibc.h (set_fpu): Only call fedisableexcept for
	nonzero FE_ALL_EXCEPT.

From-SVN: r107145
2005-11-18 00:09:09 +00:00
Francois-Xavier Coudert 1c2e7a3ab3 re PR libfortran/24892 (ACCESS argument to the OPEN statement)
PR fortran/24892
	* io/io.h (unit_access): Add ACCESS_APPEND.
	* io/open.c (access_opt): Add APPEND value for ACCESS keyword.
	(st_open): Use that new value to set the POSITION accordingly.

	* gfortran.dg/open_access_append_1.f90: New test.
	* gfortran.dg/open_access_append_2.f90: New test.

From-SVN: r107119
2005-11-17 12:46:57 +00:00
Janne Blomqvist 8520690170 re PR libfortran/21468 (vectorizing libfortran)
2005-11-14  Janne Blomqvist  <jb@gcc.gnu.org>

        PR fortran/21468
        * Makefile.am: Add -ftree-vectorize for compiling matmul.
        * m4/matmul.m4: Add const and restrict to type declarations as
        appropriate.
        * m4/matmull.m4: Likewise.
        * Makefile.in: Regenerated.
        * generated/matmul_*.c: Likewise.

From-SVN: r106898
2005-11-14 21:48:31 +02:00
Francois-Xavier Coudert 5d723e5434 fget.c: New file.
* intrinsics/fget.c: New file.
	* intrinsics/ftell.c: New file.
	* io/unix.c (stream_offset): New function.
	* io/io.h: Add prototype for stream_offset.
	* Makefile.am: Add intrinsics/fget.c and intrinsics/ftell.c.
	* Makefile.in: Regenerate.

	* intrinsic.c (add_functions): Add COMPLEX, FTELL, FGETC, FGET,
	FPUTC, FPUT, AND, XOR and OR intrinsic functions.
	(add_subroutines): Add FGETC, FGET, FPUTC, FPUT and FTELL intrinsic
	subroutines.
	* gfortran.h: Add GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET,
	GFC_ISYM_FGETC, GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL,
	GFC_ISYM_OR, GFC_ISYM_XOR.
	* iresolve.c (gfc_resolve_and, gfc_resolve_complex,
	gfc_resolve_or, gfc_resolve_fgetc, gfc_resolve_fget,
	gfc_resolve_fputc, gfc_resolve_fput, gfc_resolve_ftell,
	gfc_resolve_xor, gfc_resolve_fgetc_sub, gfc_resolve_fget_sub,
	gfc_resolve_fputc_sub, gfc_resolve_fput_sub, gfc_resolve_ftell_sub):
	New functions.
	* check.c (gfc_check_complex, gfc_check_fgetputc_sub,
	gfc_check_fgetputc, gfc_check_fgetput_sub, gfc_check_fgetput,
	gfc_check_ftell, gfc_check_ftell_sub, gfc_check_and): New functions.
	* simplify.c (gfc_simplify_and, gfc_simplify_complex, gfc_simplify_or,
	gfc_simplify_xor): New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for
	GFC_ISYM_AND, GFC_ISYM_COMPLEX, GFC_ISYM_FGET, GFC_ISYM_FGETC,
	GFC_ISYM_FPUT, GFC_ISYM_FPUTC, GFC_ISYM_FTELL, GFC_ISYM_OR and
	GFC_ISYM_XOR.
	* intrinsic.h: Add prototypes for all functions added to iresolve.c,
	simplify.c and check.c.

	* gfortran.dg/complex_intrinsic_1.f90: New test.
	* gfortran.dg/complex_intrinsic_2.f90: New test.
	* gfortran.dg/fgetc_1.f90: New test.
	* gfortran.dg/fgetc_2.f90: New test.
	* gfortran.dg/fgetc_3.f90: New test.
	* gfortran.dg/ftell_1.f90: New test.
	* gfortran.dg/ftell_2.f90: New test.
	* gfortran.dg/gnu_logical_1.F: New test.
	* gfortran.dg/gnu_logical_2.f90: New test.

From-SVN: r106859
2005-11-13 09:33:19 +00:00
Steven G. Kargl 02c92593ed re PR libfortran/24787 ([libfortran] SCAN is broken)
PR libfortran/24787
* intrinsics/string_intrinsics.c (string_scan): Off by one; Fix
  typos in nearby comment.

* gfortran.dg/scan_1.f90: New test.

From-SVN: r106828
2005-11-12 19:16:40 +00:00
Jerry DeLisle 740f04ef02 PR libgfortran/24699, 24700, 24719, 24785
2005-11-09  Jerry DeLisle <jvdelisle@gcc.gnu.org>

	PR libgfortran/24699, 24700, 24719, 24785
	* io/transfer.c (read_sf): Remove incorrect statement that was
	clearing bytes_left.
	(formatted_transfer_scalar): Add handling of end-of-record
	condition, setting values correctly to backup.  Handle x format
	when doing non-advancing write.
	(st_read): Initialize current_record.

From-SVN: r106797
2005-11-11 20:19:21 +00:00
Andreas Jaeger 0618ee3194 libgfortran.h: Add proper defines where needed.
* libgfortran.h: Add proper defines where needed.

From-SVN: r106741
2005-11-10 18:14:26 +01:00
Andreas Jaeger e82726f937 libgfortran.h: Add missing prototypes for internal_pack functions.
* libgfortran.h: Add missing prototypes for internal_pack
        functions.

From-SVN: r106730
2005-11-10 12:21:53 +01:00
Janne Blomqvist e5ef4b3bcb gfortran ChangeLog
2005-11-06  Janne Blomqvist <jb@gcc.gnu.org>

	PR fortran/24174
	PR fortran/24305
	* fortran/trans-io.c (gfc_build_io_library_fndecls): Add kind
	argument to transfer_array.
	(transfer_array_desc): Add kind argument.

testsuite ChangeLog:

2005-11-06  Janne Blomqvist <jb@gcc.gnu.org>

	PR fortran/24174
	PR fortran/24305
	* testsuite/gfortran.dg/large_real_kind_form_io_1.f90: New file.

libgfortran Changelog:

2005-11-06  Janne Blomqvist <jb@gcc.gnu.org>

	PR fortran/24174
	PR fortran/24305
	* io/io.h: Add argument to prototypes, add prototypes for
	size_from_*_kind functions.
	* io/list_read.c (read_complex): Add size argument, use
	it. 
	(list_formatted_read): Add size argument, cleanup.
	(list_formatted_read_scalar): Add size argument.
	(nml_read_obj): Fix for padding.
	* io/transfer.c: Add argument to transfer function pointer.
	(unformatted_read): Add size argument.
	(unformatted_write): Likewise.
	(formatted_transfer_scalar): Fix for padding with complex(10).
	(formatted_transfer): Add size argument, cleanup.
	(transfer_integer): Add size argument to transfer call.
	(transfer_real): Likewise.
	(transfer_logical): Likewise.
	(transfer_character): Likewise.
	(transfer_complex): Likewise.
	(transfer_array): New kind argument, use it.
	(data_transfer_init): Add size argument to formatted_transfer
	call.
	(iolength_transfer): Add size argument, cleanup.
	* io/write.c (write_complex): Add size argument, fix for padding
	with complex(10).
	(list_formatted_write): Add size argument, cleanup.
	(list_formatted_write_scalar): Add size argument, use it.
	(nml_write_obj): Fix for size vs. kind issue.
	* io/size_from_kind.c: New file.
	* Makefile.am: Add io/size_from_kind.c.
	* configure: Regenerate.
	* Makefile.in: Regenerate.

From-SVN: r106563
2005-11-06 20:28:22 +02:00
Francois-Xavier Coudert 3505981152 intrinsic.c (add_functions): Add ctime and fdate intrinsics.
* intrinsic.c (add_functions): Add ctime and fdate intrinsics.
	(add_subroutines): Likewise.
	* intrinsic.h: Prototypes for gfc_check_ctime,
	gfc_check_ctime_sub, gfc_check_fdate_sub, gfc_resolve_ctime,
	gfc_resolve_fdate, gfc_resolve_ctime_sub, gfc_resolve_fdate_sub.
	* gfortran.h: Add GFC_ISYM_CTIME and GFC_ISYM_FDATE.
	* iresolve.c (gfc_resolve_ctime, gfc_resolve_fdate,
	gfc_resolve_ctime_sub, gfc_resolve_fdate_sub): New functions.
	* trans-decl.c (gfc_build_intrinsic_function_decls): Add
	gfor_fndecl_fdate and gfor_fndecl_ctime.
	* check.c (gfc_check_ctime, gfc_check_ctime_sub,
	gfc_check_fdate_sub): New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_ctime,
	gfc_conv_intrinsic_fdate): New functions.
	(gfc_conv_intrinsic_function): Add cases for GFC_ISYM_CTIME
	and GFC_ISYM_FDATE.
	* intrinsic.texi: Documentation for the new CTIME and FDATE
	intrinsics.
	* trans.h: Declarations for gfor_fndecl_ctime and gfor_fndecl_fdate.

	* intrinsics/ctime.c: New file.
	* configure.ac: Add check for ctime.
	* Makefile.am: Add ctime.c
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* Makefile.in: Regenerate.

From-SVN: r106558
2005-11-06 10:17:04 +00:00
Richard Guenther 17109ecb50 configure.ac: Use AM_FCFLAGS for extra flags, not FCFLAGS.
2005-11-05  Richard Guenther  <rguenther@suse.de>

	* configure.ac: Use AM_FCFLAGS for extra flags, not FCFLAGS.
	* configure: Regenerate.

From-SVN: r106535
2005-11-05 21:09:13 +00:00
Francois-Xavier Coudert 25fc05eb62 intrinsic.c (add_functions): Add function version of TTYNAM.
* intrinsic.c (add_functions): Add function version of TTYNAM.
	* intrinsic.h: Add prototypes for gfc_check_ttynam and
	gfc_resolve_ttynam.
	* gfortran.h: Add case for GFC_ISYM_TTYNAM.
	* iresolve.c (gfc_resolve_ttynam): New function.
	* trans-decl.c (gfc_build_intrinsic_function_decls): Add a tree
	for function call to library ttynam.
	* check.c (gfc_check_ttynam): New function.
	* trans-intrinsic.c (gfc_conv_intrinsic_ttynam): New function.
	(): Call gfc_conv_intrinsic_ttynam.
	* trans.h: Add prototype for gfor_fndecl_ttynam.

	* intrinsics/tty.c (ttynam): New function.

From-SVN: r106522
2005-11-05 08:34:07 +00:00
Steven G. Kargl 33de49ea9f re PR fortran/24636 (gfortran: STOP without stop-code too noisy, regression w.r.t. g77)
PR fortran/24636
	* match.c (gfc_match_stopcode):  Set stop_code = -1.
	* runtime/stop.c (stop_numeric): Use stop_code = -1.

From-SVN: r106509
2005-11-04 22:18:22 +00:00
François-Xavier Coudert f2ae4b2bd0 re PR libfortran/22298 (libgfortran init() constructor isn't called if executable is statically linked)
PR libfortran/22298

	* runtime/main.c (stupid_function_name_for_static_linking): New
	function.
	* runtime/error.c (internal_error): Call
	stupid_function_name_for_static_linking.
	* libgfortran.h: Add prototype for
	stupid_function_name_for_static_linking.

	* gcc/testsuite/lib/target-supports.exp
	(check_effective_target_static_libgfortran): New
	static_libgfortran effective target.
	* gcc/testsuite/gfortran.dg/static_linking_1.f: New test.
	* gcc/testsuite/gfortran.dg/static_linking_1.c: New file.

From-SVN: r106484
2005-11-04 08:44:29 +00:00
Paul Thomas 53096259e6 re PR fortran/21565 (namelist in block data is illegal)
2005-11-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/21565
	* symbol.c (check_conflict): An object cannot be in a namelist and in
	block data.

	PR fortran/18737
	* resolve.c (resolve_symbol): Set the error flag to
	gfc_set_default_type, in the case of an external symbol, so that
	an error message is emitted if IMPLICIT NONE is set.

	PR fortran/14994
	* gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SECNDS to enum.
	* check.c (gfc_check_secnds): New function.
	* intrinsic.c (add_functions): Add call to secnds.
	* iresolve.c (gfc_resolve_secnds): New function.
	* trans-intrinsic (gfc_conv_intrinsic_function): Add call to
	secnds via case GFC_ISYM_SECNDS.
	* intrinsic.texi: Add documentation for secnds.

2005-11-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/14994
	* libgfortran/intrinsics/date_and_time.c: Add interface to
	the functions date_and_time for the intrinsic function secnds.

2005-11-01  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/21565
	gfortran.dg/namelist_blockdata.f90: New test.

	PR fortran/18737
	gfortran.dg/external_implicit_none.f90: New test.

	PR fortran/14994
	* gfortran.dg/secnds.f: New test.

From-SVN: r106317
2005-11-01 05:53:29 +00:00
Andreas Jaeger 44bcbae366 .cvsignore are not needed for subversion, remove them.
From-SVN: r106279
2005-10-31 18:20:58 +01:00
Jerry DeLisle 2a81ce9bf2 re PR libfortran/24584 (Segfault when reading empty string in namelist file)
2005-10-31  Jerry DeLisle  <jvdelisle@verizon.net>

        PR libgfortran/24584
        * io/list_read.c (free_saved): Set saved_used to zero.

From-SVN: r106265
2005-10-31 01:00:20 +00:00
Francois-Xavier Coudert 159840cb8a re PR libfortran/20179 (cannot mix C and Fortran I/O)
PR libfortran/20179
	* io/unix.c (flush_if_preconnected): New function.
	* io/io.h: Add prototype for flush_if_preconnected.
	* io/transfer.c (data_transfer_init): Use flush_if_preconnected
	to workaround buggy mixed C-Fortran code.

	* gfortran.dg/mixed_io_1.f90: New test.
	* gfortran.dg/mixed_io_1.c: New file.

From-SVN: r106017
2005-10-30 12:48:52 +00:00
Francois-Xavier Coudert 0d519038a0 check.c (gfc_check_malloc, [...]): New functions.
* check.c (gfc_check_malloc, gfc_check_free): New functions.
	* gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_MALLOC.
	* intrinsic.c (add_functions): Add symbols for MALLOC function.
	(add_subroutines): Add symbol for FREE subroutine.
	* intrinsic.h: Prototypes for gfc_check_malloc, gfc_check_free,
	gfc_resolve_malloc and gfc_resolve_free.
	* intrinsic.texi: Add doc for FREE and MALLOC intrinsics.
	* iresolve.c (gfc_resolve_malloc, gfc_resolve_free): New
	functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Add case for
	GFC_ISYM_MALLOC.

	* Makefile.am: Add intrinsics/malloc.c file.
	* Makefile.in: Regenerate.
	* intrinsics/malloc.c: New file, with implementations for free
	and malloc library functions.

	* gfortran.dg/malloc_free_1.f90: New test.

From-SVN: r106016
2005-10-30 12:17:48 +00:00
Mike Stump 06bc79e0bb Makefile.am (kinds.h): Remove target, if command fails.
* Makefile.am (kinds.h): Remove target, if command fails.
        (selected_int_kind.inc): Likewise.
        (selected_real_kind.inc): Likewise.
        * Makefile.in: Regenerate.

From-SVN: r105995
2005-10-29 21:02:23 +00:00
Francois-Xavier Coudert 185d7d9750 check.c (gfc_check_alarm_sub, [...]): New functions.
* check.c (gfc_check_alarm_sub, gfc_check_signal,
	gfc_check_signal_sub): New functions.
	* gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_SIGNAL.
	* intrinsic.c (add_functions): Add signal intrinsic.
	(add_subroutines): Add signal and alarm intrinsics.
	* intrinsic.texi: Document the new intrinsics.
	* iresolve.c (gfc_resolve_signal, gfc_resolve_alarm_sub,
	gfc_resolve_signal_sub): New functions.
	* trans-intrinsic.c (gfc_conv_intrinsic_function): Add case
	for GFC_ISYM_SIGNAL.
	* intrinsic.h: Add prototypes for gfc_check_alarm_sub,
	gfc_check_signal, gfc_check_signal_sub, gfc_resolve_signal,
	gfc_resolve_alarm_sub, gfc_resolve_signal_sub.

	* Makefile.am (intrinsics): Add signal.c.
	* Makefile.in: Regenerate.
	* configure.ac: Checks for signal and alarm.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* intrinsics/signal.c: New file for SIGNAL and ALARM intrinsics.

From-SVN: r105967
2005-10-28 21:16:17 +00:00
François-Xavier Coudert 3b14f6649a acinclude.m4 (LIBGFOR_CHECK_FPSETMASK): New check.
* acinclude.m4 (LIBGFOR_CHECK_FPSETMASK): New check.
	* configure.ac: Check for floatingpoint.h, fptrap.h and float.h
	headers. Use LIBGFOR_CHECK_FPSETMASK. Check for fp_trap and
	fp_enable functions.
	* configure.host: Add case for systems with fpsetmask and systems
	with fp_trap/fp_enable.
	* config/fpu-sysv.h: New file, FPU code using fpsetmask.
	* config/fpu-aix.h: New file, FPU code for AIX using fp_trap and
	fp_enable.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config.h.in: Regenerate.

From-SVN: r105956
2005-10-28 20:13:20 +00:00
Jerry DeLisle 6868dfa02b 2005-10-24 Jerry DeLisle <jvdelisle@verizon.net>
Missed commit of libgfortran.h from previous.

From-SVN: r105881
2005-10-25 01:52:48 +00:00
Jerry DeLisle 965eec1676 re PR libfortran/24224 (Generalized internal array IO not implemented.)
2005-10-24  Jerry DeLisle  <jvdelisle@verizon.net>

        PR libgfortran/24224
        * libgfortran.h: Remove array stride error code.
        * runtime/error.c: Remove array stride error.
        * io/io.h: Change name of 'nml_loop_spec' to 'array_loop_spec' to be
        generic.  Add pointer to array_loop_spec and rank to gfc_unit
        structure.
        * io/list_read.c: Revise nml_loop_spec references to array_loop_spec.
        * io/transfer.c (init_loop_spec): New function to initialize
        an array_loop_spec.
        (next_array_record): New function to return the index to the next array
        record by incrementing through the array_loop_spec.
        (next_record_r): Use new function.
        (next_record_w): Use new function.
        (finalize_transfer): Free memory allocated for array_loop_spec.
        * io/unit.c (get_array_unit_len): Delete this function. Use new
        function init_loop_spec to initialize the array_loop_spec.

From-SVN: r105878
2005-10-25 01:32:33 +00:00
Paul Thomas 7ba18cea54 re PR libfortran/24416 (Wrong reading following namelist reading)
2005-10-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/24416
	* libgfortran/io/list_read.c (namelist_read): Exit with call to
	free_saved () so that character strings do not accumulate.

2005-10-24  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/24416
	gfortran.dg/namelist_char_only.f90: New test.

From-SVN: r105862
2005-10-24 20:20:40 +00:00
Jerry DeLisle 835681c8a2 re PR libfortran/24489 (read_block wrong execution order)
2005-10-23  Jerry DeLisle  <jvdelisle@verizon.net>

        PR libgfortran/24489
        * io/transfer.c (read_block): Change the order of execution to not read
        past end-of-record.
        (read_block_direct): Same change.

From-SVN: r105840
2005-10-24 03:51:24 +00:00
Francois-Xavier Coudert ad238e4ff7 re PR libfortran/23272 ([mingw32] inquire via filename fails)
PR libfortran/23272
	* acinclude.m4 (LIBGFOR_CHECK_WORKING_STAT): New check.
	* configure.ac: Use LIBGFOR_CHECK_WORKING_STAT.
	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* io/unix.c (compare_file_filename): Add fallback case for
	systems without working stat.
	* io/open.c (already_open): Correct call to
	compare_file_filename.
	* io/io.h: Correct proto for compare_file_filename.

From-SVN: r105824
2005-10-23 20:43:54 +00:00
Francois-Xavier Coudert 17d6e514a1 fpu.c: Add _GNU_SOURCE definition.
* runtime/fpu.c: Add _GNU_SOURCE definition.
	* config/fpu-glibc.h: Remove __USE_GNU definition.

From-SVN: r105822
2005-10-23 20:06:08 +00:00
Paul Thomas 2853e5127d re PR fortran/18022 (problem with structure and calling a function)
2005-10-23  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/18022
	* trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL
	if there is a component ref during an array ref to force
	use of temporary in assignment.

	PR fortran/24311
	PR fortran/24384
	* fortran/iresolve.c (check_charlen_present): New function to
	add a charlen to the typespec, in the case of constant
	expressions.
	(gfc_resolve_merge, gfc_resolve_spread): Call.the above.
	(gfc_resolve_spread): Make calls to library functions that
	handle the case of the spread intrinsic with a scalar source.
	* libgfortran/intrinsics/spread_generic.c (spread_internal
	_scalar): New function that handles the special case of spread
	with a scalar source. This has interface functions -
	(spread_scalar, spread_char_scalar): New functions to interface
	with the calls specified in gfc_resolve_spread.

2005-10-23  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/18022
	gfortran.dg/assign_func_dtcomp_1.f90: New test.

	PR fortran/24311
	gfortran.dg/merge_char_const.f90: New test.

	PR fortran/24384
	gfortran.dg/spread_scalar_source.f90: New test.

From-SVN: r105810
2005-10-23 06:59:17 +00:00
Francois-Xavier Coudert c7ba5f8dff re PR libfortran/24383 (mingw doesn't have SSIZE_MAX)
PR libfortran/24383
	* io/unix.c: Add fallback definition for SSIZE_MAX.

From-SVN: r105768
2005-10-21 19:40:32 +00:00
Francois-Xavier Coudert 2cdc88b64d re PR libfortran/24432 (Missing symbols)
PR libfortran/24432
	* c99_protos.h: Define preprocessor HAVE_ macros with value 1
	instead of empty value.
	* intrinsics/c99_functions.c: Likewise.
	* intrinsics/getXid.c: Define HAVE_GETPID with value 1 instead of
	empty value.
	* intrinsics/sleep.c: Define HAVE_SLEEP with value 1 instead of
	empty value.

From-SVN: r105603
2005-10-19 09:45:27 +00:00
Francois-Xavier Coudert 821af61997 re PR libfortran/24432 (Missing symbols)
PR libfortran/24432
	* c99_protos.h: Define HAVE_ macros for all provided functions.

From-SVN: r105597
2005-10-19 08:23:42 +00:00
Uros Bizjak 771c0562b5 fpu-387.h (set_fpu): Remove extra ":" in stmxcsr.
* config/fpu-387.h (set_fpu): Remove extra ":" in stmxcsr.
	Change cw and cw_sse variables to unsigned.
	(SSE): New definition.
	(has_sse): Use it.

From-SVN: r105402
2005-10-14 13:06:11 +02:00
Thomas Koenig c1d70e1a52 unix.c (fd_alloc_r_at): Use read() instead of do_read() only in case of special files (e.g.
2005-10-13  Thomas Koenig  <Thomas.Koenig@online.de>

	* io/unix.c(fd_alloc_r_at):  Use read() instead of do_read()
	only in case of special files (e.g. terminals).

From-SVN: r105373
2005-10-13 16:15:30 +00:00
Uros Bizjak 8d1d0da541 * config/fpu-387.h (set_fpu): Add "=m" for stmxcsr.
From-SVN: r105369
2005-10-13 14:54:30 +02:00
François-Xavier Coudert 944b8b35a9 gfortran.h: Add bitmasks for different FPE traps.
* gfortran.h: Add bitmasks for different FPE traps. Add fpe
	member to options_t.
	* invoke.texi: Document the new -ffpe-trap option.
	* lang.opt: Add -ffpe-trap option.
	* options.c (gfc_init_options): Initialize the FPE option.
	(gfc_handle_fpe_trap_option): New function to parse the argument
	of the -ffpe-trap option.
	(gfc_handle_option): Add case for -ffpe-trap.
	* trans-decl.c: Declare a tree for the set_fpe library function.
	(gfc_build_builtin_function_decls): Build this tree.
	(gfc_generate_function_code): Generate a call to set_fpe at
	the beginning of the main program.
	* trans.h: New tree for the set_fpe library function.

	* Makefile.am: Add fpu.c to the build process, and
	target-dependent code as fpu-target.h.
	* Makefile.in: Regenerate.
	* configure.ac: Add call to configure.host to set
	FPU_HOST_HEADER.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure.host: New script to determine which host-dependent
	code should go in.
	* libgfortran.h: Add fpe option, remove previous fpu_ options.
	Add bitmasks for different FPE traps. Add prototype for set_fpu.
	* runtime/environ.c: Remove environment variables to control
	fpu behaviour.
	* runtime/fpu.c (set_fpe): New function for the front-end.
	* runtime/main.c (init): Set FPU state.
	* config: New directory to store host-dependent code.
	* config/fpu-387.h: New file with code handling the i387 FPU.
	* config/fpu-glibc.h: New file with code for glibc systems.
	* config/fpu-generic.h: Fallback for the most generic host. Issue
	warnings.

From-SVN: r105328
2005-10-12 20:21:31 +00:00
Janne Blomqvist 4def9c5307 unix.c: Remove parts of patch of 2005/10/07 that cause input from the terminal to hang.
2005-10-12  Janne Blomqvist <jblomqvi@cc.hut.fi>

	* io/unix.c: Remove parts of patch of 2005/10/07 that cause
	input from the terminal to hang.

From-SVN: r105324
2005-10-12 19:54:59 +00:00
Steven G. Kargl a2694f689c re PR libfortran/24313 (complex sqrt function does not return principal value)
PR libgfortran/24313
* c99_functions.c (csqrtf, csqrt): Fix choice of branch cut.  Note
  csqrt{f} were imported from glibc, and this bug is still present
  there. glibc PR is 1146.

From-SVN: r105274
2005-10-11 23:35:27 +00:00
Janne Blomqvist 0dc4346159 re PR libfortran/16339 (Unformatted i/o on large arrays inefficient)
2005-10-07  Janne Blomqvist <jblomqvi@cc.hut.fi>

	PR fortran/16339
	PR fortran/23363
	* io/io.h: Add read and write members to stream, define access
	macros.
	* io/transfer.c (read_block_direct): New function.
	(write_block_direct): New function.
	(unformatted_read): Change to use read_block_direct.
	(unformatted_write): Change to use write_block_direct.
	* io/unix.c: Remove mmap includes and defines.
	(writen): Remove.
	(readn): Remove.
	(reset_stream): New function.
	(do_read): New function.
	(do_write): New function.
	(fd_flush): Change to use do_write() instead of writen().
	(fd_alloc_r_at): Change to use do_read().
	(fd_seek): Change return type to try, as the prototype. Add check
	to avoid syscall overhead if possible.
	(fd_read): New function.
	(fd_write): New function.
	(fd_open): Set pointers for new functions.
	(mem_read): New function.
	(mem_write): New function.
	(open_internal): Set pointers for new functions.
	(is_seekable): Clean up comment.

From-SVN: r105101
2005-10-07 20:02:28 +00:00
Jerry DeLisle aed6ee2453 transfer.c (write_block): Add test for end-of-file condition, removed from mem_alloc_w_at.
2005-10-07  Jerry DeLisle  <jvdelisle@verizon.net>

        * io/transfer.c (write_block): Add test for end-of-file condition,
        removed from mem_alloc_w_at. (next_record_w): Clean up checks for
        NULL pointer returns from s_alloc_w.
        * io/unix.c (mem_alloc_w_at): Remove call to generate_error end-of-file.
        * io/write.c (write_float): Add checks for NULL pointer returns from
        write_block calls. (write_integer): Same.

From-SVN: r105092
2005-10-07 17:01:48 +00:00
Jakub Jelinek bb13c3502b * runtime/memory.c (allocate_size): Malloc 1 byte if size == 0.
From-SVN: r104909
2005-10-03 22:32:44 +02:00
François-Xavier Coudert 644cb69f80 re PR libfortran/19308 (I/O library should support more real and integer kinds)
PR libfortran/19308
	PR fortran/20120
	PR libfortran/22437

	* Makefile.am: Add generated files for large real and integers
	kinds. Add a rule to create the kinds.inc c99_protos.inc files.
	Use kinds.inc to preprocess Fortran generated files.
	* libgfortran.h: Add macro definitions for GFC_INTEGER_16_HUGE,
	GFC_REAL_10_HUGE and GFC_REAL_16_HUGE. Add types gfc_array_i16,
	gfc_array_r10, gfc_array_r16, gfc_array_c10, gfc_array_c16,
	gfc_array_l16.
	* mk-kinds-h.sh: Define macros HAVE_GFC_LOGICAL_* and
	HAVE_GFC_COMPLEX_* when these types are available.
	* intrinsics/ishftc.c (ishftc16): New function for GFC_INTEGER_16.
	* m4/all.m4, m4/any.m4, m4/count.m4, m4/cshift1.m4, m4/dotprod.m4,
	m4/dotprodc.m4, m4/dotprodl.m4, m4/eoshift1.m4, m4/eoshift3.m4,
	m4/exponent.m4, m4/fraction.m4, m4/in_pack.m4, m4/in_unpack.m4,
	m4/matmul.m4, m4/matmull.m4, m4/maxloc0.m4, m4/maxloc1.m4,
	m4/maxval.m4, m4/minloc0.m4, m4/minloc1.m4, m4/minval.m4, m4/mtype.m4,
	m4/nearest.m4, m4/pow.m4, m4/product.m4, m4/reshape.m4,
	m4/set_exponent.m4, m4/shape.m4, m4/specific.m4, m4/specific2.m4,
	m4/sum.m4, m4/transpose.m4: Protect generated functions with
	appropriate "#if defined (HAVE_GFC_type_kind)" preprocessor directives.
	* Makefile.in: Regenerate.
	* all files in generated/: Regenerate.

	* f95-lang.c (DO_DEFINE_MATH_BUILTIN): Add support for long
	double builtin function.
	(gfc_init_builtin_functions): Add mfunc_longdouble,
	mfunc_clongdouble and func_clongdouble_longdouble trees. Build
	them for round, trunc, cabs, copysign and pow functions.
	* iresolve.c (gfc_resolve_reshape, gfc_resolve_transpose): Add
	case for kind 10 and 16.
	* trans-decl.c: Add trees for cpowl10, cpowl16, ishftc16,
	exponent10 and exponent16.
	(gfc_build_intrinsic_function_decls): Build nodes for int16,
	real10, real16, complex10 and complex16 types. Build all possible
	combinations for function _gfortran_pow_?n_?n. Build function
	calls cpowl10, cpowl16, ishftc16, exponent10 and exponent16.
	* trans-expr.c (gfc_conv_power_op): Add case for integer(16),
	real(10) and real(16).
	* trans-intrinsic.c: Add suppport for long double builtin
	functions in BUILT_IN_FUNCTION, LIBM_FUNCTION and LIBF_FUNCTION
	macros.
	(gfc_conv_intrinsic_aint): Add case for integer(16), real(10) and
	real(16) kinds.
	(gfc_build_intrinsic_lib_fndecls): Add support for real10_decl
	and real16_decl in library functions.
	(gfc_get_intrinsic_lib_fndecl): Add cases for real and complex
	kinds 10 and 16.
	(gfc_conv_intrinsic_exponent): Add cases for real(10) and real(16)
	kinds.
	(gfc_conv_intrinsic_sign): Likewise.
	(gfc_conv_intrinsic_ishftc): Add case for integer(16) kind.
	* trans-types.c (gfc_get_int_type, gfc_get_real_type,
	gfc_get_complex_type, gfc_get_logical_type): Doesn't error out in
	the case of kinds not available.
	* trans.h: Declare trees for cpowl10, cpowl16, ishftc16,
	exponent10 and exponent16.

	* gfortran.dg/large_real_kind_2.F90: New test.
	* gfortran.dg/large_integer_kind_2.f90: New test.

From-SVN: r104889
2005-10-03 07:22:20 +00:00
Jakub Jelinek 0355186042 memory.c (malloc_t): Remove.
* runtime/memory.c (malloc_t): Remove.
	(GFC_MALLOC_MAGIC, HEADER_SIZE, DATA_POINTER, DATA_HEADER): Remove.
	(mem_root, runtime_cleanup, malloc_with_header): Remove.
	(internal_malloc_size): Use just get_mem if size != 0, return NULL
	otherwise.
	(internal_free): Just free if non-NULL.
	(internal_realloc_size): Remove debugging stuff.
	(allocate_size): Use malloc directly, remove debugging stuff.
	(deallocate): Use free directly, fix error message wording.

From-SVN: r104856
2005-10-01 13:55:02 +02:00
Jakub Jelinek 1449b8cba8 libgfortran.h (GFC_ITOA_BUF_SIZE, [...]): Define.
* libgfortran.h (GFC_ITOA_BUF_SIZE, GFC_XTOA_BUF_SIZE,
	GFC_OTOA_BUF_SIZE, GFC_BTOA_BUF_SIZE): Define.
	(gfc_itoa, xtoa): Add 2 extra arguments.
	* runtime/environ.c: Include stdio.h.
	(check_buffered): Use sprintf.
	* runtime/error.c: Include assert.h.
	(gfc_itoa, xtoa): Add 2 extra arguments, avoid using static
	buffers.
	(st_printf, st_sprintf): Adjust callers.
	* io/write.c (otoa, btoa): Add 2 extra arguments, avoid using
	static buffers.
	(write_int, write_decimal): Add 2 extra arguments to conv
	function pointer, adjust caller.
	(write_integer): Adjust gfc_itoa caller.

	* io/unit.c (get_array_unit_len): Return 0 rather than NULL.

	* io/read.c (read_f): Remove spurious pointer dereference.

From-SVN: r104855
2005-10-01 13:50:10 +02:00
Janne Blomqvist 21905d1b43 re PR libfortran/24112 (Reopening file with STATUS='OLD' doesn't work)
2005-09-30  Janne Blomqvist <jblomqvi@cc.hut.fi>
libgfortran/
PR 24112
* io/open.c (edit_modes): Check for correct flag.
gcc/testsuite/
PR 24112
* gfortran.dg/open_status_1.f90: New.

From-SVN: r104829
2005-09-30 20:47:54 +02:00
Jakub Jelinek 090037799c string.c (find_option): Change 3rd argument to const st_option *.
* runtime/string.c (find_option): Change 3rd argument to
	const st_option *.
	* libgfortran.h (find_option): Likewise.
	* runtime/environ.c (rounding, precision, signal_choices): Constify.
	(init_choice, show_choice): Change 2nd argument to const choice *.
	* io/open.c (access_opt, action_opt, blank_opt, delim_opt, form_opt,
	position_opt, status_opt, pad_opt): Constify.
	* io/transfer.c (advance_opt): Likewise.
	* io/inquire.c (undefined): Likewise.
	* io/close.c (status_opt): Likewise.
	* io/format.c (posint_required, period_required, nonneg_required,
	unexpected_element, unexpected_end, bad_string, bad_hollerith,
	reversion_error): Likewise.
	* io/unix.c (yes, no, unknown): Change from const char *
	into const char [].

From-SVN: r104773
2005-09-29 15:53:59 +02:00
Steve Ellcey 118ea208fa re PR target/23552 (FAIL: gfortran.dg/large_real_kind_1.f90)
PR target/23552
	* acinclude.m4 (LIBGFOR_CHECK_FOR_BROKEN_ISFINITE): New.
	(LIBGFOR_CHECK_FOR_BROKEN_ISNAN): New.
	(LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY): New.
	* configure.ac (LIBGFOR_CHECK_FOR_BROKEN_ISFINITE): Add use.
	(LIBGFOR_CHECK_FOR_BROKEN_ISNAN): Add use.
	(LIBGFOR_CHECK_FOR_BROKEN_FPCLASSIFY): Add use.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* libgfortan.h (isfinite): undef if broken, set if needed.
	(isnan): undef if broken, set if needed.
        (fpclassify): undef if broken, set if needed.
	* io/write.c: Remove TODO comment about working isfinite.
	* intrinsics/c99_functions.c (round): Use isfinite instead
	of fpclassify.
	* intrinsics/c99_functions.c (roundf): Ditto.

From-SVN: r104710
2005-09-27 21:12:52 +00:00
David Edelsohn 63d261c617 Correct ChangeLog formatting and email address.
From-SVN: r104682
2005-09-27 00:02:35 -04:00
Janne Blomqvist 18623faed1 [multiple changes]
2005-09-24  Janne Blomqvist  <jblomqvi@cc.hut.fi>

	* trans-io.c (gfc_build_io_library_fndecls): Add entry
	iocall_x_array for transfer_array. (transfer_array_desc): New
	function. (gfc_trans_transfer): Add code to call
	transfer_array_desc.

2005-09-24  Janne Blomqvist <jblomqvi@cc.hut.fi>

	* io.h: Changed prototypes of list_formatted_{read|write}.
	* list_read.c (list_formatted_read): Renamed to
	list_formatted_read_scalar and made static. (list_formatted_read):
	New function.
	* transfer.c: Prototype for transfer_array. Changed transfer
	function pointer. (unformatted_read): Add nelems argument, use
	it. (unformatted_write): Likewise. (formatted_transfer): Changed
	name to formatted_transfer_scalar. (formatted_transfer): New
	function. (transfer_integer): Add nelems argument to transfer
	call, move updating item count to transfer
	functions. (transfer_real): Likewise. (transfer_logical):
	Likewise. (transfer_character): Likewise. (transfer_complex):
	Likewise. (transfer_array): New function. (data_transfer_init):
	Call formatted_transfer with new argument. (iolength_transfer):
	New argument, use it.
	* write.c (list_formatted_write): Renamed to
	list_formatted_write_scalar, made static. (list_formatted_write):
	New function.

From-SVN: r104662
2005-09-26 20:24:45 +00:00
David Edelsohn e097b4f158 configure.ac: Add check for __clog.
* configure.ac: Add check for __clog.
	* configure: Regenerate.

From-SVN: r104654
2005-09-26 19:08:27 +00:00
Francois-Xavier Coudert 1409cd0b8e c99_protos.h: Add prototypes for C99 complex functions.
* c99_protos.h: Add prototypes for C99 complex functions.
	* libgfortran.h: Include complex.h before c99_protos.h.
	* intrinsics/c99_functions.c: Define HAVE_ macros for the
	fallback functions we provide.
	(cabsf, cabs, cabsl, cargf, carg, cargl, cexpf, cexp, cexpl,
	clogf, clog, clogl, clog10f, clog10, clog10l, cpowf, cpow, cpowl,
	cqsrtf, csqrt, csqrtl, csinhf, csinh, csinhl, ccoshf, ccosh,
	ccoshl, ctanhf, ctanh, ctanhl, csinf, csin, csinl, ccosf, ccos,
	ccosl, ctanf, ctan, ctanl): New fallback functions.
	* Makefile.am (gfor_math_trig_c, gfor_math_trig_obj,
	gfor_specific_c, gfor_cmath_src, gfor_cmath_obj): Remove.
	* Makefile.in: Regenerate.
	* configure.ac: Remove checks for csin. Add checks for all C99
	complex functions.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.

From-SVN: r104626
2005-09-25 21:39:58 +00:00
Francois-Xavier Coudert 86ab632081 re PR libfortran/23803 ([mingw32] getlog malfunction)
PR libfortran/23803
	* intrinsics/getXid.c: Add getpid wrapper for MinGW.
	* intrinsics/getlog.c: Add getlogin wrapper for MinGW.
	* intrinsics/hostnm.c: Add gethostname wrapper for MinGW.

Co-Authored-By: Danny Smith <dannysmith@users.sourceforge.net>

From-SVN: r104624
2005-09-25 21:02:17 +00:00
Francois-Xavier Coudert 26b7ebf6bf re PR libfortran/23802 ([mingw32] sleep malfunction)
PR libfortran/23802
	* intrinsics/sleep.c: Add correct sleep macro for MinGW.

From-SVN: r104599
2005-09-24 08:55:37 +00:00
Francois-Xavier Coudert 399a39c720 re PR libfortran/23380 ([mingw32] cpu_time intrinsic malfunction)
PR libfortran/23380
	* intrinsics/cpu_time.c (__cpu_time_1): Provide a MS Windows
	version.

From-SVN: r104598
2005-09-24 08:39:35 +00:00
Jerry DeLisle 59154ed24c PR fortran/21875 Internal Unit Array I/O, NIST
2005-09-14  Jerry DeLisle  <jvdelisle@verizon.net

	PR fortran/21875 Internal Unit Array I/O, NIST
	* libgfortran.h: Add run time error code for array stride.
	* runtime/error.c (translate_error): Add error message for
	array stride.
	* io/io.h: Add array descriptor pointer to IOPARM structure.
	Add prtotypes for two new functions.
	* io/transfer.c (data_transfer_init): Removed initialization and
	moved to unit.c (get_unit)
	* io/transfer.c (next_record_r): Include internal unit read
	functionality.
	* io/transfer.c (next_record_w): Include internal unit write
	functionality, including padding of character array records.
	* io/unit.c (get_array_unit_len): New function to return the number
	of records in the character array 'file' from the array descriptor.
	* io/unit.c (get_unit): Gathered initialization code from
	init_data_transfer for internal units and added initialization of
	character array unit.
	* io/unit.c (is_array_io): New function to determine if internal unit
	is an array.
	* io/unix.c (mem_alloc_w_at): Add error checks for bad record length
	and end of file.

From-SVN: r104276
2005-09-14 20:18:19 +00:00
Richard Sandiford 7823229bc3 re PR fortran/19269 (transpose(reshape(...)) of character array segfaults.)
gcc/fortran/
	PR target/19269
	* iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift)
	(gfc_resolve_pack, gfc_resolve_reshape, gfc_resolve_spread)
	(gfc_resolve_transpose, gfc_resolve_unpack): Add "_char" to the name
	for character-based operations.
	(gfc_resolve_pack): Remove ATTRIBUTE_UNUSED from array argument.
	(gfc_resolve_unpack): Copy the whole typespec from the vector.
	* trans-array.c (gfc_conv_expr_descriptor): In the EXPR_FUNCTION
	case, get the string length from the scalarization state.

libgfortran/
	PR target/19269
	* intrinsics/cshift0.c (cshift0): Add an extra size argument.
	(cshift0_1, cshift0_2, cshift0_4, cshift0_8): Replace explicit
	implementations with...
	(DEFINE_CSHIFT): ...this new macro.  Define character versions too.
	* intrinsics/eoshift0.c (zeros): Delete.
	(eoshift0): Add extra size and filler arguments.  Use memset if no
	bound is provided.
	(eoshift0_1, eoshift0_2, eoshift0_4, eoshift0_8): Replace explicit
	implementations with...
	(DEFINE_EOSHIFT): ...this new macro.  Define character versions too.
	* intrinsics/eoshift2.c (zeros): Delete.
	(eoshift2): Add extra size and filler arguments.  Use memset if no
	bound is provided.
	(eoshift2_1, eoshift2_2, eoshift2_4, eoshift2_8): Replace explicit
	implementations with...
	(DEFINE_EOSHIFT): ...this new macro.  Define character versions too.
	* intrinsics/pack.c (pack_internal): New static function, reusing
	the contents of pack and adding an extra size argument.  Change
	"mptr" rather than "m" when calculating the array size.
	(pack): Redefine as a forwarder to pack_internal.
	(pack_s_internal): New static function, reusing the contents of
	pack_s and adding an extra size argument.
	(pack_s): Redefine as a forwarder to pack_s_internal.
	(pack_char, pack_s_char): New functions.
	* intrinsics/reshape.c (reshape_internal): New static function,
	reusing the contents of reshape and adding an extra size argument.
	(reshape): Redefine as a forwarder to reshape_internal.
	(reshape_char): New function.
	* intrinsics/spread.c (spread_internal): New static function,
	reusing the contents of spread and adding an extra size argument.
	(spread): Redefine as a forwarder to spread_internal.
	(spread_char): New function.
	* intrinsics/transpose.c (transpose_internal): New static function,
	reusing the contents of transpose and adding an extra size argument.
	(transpose): Redefine as a forwarder to transpose_internal.
	(transpose_char): New function.
	* intrinsics/unpack.c (unpack_internal): New static function, reusing
	the contents of unpack1 and adding extra size and fsize arguments.
	(unpack1): Redefine as a forwarder to unpack_internal.
	(unpack0): Call unpack_internal instead of unpack1.
	(unpack1_char, unpack0_char): New functions.
	* m4/cshift1.m4 (cshift1): New static function, reusing the contents
	of cshift1_<kind> and adding an extra size argument.
	(cshift1_<kind>): Redefine as a forwarder to cshift1.
	(cshift1_<kind>_char): New function.
	* m4/eoshift1.m4 (zeros): Delete.
	(eoshift1): New static function, reusing the contents of
	eoshift1_<kind> and adding extra size and filler arguments.
	Fix calculation of hstride.  Use memset if no bound is provided.
	(eoshift1_<kind>): Redefine as a forwarder to eoshift1.
	(eoshift1_<kind>_char): New function.
	* m4/eoshift3.m4 (zeros): Delete.
	(eoshift3): New static function, reusing the contents of
	eoshift3_<kind> and adding extra size and filler arguments.
	Use memset if no bound is provided.
	(eoshift3_<kind>): Redefine as a forwarder to eoshift3.
	(eoshift3_<kind>_char): New function.
	* generated/cshift1_4.c, generated/cshift1_8.c,
	* generated/eoshift1_4.c, generated/eoshift1_8.c,
	* generated/eoshift3_4.c, generated/eoshift3_8.c: Regenerate.

From-SVN: r104217
2005-09-13 07:15:01 +00:00
Francois-Xavier Coudert b65b81f935 re PR libfortran/20179 (cannot mix C and Fortran I/O)
PR libfortran/20179
	* io/unix.c (is_preconnected): Add function to test if a stream
	corresponds to a preconnected unit.
	* io/io.h: Add prototype for is_preconnected.
	* io/transfer.c (data_transfer_init): Do not truncate
	preconnected units.

From-SVN: r104141
2005-09-11 13:34:57 +00:00
Janne Blomqvist ca0d06ac97 unix.c: Remove mmap code.
2005-09-10  Janne Blomqvist  <jblomqvi@cc.hut.fi>

	* io/unix.c: Remove mmap code.

From-SVN: r104127
2005-09-10 18:31:28 +02:00
Francois-Xavier Coudert e0fd73d434 re PR libfortran/23784 (close doesn't reset ioparm on error exit)
PR libfortran/23784
	* io/close.c (st_close): Call library_end even in case of error.

From-SVN: r104108
2005-09-09 21:51:33 +00:00
Thomas Koenig 7aba8abebf gfortran.h: Add iomsg to gfc_open, gfc_close, gfc_filepos, gfc_inquire and gfc_dt.
2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>

	* gfortran.h:  Add iomsg to gfc_open, gfc_close, gfc_filepos,
	gfc_inquire and gfc_dt.
	* dump-parse-tree.c (gfc_show_code_node):  Add iomsg
	for open, close, file positioning, inquire and namelist.
	* io.c (io_tag):  Add tag_iomsg.
	(resolve_tag): Add standards warning for iomsg.
	(match_open_element):  Add iomsg.
	(gfc_free_open):  Add iomsg.
	(gfc_resolve_open):  Add iomsg.
	(gfc_free_close):  Add iomsg.
	(match_close_element):  Add iomsg.
	(gfc_resolve_close):  Add iomsg.
	(gfc_free_filepos):  Add iomsg.
	(match_file_element):  Add iomsg.
	(gfc_resolve_filepos):  Add iostat and iomsg.
	(match-dt_element):  Add iomsg.
	(gfc_free_dt):  Add iomsg.
	(gfc_resolve_dt):  Add iomsg.
	(gfc_free_inquire):  Add iomsg.
	(match_inquire_element):  Add iomsg.
	(gfc_resolve_inquire):  Add iomsg.
	* trans_io.c:  Add ioparm_iomsg and ioparm_iomsg_len.
	(gfc_build_io_library_fndecls):  Add iomsg as last field.
	(gfc_trans_open):  Add iomsg.
	(gfc_trans_close):  Add iomsg.
	(build_fileos):  Call set_string for iomsg.
	(gfc_trans_inquire):  Add iomsg.
	(build_dt):  Add iomsg.

2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>

	* io/io.h:  Add iomsg as last field of st_parameter.
	* runtime/error.c (generate_error):  If iomsg is present, copy
	the message there.

2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>

	* gfortran.dg/iomsg_1.f90:  New test case.

From-SVN: r104102
2005-09-09 18:21:45 +00:00
Richard Sandiford ec25720ba3 re PR fortran/12840 ([4.0 only] Unable to find scalarization loop specifier)
PR fortran/12840
	* trans.h (gfor_fndecl_internal_realloc): Declare.
	(gfor_fndecl_internal_realloc64): Declare.
	* trans-decl.c (gfor_fndecl_internal_realloc): New variable.
	(gfor_fndecl_internal_realloc64): New variable.
	(gfc_build_builtin_function_decls): Initialize them.
	* trans-array.h (gfc_trans_allocate_temp_array): Add a fourth argument.
	* trans-array.c (gfc_trans_allocate_array_storage): Add an argument
	to say whether the array can grow later.  Don't allocate the array
	on the stack if so.  Don't call malloc for zero-sized arrays.
	(gfc_trans_allocate_temp_array): Add a similar argument here.
	Pass it along to gfc_trans_allocate_array_storage.
	(gfc_get_iteration_count, gfc_grow_array): New functions.
	(gfc_iterator_has_dynamic_bounds): New function.
	(gfc_get_array_constructor_element_size): New function.
	(gfc_get_array_constructor_size): New function.
	(gfc_trans_array_ctor_element): Replace pointer argument with
	a descriptor tree.
	(gfc_trans_array_constructor_subarray): Likewise.  Take an extra
	argument to say whether the variable-sized part of the constructor
	must be allocated using realloc.  Grow the array when this
	argument is true.
	(gfc_trans_array_constructor_value): Likewise.
	(gfc_get_array_cons_size): Delete.
	(gfc_trans_array_constructor): If the loop bound has not been set,
	split the allocation into a static part and a dynamic part.  Set
	loop->to to the bounds for static part before allocating the
	temporary.  Adjust call to gfc_trans_array_constructor_value.
	(gfc_conv_loop_setup): Allow any constructor to determine the
	loop bounds.  Check whether the constructor has a dynamic size
	and prefer to use something else if so.  Expect the loop bound
	to be set later.  Adjust call to gfc_trans_allocate_temp_array.
	* trans-expr.c (gfc_conv_function_call): Adjust another call here.

From-SVN: r104073
2005-09-09 06:00:40 +00:00
Francois-Xavier Coudert 3c12752024 re PR libfortran/23262 ([mingw32] rewind truncates file)
PR libfortran/23262
	* acinclude.m4 (LIBGFOR_CHECK_CRLF): New check.
	* configure.ac: Use new check.
	* configure.in: Regenerate.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* io/transfer.c (next_record_w): Add case for CRLF as line
	terminator.
	* io/unix.c (tempfile, regular_file): Open files with
	O_BINARY on systems with CRLF.

From-SVN: r104009
2005-09-07 21:25:40 +00:00
Steve Ellcey 98cd8256af re PR libfortran/23419 (unformatted complex I/O with kind=10)
PR libfortran/23419
	* io/write.c (extract_int): Use memcpy to access buffer.
	(extract_uint): Ditto.
	(extract_real): Ditto.

From-SVN: r104000
2005-09-07 20:16:47 +00:00
Thomas Koenig a9390eaf27 list_read.c: Adjust size of of value to 32 (to hold kind=16 complex values).
2005-09-05  Thomas Koenig  <Thomas.Koenig@online.de>

	* io/list_read.c:  Adjust size of of value to 32 (to hold
	kind=16 complex values).

From-SVN: r103918
2005-09-05 21:13:39 +00:00
Thomas Koenig 0ef6349514 re PR libfortran/23321 (Direct unformatted read beyond EOF cores)
2005-09-04  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/23321
	* io/transfer.c(data_transfer_init):  Check for a too-large
	record number.  Return if sseek failed.

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

	PR libfortran/23321
	* gfortran.dg/direct_io_4.f90:  New test case.

From-SVN: r103835
2005-09-04 20:36:52 +00:00
Jakub Jelinek 36dd4221c5 read.c (read_x): Take int argument instead of fnode * and digging the N from F->u.n.
* io/read.c (read_x): Take int argument instead of fnode * and
	digging the N from F->u.n.
	* io/io.h (read_x): Adjust prototype.
	* io/transfer.c (formatted_transfer): Adjust callers.  Don't clobber
	f->u.n for FMT_T.

	* gfortran.dg/fmt_t_1.f90: New test.

From-SVN: r103811
2005-09-03 20:54:55 +02:00
Francois-Xavier Coudert 8845001b6c unix.c (stream_ttyname): Protect use of ttyname by HAVE_TTYNAME macro.
* io/unix.c (stream_ttyname): Protect use of ttyname by
	HAVE_TTYNAME macro.
	* configure.ac: Add check for ttyname.
	* config.h.in: Regenerate.
	* configure: Regenerate.

From-SVN: r103794
2005-09-02 20:24:49 +00:00
Andreas Jaeger e55a7487ca libgfortran.h: Add prototype for init_compile_options.
* libgfortran.h: Add prototype for init_compile_options.

	* io/io.h: Add prototype for notify_std.

From-SVN: r103778
2005-09-02 15:29:53 +02:00
Steve Ellcey af452a2bf9 * io/read.c (set_integer): Use memcpy to fill buffer.
From-SVN: r103687
2005-08-31 17:05:52 +00:00
Steve Ellcey 2efa12b340 re PR target/23556 (FAIL: gfortran.dg/pr18122.f90)
PR target/23556
	* io/read.c (convert_real): Use memcpy to fill buffer.

From-SVN: r103685
2005-08-31 16:58:28 +00:00
Thomas Koenig 827afb8629 [multiple changes]
2005-08-29  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/23598
	* io/lock.c(library_start):  If ioparm.iostat is present, clear
	it unconditionally.

2005-02-29  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/23598
	* gfortran.dg/iostat_1.f90:  New test.

From-SVN: r103613
2005-08-29 20:40:02 +00:00
Francois-Xavier Coudert 10c682a0cb acinclude.m4 (LIBGFOR_CHECK_UNLINK_OPEN_FILE): Add check to see if target can unlink open files.
* acinclude.m4 (LIBGFOR_CHECK_UNLINK_OPEN_FILE): Add check to see
	if target can unlink open files.
	* configure.ac: Use this new test.
	* config.h.in: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* aclocal.ac: Regenerate.
	* io/io.h: Add prototype for unpack_filename.
	* io/close.c (st_close): Delete file after closing unit if
	HAVE_UNLINK_OPEN_FILE is not defined.
	* io/unix.c (unpack_filename): Unlink scratch file after opening
	it only if HAVE_UNLINK_OPEN_FILE is defined.

From-SVN: r103566
2005-08-27 16:01:54 +00:00
Kelley Cook fe2ae685a1 All files: Update FSF address.
2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>

	* All files: Update FSF address.

From-SVN: r103194
2005-08-17 02:49:08 +00:00
Thomas Koenig 950ad21d34 re PR libfortran/23428 (inquire(iolength= ) for complex give incorrect value)
2005-08-16  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/23428
	* io/transfer.c (iolength_transfer):  Remove __attribute__ ((unused))
	from type.  Return correct length for inquire(iolength=)
	for complex variables.

2005-08-16  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/23428
	* gfortran.dg/inquire-complex.f90:  New test case.

From-SVN: r103168
2005-08-16 20:26:04 +00:00
Andreas Jaeger 5074edf00b Fix date of last entry, remove extra whitespace
From-SVN: r103019
2005-08-12 08:00:46 +02:00
Francois-Xavier Coudert 8b67b708f1 re PR libfortran/20006 ($ format extension doesn't work)
PR libfortran/20006
	* gfortran.h: Add is_main_program member to symbol_attribute.
	* trans-decl: Add a gfor_fndecl_set_std tree.
	(gfc_build_builtin_function_decls): Create it.
	(gfc_generate_function_code): Add this call at the beginning of
	the main program.
	* trans.c (gfc_generate_code): Move main_program and attr.
	* trans.h: Add declaration for gfor_fndecl_set_std.

	* Makefile.am: Add file runtime/compile_options.c.
	* Makefile.in: Regenerate.
	* libgfortran.h: Create structure compile_options_t. Define the
	compile_options variable and GFC_STD_ macros.
	* runtime/compile_options.c: New file.
	* runtime/error.c (notify_std): New function.
	* runtime/main.c (init): Call init_compile_options during
	initialization.
	* io/format.c: Use the new notify_std function for the $
	descriptor extension.

	* gfortran.dg/runtime_warning_1.f90: New test.

Co-Authored-By: Steven Bosscher <stevenb@suse.de>

From-SVN: r102990
2005-08-11 13:50:13 +00:00
François-Xavier Coudert ae8b87895f check.c (gfc_check_ttynam_sub, [...]): Add check functions for new intrinsics TTYNAM and ISATTY.
* check.c (gfc_check_ttynam_sub, gfc_check_isatty): Add check
	functions for new intrinsics TTYNAM and ISATTY.
	* intrinsic.c (add_functions, add_subroutines): Add new
	intrinsics.
	* intrinsic.h: Add prototypes for new check and resolve
	functions.
	* iresolve.c (gfc_resolve_isatty, gfc_resolve_ttynam_sub): New
	resolve functions for intrinsics TTYNAM and ISATTY.
	* gfortran.h (gfc_generic_isym_id): Add symbol for ISATTY.
	* trans-intrinsic.c: Add case for GFC_ISYM_ISATTY.
	* Makefile.am: Add file intrinsics/tty.c to Makefile process.
	* Makefile.in: Regenerate.
	* io/io.h: Prototypes for new functions stream_isatty and
	stream_ttyname.
	* io/unix (stream_isatty, stream_ttyname): New functions to call
	isatty() and ttyname() on a given unit.
	* intrinsics/tty.c: New file to implement g77 intrinsics TTYNAM
	and ISATTY.

From-SVN: r102915
2005-08-09 17:33:17 +00:00
Jerry DeLisle 3d092c45bf re PR libfortran/23154 (Currupt string and segfault in formatted read.)
2005-08-08  Jerry DeLisle  <jvdelisle@verizon.net>

        PR libfortran/23154
        * io/transfer.c (data_transfer_init): Initialize
        current_unit->bytes_left for a read.

From-SVN: r102893
2005-08-09 01:56:04 +00:00
Steven G. Kargl c7877252d4 Forgot to remove and add these files in the previous commit.
* io/backspace.c: File removed, contents moved to ...
	* io/endfile.c: Ditto.
	* io/rewind.c: Ditto.
	* io/file_pos.c: New file, ... here.

From-SVN: r102836
2005-08-07 22:59:00 +00:00
Janne Blomqvist 6403ec5ff6 [multiple changes]
2005-08-07   Janne Blomqvist <jblomqvi@cc.hut.fi>

        PR fortran/22390
        * dump-parse-tree.c (gfc_show_code_node): Add case for FLUSH.
        * gfortran.h: Add enums for FLUSH.
        * io.c (gfc_free_filepos,match_file_element,match_filepos): Modify
        comment appropriately.  (gfc_match_flush): New function.
        * match.c (gfc_match_if): Add match for flush.
        * match.h: Add prototype.
        * parse.c (decode_statement): Add flush to 'f' case.
        (next_statement): Add case for flush. (gfc_ascii_statement): Likewise.
        * resolve.c (resolve_code): Add flush case.
        * st.c (gfc_free_statement): Add flush case.
        * trans-io.c: Add prototype for flush.
        (gfc_build_io_library_fndecls): Build fndecl for flush.
        (gfc_trans_flush): New function.
        * trans-stmt.h: Add prototype.
        * trans.c (gfc_trans_code): Add case for flush.

2005-08-07  Janne Blomqvist  <jblomqvi@cc.hut.fi>

        PR fortran/22390
        * io/backspace.c: File removed, contents moved to ...
        * io/endfile.c: Ditto.
        * io/rewind.c: Ditto.
        * io/file_pos.c: New file, ... here.
        * Makefile.am: Add file_pos.c to list, remove obsolete files.
        * Makefile.in: Regenerated.

2005-08-07  Janne Blomqvist <jblomqvi@cc.hut.fi>
            Steven G. Kargl <kargls@comcast.net>

        PR fortran/22390
        * gfortran.dg/flush_1.f90: New test.

Co-Authored-By: Steven G. Kargl <kargls@comcast.net>

From-SVN: r102835
2005-08-07 22:56:19 +00:00
Francois-Xavier Coudert e087fdd81c io.h: Change DEFAULT_TEMPDIR to /tmp instead of /var/tmp.
* io/io.h: Change DEFAULT_TEMPDIR to /tmp instead of /var/tmp.
	* io/unix.c (tempfile): Look at the TEMP environment variable
	to find the temporary files directory. Whitespace correction.

From-SVN: r102822
2005-08-06 22:57:46 +00:00
Francois-Xavier Coudert 2c4a108eec * io/unix.c: Add O_RDWR to open() call.
From-SVN: r102811
2005-08-06 15:38:49 +00:00
Paul Thomas 9427924ef8 transfer.c (data_transfer_init): Truncate file in sequential WRITE when last_record == 0, rather than current_record.
2005-08-04 Paul Thomas  <pault@gcc.gnu.org>

	* transfer.c (data_transfer_init): Truncate file in
	sequential WRITE when last_record == 0, rather than
	current_record.  Cures problem on RH9.

From-SVN: r102746
2005-08-04 20:26:29 +00:00
Francois-Xavier Coudert 06b23b9287 libgfortran.h: When isfinite is not provided by the system...
* libgfortran.h: When isfinite is not provided by the system,
	define it as a macro, so that it can accept any floating point
	type.

From-SVN: r102707
2005-08-03 20:00:00 +00:00
François-Xavier Coudert 5e9d09007d re PR libfortran/23178 (Undefined symbol: __gfortran_flush_i8)
PR libfortran/23178
	* intrinsics/flush.c (flush_i8): Add function flush_i8. Update
	copyright years.

From-SVN: r102641
2005-08-01 21:13:39 +00:00
Francois-Xavier Coudert d4d145acd4 re PR libfortran/21787 (flush I/O before calling abort())
PR libfortran/21787
	* intrinsics/abort.c (abort): Close units before aborting.
	Updated copyright years.

From-SVN: r102600
2005-07-31 07:30:34 +00:00
Francois-Xavier Coudert 6d56728a75 re PR libfortran/22436 (print *,tiny(1._10) yields asterisks)
PR libfortran/22436
	* io/write.c (write_real): Add default formats for real(10) and
	real(16).

From-SVN: r102590
2005-07-30 20:45:02 +00:00
Paul Thomas b6f571b7d3 PR fortran/22570 and related issues.
2005-07-30 Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/22570 and related issues.
	* transfer.c (formatted_transfer): Make sure that there
	really is data present before X- or T- editing. Move all
	treatment of tabbing during writes to start of next data
	producing format. Suppress incorrect zeroing of bytes_left
	in slash formating. Insert int cast for assignment of a
	difference of two gfc_offsets.

	PR fortran/22570 an related issues.
	* gfortran.dg/x_slash_1.f: New test.

From-SVN: r102583
2005-07-30 05:33:39 +00:00
Steven Bosscher 75554d5149 whitespace fixes for my scripts
From-SVN: r102333
2005-07-24 10:37:48 +00:00
Jerry DeLisle 35fd722b61 write.c (write_float): Revise output of IEEE exceptional values to comply with F95 and F2003 standards.
2005-07-23  Jerry DeLisle  <jvdelisle@verizon.net>

    * io/write.c (write_float): Revise output of IEEE exceptional
    values to comply with F95 and F2003 standards.

From-SVN: r102324
2005-07-24 02:24:15 +00:00
Jerry DeLisle d1cc97e081 re PR libfortran/22570 (Null Characters instead of blanks in text output.)
2005-07-22 Jerry DeLisle <jvdelisle@verizon.net>

	PR libfortran/22570
	* io/unit.c (init_units): Replace BLANK_ZERO with
	BLANK_UNSPECIFIED.

From-SVN: r102288
2005-07-22 17:43:31 +00:00
Paul Thomas 94e2b58a28 [multiple changes]
2005-07-22 Jerry DeLisle <jvdelisle@verizon.net>

	PR libfortran/21875  (FM111.f)
	* io/read.c (next_char): Return a ' ' character when BLANK_ZERO
	or BLANK_NULL are active.
	(read_decimal): Interpret ' ' character correctly for BZ or BN.
	(read_radix): Interpret ' ' character correctly for BZ or BN.
	(read_f): Interpret ' ' character correctly for BZ or BN.

2005-07-22 Paul Thomas  <pault@gcc.gnu.org>

	PR libfortran/22570
	* read.c (read_x): Correct the condition for doing the
	x-editing during formatted input.
	* transfer.c (formatted_transfer): Cast offset difference
	as int, clean-up arithmetic with new variable, bytes_used,
	zero counters for FMT_SLASH,
	(data_transfer_init) Zero X- and T-editing counters
	unconditionally.
	(next_record_w) Zero X- and T-editing counters.
	unconditionally.

From-SVN: r102284
2005-07-22 14:07:19 +00:00
Jerry DeLisle b60f1196cf ChangeLog: Fix date on last commit.
2005-07-17  Jerry DeLisle  <jvdelisle@verizon.net>

    * libfortran/ChangeLog: Fix date on last commit.

From-SVN: r102116
2005-07-17 20:53:18 +00:00
Jerry DeLisle 2c01a7204f write.c (write_float): Fix field width checks for printing 'Infinity' or 'Inf'.
2005-07-14  Jerry DeLisle  <jvdelisle@verizon.net>

    * io/write.c (write_float): Fix field width checks for
    printing 'Infinity' or 'Inf'.
    (output_float): Fix typo in comment.

From-SVN: r102115
2005-07-17 20:28:14 +00:00
Paul Thomas be0cc7e21c [multiple changes]
2005-07-12 Paul Thomas  <pault@gcc.gnu.org>

	PR libfortran/16435
	* transfer.c (formatted_transfer): Correct the problems
	with X- and T-editting that caused TLs followed by TRs
	to overwrite data, which caused NIST FM908.FOR to fail
	on many tests.
	(data_transfer_init): Zero X- and T-editting counters at
	the start of formatted IO.
	* write.c (write_x): Write specified number of skips with
	specified number of spaces at the end.

2005-07-12  Paul Thomas  <pault@gcc.gnu.org>

	PR libfortran/16435
	* gfortran.dg/tl_editting.f90: New.
	* gfortran.dg/g77/f77-edit-x-out.f: Remove XFAIL.

From-SVN: r102008
2005-07-14 06:21:59 +00:00
Paul Thomas b125b4cf0f [multiple changes]
2005-07-13 Paul Thomas  <pault@gcc.gnu.org>

	* io/read.c (read_complex): Prevent X formatting during reads
	from going beyond EOR to fix NIST fm908.FOR failure.
	* io/list_read.c (read_complex): Allow complex data in list-
	directed reads to have eols either side of the comma to
	fix NIST FM906.FOR failure.

2005-07-13  Paul Thomas  <pault@gcc.gnu.org>

	* gfortran.dg/past_eor.f90: New.
	* gfortran.dg/complex_read.f90: New.

From-SVN: r101984
2005-07-13 18:43:14 +00:00
Thomas Koenig 0d579784b4 re PR libfortran/21593 ([4.0 only] FAIL: gfortran.dg/dev_null.f90)
2005-07-12  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/21593
	gfortran.dg/dev_null.f90:  Remove outdated comment about
	PR libfortran/21593.
	libgfortran/ChangeLog:  Add PR to entry.

From-SVN: r101940
2005-07-12 20:39:11 +00:00
Thomas Koenig 5133e4b923 io/unix.c: Add member special_file to type unix_stream.
2005-07-12  Thomas Koenig  <Thomas.Koenig@online.de>

	io/unix.c:  Add member special_file to type unix_stream.
	(fd_truncate):  Don't call ftruncate or chsize if
	s refers to a special file.
	(fd_to_stream):  initialize s->special_file.

2005-07-12  Thomas Koenig  <Thomas.Koenig@online.de>

	gfortran.dg/dev_null.f90:  Remove targets.

From-SVN: r101937
2005-07-12 19:52:19 +00:00
David Edelsohn 4e402b2ce3 re PR libfortran/22412 ([4.0 only] Fortran B edit descriptor error)
PR libgfortran/22412
        * io/write.c (otoa): Bias p by SCRATCH_SIZE, not
        sizeof (SCRATCH_SIZE).
        (btoa): Same.

From-SVN: r101908
2005-07-11 23:27:40 -04:00
Jerry DeLisle 9fa276de85 PR libfortran/21875 (FM111.f)
2005-07-09  Jerry DeLisle  <jvdelisle@verizon.net>

    PR libfortran/21875  (FM111.f)
    * io/read.c (next_char): Return a ' ' character when BLANK_ZERO or
    BLANK_NULL are active.
    (read_decimal): Interpret ' ' character correctly for BZ or BN.
    (read_radix): Interpret ' ' character correctly for BZ or BN.
    (read_f): Interpret ' ' character correctly for BZ or BN.
    * gfortran.dg/test (fmt_read_bz_bn.f90): New test case.

From-SVN: r101837
2005-07-09 23:40:31 +00:00
Thomas Koenig 999a06a0da [multiple changes]
2005-07-07  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
	    Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/22217
	* io/write.c (extract_unit):  New function; extract
	ints as unsigned signed int of the correct size.
	* io/write.c (write_int):  Use it.
	* runtime/error.c:  Adjust copyright years.
	Adjust size of buffer to maximum that can occur.

2005-07-07  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/22217
	* gfortran.dg/negative-z-descriptor.f90:  New test.

From-SVN: r101829
2005-07-09 09:33:31 +00:00
Tobias Schlüter efd4dc1a15 libgfortran.h (GFC_ARRAY_DESCRIPTOR): Replace 'type *base' by 'size_t offset'.
* libgfortran.h (GFC_ARRAY_DESCRIPTOR): Replace 'type *base' by
	'size_t offset'.
	* intrinsics/cshift0.c, intrinsics/eoshift0.c,
	intrinsics/eoshift2.c,intrinsics/pack_generic.c,
	intrinsics/reshape_generic.c, intrinsics/spread_generic.c,
	intrinsics/transpose_generic.c, intrinsics/unpack_generic,
	m4/cshift1.m4, m4/eoshift1.m4, m4/eoshift3.m4, m4/iforeach.m4,
	m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4, m4/reshape.m4,
	m4,transpose.m4: Set renamed field 'offset' to zero instead of
	'base'.
	* generated/all_l4.c, generated/all_l8.c,
	generated/any_l4.c, generated/any_l8.c, generated/count_4_l4.c,
	generated/count_4_l8.c, generated/count_8_l4.c,
	generated/count_8_l8.c, generated/chift1_4.c,
	generated/cshift1_8.c, generated/eoshift1_4.c,
	generated/eoshift1_8.c, generated/eoshift3_4.c,
	generated/eoshift3_8.c, generated/matmul_c4.c,
	generated/matmul_c8.c, generated/matmul_i4.c, matmul_i8.c,
	generated/matmul_l4.c, generated/matmul_l8.c,
	generated/matmul_r4.c, generated/matmul_r8.c,
	generated/maxloc0_4_i4.c, generated/maxloc0_4_i8.c,
	generated/maxloc0_4_r4.c, generated/maxloc0_4_r8.c,
	generated/maxloc0_8_i4.c, generated/maxloc0_8_i8.c,
	generated/maxloc0_8_r4.c, generated/maxloc0_8_r8.c,
	generated/maxloc1_4_i4.c, generated/maxloc1_4_i8.c,
	generated/maxloc1_4_r4.c, generated/maxloc1_4_r8.c,
	generated/maxloc1_8_i4.c, generated/maxloc1_8_i8.c,
	generated/maxloc1_8_r4.c, generated/maxloc1_8_r8.c,
	generated/maxval_i4.c, generated/maxval_i8.c,
	generated/maxval_r4.c, generated/maxval_r8.c,
	generated/minloc0_4_i4.c, generated/minloc0_4_i8.c,
	generated/minloc0_4_r4.c, generated/minloc0_4_r8.c,
	generated/minloc0_8_i4.c, generated/minloc0_8_i8.c,
	generated/minloc0_8_r4.c, generated/minloc0_8_r8.c,
	generated/minloc1_4_i4.c, generated/minloc1_4_i8.c,
	generated/minloc1_4_r4.c, generated/minloc1_4_r8.c,
	generated/minloc1_8_i4.c, generated/minloc1_8_i8.c,
	generated/minloc1_8_r4.c, generated/minloc1_8_r8.c,
	generated/minval_i4.c, generated/minval_i8.c,
	generated/minval_r4.c, generated/minval_r8.c,
	generated/product_c4.c, generated/product_c8.c,
	generated/product_i4.c, generated/product_i8.c,
	generated/product_r4.c, generated/product_r8.c,
	generated/reshape_c4.c, generated/reshape_c8.c,
	generated/reshape_i4.c, generated/reshape_i8.c,
	generated/sum_c4.c, generated/sum_c8.c, generated/sum_i4.c,
	generated/sum_i8.c, generated/sum_r4.c, generated/sum_r8.c,
	generated/transpose_c4.c, generated/transpose_c8.c,
	generated/transpose_i4.c, generated/transpose_i8.c: Regenerate:

From-SVN: r101739
2005-07-08 00:08:06 +02:00
Thomas Koenig 47b3a403a5 re PR fortran/21594 ([4.0 only] FAIL: gfortran.dg/eoshift.f90 -O0 execution test)
2005-07-07  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/21594
	* intrinsics/eoshift0.c:  If abs(shift) > len, fill the
	the whole array with the boundary value, but don't overrun it.
	* intrinsics/eoshift2.c:  Likewise.
	* m4/eoshift1.m4:  Likewise.
	* m4/eoshift3.m4:  Likewise.
	* generated/eoshift1_4.c:  Regenerated.
	* generated/eoshift1_8.c:  Regenerated.
	* generated/eoshift3_4.c:  Regenerated.
	* generated/eoshift3_8.c:  Regenerated.

2005-07-07  Thomas Koenig  <Thomas.Koenig@online.de>

	PR libfortran/21594
	* gfortran.fortran-torture/execute/intrinsic_eoshift.f90:
	Add test cases where the shift length is greater than the
	array length.

From-SVN: r101738
2005-07-07 22:01:41 +00:00