1. 16 Dec, 2005 3 commits
    • rguenth's avatar
      2005-12-16 Richard Guenther <rguenther@suse.de> · fafa1b40
      rguenth authored
              * ChangeLog: Fix missing file names.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108652 138bc75d-0d04-0410-961f-82ee72b054a4
      fafa1b40
    • rguenth's avatar
      2005-12-16 Richard Guenther <rguenther@suse.de> · 9596685a
      rguenth authored
      	(gfc_conv_descriptor_data_addr): Use build_fold_addr_expr where
      	appropriate.
      	(gfc_trans_allocate_array_storage): Likewise.
      	(gfc_trans_array_constructor_value): Likewise.
      	(gfc_conv_array_data): Likewise.
      	(gfc_conv_expr_descriptor): Likewise.
      	(gfc_conv_array_parameter): Likewise.
      	(gfc_conv_variable): Likewise.
      	(gfc_conv_function_val): Likewise.
      	(gfc_conv_function_call): Likewise.
      	(gfc_conv_expr_reference): Likewise.
      	(gfc_conv_intrinsic_ctime): Likewise.
      	(gfc_conv_intrinsic_fdate): Likewise.
      	(gfc_conv_intrinsic_ttynam): Likewise.
      	(gfc_conv_intrinsic_si_kind): Likewise.
      	(gfc_conv_intrinsic_trim): Likewise.
      	(set_parameter_ref): Likewise.
      	(gfc_convert_array_to_string): Likewise.
      	(gfc_trans_open): Likewise.
      	(gfc_trans_close): Likewise.
      	(build_filepos): Likewise.
      	(gfc_trans_inquire): Likewise.
      	(nml_get_addr_expr): Likewise.
      	(transfer_namelist_element): Likewise.
      	(build_dt): Likewise.
      	(gfc_trans_dt_end): Likewise.
      	(transfer_array_component): Likewise.
      	(transfer_expr): Likewise.
      	(transfer_array_desc): Likewise.
      	(gfc_trans_transfer): Likewise.
      	(gfc_trans_allocate): Likewise.
      	(gfc_trans_deallocate): Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108633 138bc75d-0d04-0410-961f-82ee72b054a4
      9596685a
    • kazu's avatar
      * dependency.c, resolve.c, trans-array.c: Fix comment typos. · 22046c26
      kazu authored
      	* gfortran.texi: Fix typos.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108624 138bc75d-0d04-0410-961f-82ee72b054a4
      22046c26
  2. 15 Dec, 2005 1 commit
    • eedelman's avatar
      fortran/ · fc41ffae
      eedelman authored
      2005-12-14  Erik Edelmann  <eedelman@gcc.gnu.org>
      
              PR fortran/18197
              * resolve.c (resolve_formal_arglist): Remove code to set
              the type of a function symbol from it's result symbol.
      
      
      testsuite/
      2005-12-14  Erik Edelmann  <eedelman@gcc.gnu.org>
      
              PR fortran/18197
              * gfortran.dg/dummy_functions_1.f90: New.
      
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108555 138bc75d-0d04-0410-961f-82ee72b054a4
      fc41ffae
  3. 13 Dec, 2005 2 commits
    • rguenth's avatar
      2005-12-13 Richard Guenther <rguenther@suse.de> · ce825331
      rguenth authored
      	* trans-expr.c (gfc_conv_substring): Use fold_build2 and
      	build_int_cst.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108476 138bc75d-0d04-0410-961f-82ee72b054a4
      ce825331
    • rsandifo's avatar
      gcc/fortran/ · 018ef8b8
      rsandifo authored
      	* 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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108459 138bc75d-0d04-0410-961f-82ee72b054a4
      018ef8b8
  4. 12 Dec, 2005 1 commit
  5. 11 Dec, 2005 1 commit
  6. 10 Dec, 2005 3 commits
    • fxcoudert's avatar
      PR fortran/25068 · 2e97472c
      fxcoudert authored
      	* io.c (resolve_tag): Add correct diagnostic for F2003 feature.
      
      	* gfortran.dg/iostat_3.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108360 138bc75d-0d04-0410-961f-82ee72b054a4
      2e97472c
    • tkoenig's avatar
      2005-12-10 Thomas Koenig <Thomas.Koenig@online.de> · 9e94d29f
      tkoenig authored
      	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.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108358 138bc75d-0d04-0410-961f-82ee72b054a4
      9e94d29f
    • sayle's avatar
      · ee85d7fa
      sayle authored
      	PR fortran/22527
      	* f95-lang.c (gfc_truthvalue_conversion): Use a zero of the correct
      	integer type when building an inequality.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108341 138bc75d-0d04-0410-961f-82ee72b054a4
      ee85d7fa
  7. 09 Dec, 2005 1 commit
  8. 08 Dec, 2005 2 commits
  9. 07 Dec, 2005 2 commits
    • amodra's avatar
      gcc/ · ae6555f9
      amodra authored
      	* doc/sourcebuild.texi (all.build, install-normal): Remove.
      	* configure.ac: Remove all.build and install-normal from target_list
      	* configure: Regenerate.
      	* Makefile.in (install): Don't depend on install-normal.
      gcc/java/
      	* Make-lang.in (java.all.build, java.install-normal): Remove.
      gcc/objc/
      	* Make-lang.in (objc.all.build, objc.install-normal): Remove.
      gcc/objcp/
      	* Make-lang.in (obj-c++.all.build, obj-c++.install-normal): Remove.
      gcc/cp/
      	* Make-lang.in (c++.all.build, c++.install-normal): Remove.
      gcc/ada/
      	* Make-lang.in (ada.install-normal): Remove.
      gcc/fortran/
      	* Make-lang.in (fortran.all.build, fortran.install-normal): Remove.
      gcc/treelang/
      	* Make-lang.in (treelang.all.build, treelang.install-normal): Remove.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108158 138bc75d-0d04-0410-961f-82ee72b054a4
      ae6555f9
    • amodra's avatar
      gcc/ · 758e52e0
      amodra authored
      	* doc/gty.texi: Remove instructions for adding a dependency on s-gtype.
      	* Makefile.in: Add code to compute some dependencies on s-gtype
      	automatically.  Remove the declaration of those dependencies.
      gcc/java/
      	* Make-lang.in: Remove all dependencies on s-gtype, except for
      	gt-java-parse.h.
      gcc/objc/
      	* Make-lang.in: Remove all dependencies on s-gtype.
      gcc/objcp/
      	* Make-lang.in: Remove all dependencies on s-gtype.
      gcc/cp/
      	* Make-lang.in: Remove all dependencies on s-gtype.
      gcc/ada/
      	* Make-lang.in: Remove all dependencies on s-gtype.
      gcc/fortran/
      	* Make-lang.in: Remove all dependencies on s-gtype, except for
      	gt-fortran-trans.h.
      gcc/treelang/
      	* Make-lang.in: Remove all dependencies on s-gtype.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108155 138bc75d-0d04-0410-961f-82ee72b054a4
      758e52e0
  10. 03 Dec, 2005 1 commit
    • fxcoudert's avatar
      PR fortran/25106 · 90ba4622
      fxcoudert authored
      	* parse.c (next_free): Use new prototype for gfc_match_st_label.
      	Correctly emit hard error if a label is zero.
      	* match.c (gfc_match_st_label): Never allow zero as a valid
      	label.
      	(gfc_match, gfc_match_do, gfc_match_goto): Use new prototype for
      	gfc_match_st_label.
      	* primary.c (): Use new prototype for gfc_match_st_label.
      	* io.c (): Likewise.
      	* match.h: Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107999 138bc75d-0d04-0410-961f-82ee72b054a4
      90ba4622
  11. 02 Dec, 2005 2 commits
  12. 01 Dec, 2005 1 commit
    • pault's avatar
      2005-12-01 Paul Thomas <pault@gcc.gnu.org> · e8ff3944
      pault authored
      	PR fortran/24789
      	* trans-decl.c (gfc_get_symbol_decl):  Move the expression for
      	unit size of automatic character length, dummy pointer array
      	elements down a few lines from the version that fixed PR15809.
      
      2005-12-01  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/24789
      	*  gfortran.dg/auto_char_dummy_array_2.f90: New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107805 138bc75d-0d04-0410-961f-82ee72b054a4
      e8ff3944
  13. 30 Nov, 2005 2 commits
    • kargl's avatar
      2005-11-30 Bernhard Fischer <rep.nop@aon.at> · 83016156
      kargl authored
      	PR fortran/21302
      	* lang.opt: New options -ffree-line-length- and -ffree-line-length-none.
      	* gfortran.h: Add free_line_length and add description of
      	free_line_length and fixed_line_length.
      	* options.c (gfc_init_options, gfc_handle_option): Initialize
      	and set free_line_length and fixed_line_length.
      	* scanner.c (load_line): Set free_line_length to 132 and
      	fixed_line_length to 72 or user requested values.
      	* scanner.c: Typo in comment.
      	* invoke.texi: Document -ffree-line-length- and
      	-ffree-line-length-none
      
      	gfortran.dg/line_length_1.f: New test:
      	gfortran.dg/line_length_2.f90: Ditto.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107745 138bc75d-0d04-0410-961f-82ee72b054a4
      83016156
    • pault's avatar
      2005-11-30 Paul Thomas <pault@gcc.gnu.org> · 0b044e59
      pault authored
      	PR fortran/15809
      	* trans-decl.c (gfc_get_symbol_decl):  In the case of automatic
      	character length, dummy pointer arrays, build an expression for
      	unit size of the array elements, to be picked up and used in the
      	descriptor dtype.
      	* trans-io.c (gfc_trans_transfer):  Modify the detection of
      	components of derived type arrays to use the gfc_expr references
      	instead of the array descriptor dtype.  This allows the latter
      	to contain expressions.
      
      2005-11-30  Erik Edelmann  <erik.edelmann@iki.fi>
      
      	PR fortran/15809
      	* trans-array.c (gfc_trans_deferred_array):  Allow PARM_DECLs past
      	in addition to VAR_DECLs.
      
      2005-11-30  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/15809
      	*  gfortran.dg/auto_char_dummy_array.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107727 138bc75d-0d04-0410-961f-82ee72b054a4
      0b044e59
  14. 29 Nov, 2005 1 commit
  15. 27 Nov, 2005 3 commits
    • kargl's avatar
      2005-11-27 Bernhard Fischer <rep.nop@aon.at> · b92d9550
      kargl authored
      	* gfortran.h: remove superfluous whitespace and use GNU
      	comment-style for the documentation of backend_decl.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107571 138bc75d-0d04-0410-961f-82ee72b054a4
      b92d9550
    • kargl's avatar
      PR fortran/24917 · 8ac9b1c8
      kargl authored
      * primary.c (match_boz_constant):  Implement postfix BOZ constants;
        (match_string_constant): Peek for b, o, z, and x
      
      * gfortran.dg/boz_6.f90: New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107568 138bc75d-0d04-0410-961f-82ee72b054a4
      8ac9b1c8
    • fxcoudert's avatar
      PR fortran/23912 · e22f77e1
      fxcoudert authored
      	* iresolve.c (gfc_resolve_dim, gfc_resolve_mod,
      	gfc_resolve_modulo): When arguments have different kinds, fold
      	the lower one to the largest kind.
      	* check.c (gfc_check_a_p): Arguments of different kinds is not
      	a hard error, but an extension.
      	* simplify.c (gfc_simplify_dim, gfc_simplify_mod,
      	gfc_simplify_modulo): When arguments have different kinds, fold
              the lower one to the largest kind.
      
      	* gfortran.dg/modulo_1.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107566 138bc75d-0d04-0410-961f-82ee72b054a4
      e22f77e1
  16. 21 Nov, 2005 2 commits
    • jakub's avatar
      gcc/fortran/ · 60c514ba
      jakub authored
      	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.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107328 138bc75d-0d04-0410-961f-82ee72b054a4
      60c514ba
    • pault's avatar
      2005-11-21 Paul Thomas <pault@gcc.gnu.org> · 976d903a
      pault authored
      	PR fortran/24223
      	* resolve.c (resolve_contained_fntype) Error if an internal
      	function is assumed character length.
      
      	PR fortran/24705
      	* trans-decl.c (gfc_create_module_variable) Skip ICE in
      	when backend decl has been built and the symbol is marked
      	as being in an equivalence statement.
      
      2005-11-21  Paul Thomas  <pault@gcc.gnu.org
      
      	PR fortran/24223
      	* gfortran.dg/substring_equivalence.f90: New test.
      
      	PR fortran/24705
      	* gfortran.dg/auto_internal_assumed.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107310 138bc75d-0d04-0410-961f-82ee72b054a4
      976d903a
  17. 20 Nov, 2005 1 commit
  18. 19 Nov, 2005 1 commit
    • jb's avatar
      fortran ChangeLog: · 868213c7
      jb authored
      	
      2005-11-19  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/24862
      	* trans-io.c (gfc_trans_transfer): Handle arrays of derived type.
      
      testsuite ChangeLog:
      
      2005-11-19  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/24862
      	* gfortran.dg/arrayio_derived_1.f90: New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107228 138bc75d-0d04-0410-961f-82ee72b054a4
      868213c7
  19. 17 Nov, 2005 1 commit
    • fxcoudert's avatar
      PR fortran/20811 · a0d72493
      fxcoudert authored
      	* scanner.c (gfc_open_included_file): Add an extra include_cwd
      	argument. Only include files in the current working directory if
      	its value is true.
      	* gfortran.h: Change prototype for gfc_open_included_file.
      	(load_file): Don't search for include files in the current working
      	directory.
      	* options.c (gfc_post_options): Add the directory of the source file
      	to the list of paths for included files.
      	* module.c (gfc_use_module): Look for module files in the current
      	directory.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107120 138bc75d-0d04-0410-961f-82ee72b054a4
      a0d72493
  20. 15 Nov, 2005 1 commit
  21. 13 Nov, 2005 1 commit
    • fxcoudert's avatar
      * intrinsics/fget.c: New file. · 16de8065
      fxcoudert authored
      	* 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_che...
      16de8065
  22. 11 Nov, 2005 1 commit
  23. 10 Nov, 2005 2 commits
    • pault's avatar
      2005-11-10 Paul Thomas <pault@gcc.gnu.org> · 400de984
      pault authored
      	PR fortran/24655
      	PR fortran/24755
      	* match.c (recursive_stmt_fcn): Add checks that symtree exists
      	for the expression to weed out inline intrinsic functions and
      	parameters.
      
      	PR fortran/24409
      	* module.c (mio_symtree_ref): Correct the patch of 0923 so that
      	a symbol is not substituted for by a the symbol for the module
      	itself and to prevent the promotion of a formal argument.
      
      2005-11-10  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/24655
      	PR fortran/24755
      	* gfortran.dg/recursive_statement_functions.f90: Add statement 
      	functions using inline intrinsic functions and parameters to test
      	that they no longer seg-fault.
      
      	PR fortran/24409
      	gfortran.dg/nested_modules_4.f90: New test.
      	gfortran.dg/nested_modules_5.f90: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106756 138bc75d-0d04-0410-961f-82ee72b054a4
      400de984
    • tobi's avatar
      fortran/ · d4848c67
      tobi authored
      PR fortran/24643
      * primary.c (match_varspec): Check for implicitly typed CHARACTER
      variables before matching substrings.
      
      testsuite/
      PR fortran/24643
      * gfortran.dg/implicit_6.f90, gfortran.dg/implicit_7.f90: New.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106753 138bc75d-0d04-0410-961f-82ee72b054a4
      d4848c67
  24. 09 Nov, 2005 2 commits
    • kargl's avatar
      Fix typo in comment. · 9c049e63
      kargl authored
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106709 138bc75d-0d04-0410-961f-82ee72b054a4
      9c049e63
    • eedelman's avatar
      fortran/ · 4c319962
      eedelman authored
      2005-11-09  Erik Edelmann  <eedelman@gcc.gnu.org>
      
              PR fortran/22607
              * trans-decl.c(build_function_decl): Don't set
              DECL_IS_PURE (fndecl) = 1 for return-by-reference
              functions.
      
      testsuite/
      2005-11-09  Erik Edelmann  <eedelman@gcc.gnu.org>
      
              PR fortran/22607
              * gfortran-dg/pure_byref_1.f90: New.
              * gfortran-dg/pure_byref_2.f90: New.
      
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106683 138bc75d-0d04-0410-961f-82ee72b054a4
      4c319962
  25. 08 Nov, 2005 1 commit
  26. 07 Nov, 2005 1 commit