1. 13 Dec, 2005 1 commit
    • 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
  2. 12 Dec, 2005 1 commit
  3. 11 Dec, 2005 1 commit
  4. 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
  5. 09 Dec, 2005 1 commit
  6. 08 Dec, 2005 2 commits
  7. 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
  8. 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
  9. 02 Dec, 2005 2 commits
  10. 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
  11. 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
  12. 29 Nov, 2005 1 commit
  13. 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
  14. 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
  15. 20 Nov, 2005 1 commit
  16. 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
  17. 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
  18. 15 Nov, 2005 1 commit
  19. 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
  20. 11 Nov, 2005 1 commit
  21. 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
  22. 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
  23. 08 Nov, 2005 1 commit
  24. 07 Nov, 2005 2 commits
  25. 06 Nov, 2005 3 commits
    • pault's avatar
      2005-11-06 Paul Thomas <pault@gcc.gnu.org> · c8df3e9c
      pault authored
      	PR fortran/24534
      	* resolve.c (resolve_symbol): Exclude case of PRIVATE declared
      	within derived type from error associated with PRIVATE type
      	components within derived type.
      
      	PR fortran/20838
      	PR fortran/20840
      	* gfortran.h: Add prototype for gfc_has_vector_index.
      	* io.c (gfc_resolve_dt): Error if internal unit has a vector index.
      	* expr.c (gfc_has_vector_index): New function to check if any of
      	the array references of an expression have vector inidices.
      	(gfc_check_pointer_assign): Error if internal unit has a vector index.
      
      	PR fortran/17737
      	* data.c (gfc_assign_data_value): Remove gcc_assert that caused the ICE
      	and replace by a standard dependent warning/error if overwriting an
      	existing initialization.
      	* decl.c (gfc_data_variable): Remove old error for already initialized
      	variable and the unused error check for common block variables.  Add
      	error for hots associated variable and standard dependent error for
      	common block variables, outside of block...
      c8df3e9c
    • jb's avatar
      gfortran ChangeLog · 4ea6d60e
      jb authored
      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.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106563 138bc75d-0d04-0410-961f-82ee72b054a4
      4ea6d60e
    • fxcoudert's avatar
      * intrinsic.c (add_functions): Add ctime and fdate intrinsics. · b902b078
      fxcoudert authored
      	(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.
      	* M...
      b902b078
  26. 05 Nov, 2005 1 commit