OSDN Git Service

PR fortran/25078
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index 355430d..d480b6f 100644 (file)
@@ -1,3 +1,236 @@
+2005-12-12  Steven G. Kargl  <kargls@comcast.net>
+
+       PR fortran/25078
+       * match.c (gfc_match_equivalence):  Count number of objects.
+
+2005-12-11  Aldy Hernandez  <aldyh@redhat.com>
+
+        * lang.opt: Add RejectNegative to ffixed-form and ffree-form.
+
+2005-12-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR fortran/25068
+       * io.c (resolve_tag): Add correct diagnostic for F2003 feature.
+
+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-09  Roger Sayle  <roger@eyesopen.com>
+
+       PR fortran/22527
+       * f95-lang.c (gfc_truthvalue_conversion): Use a zero of the correct
+       integer type when building an inequality.
+
+2005-12-09  Richard Guenther  <rguenther@suse.de>
+
+       * f95-lang.c (build_builtin_fntypes): Use correct
+       return types, as indicated by comments.
+
+2005-12-08  Erik Edelmann  <eedelman@gcc.gnu.org>
+
+       PR fortran/25292
+       * check.c (gfc_check_associated): Allow function results
+       as actual arguments to ASSOCIATED.  Moved a misplaced
+       comment.
+
+2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
+
+       * Make-lang.in (fortran.all.build, fortran.install-normal): Remove.
+
+2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
+
+       * Make-lang.in: Remove all dependencies on s-gtype, except for
+       gt-fortran-trans.h.
+
+2005-12-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR fortran/25106
+       * 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.
+
+2005-12-02  Richard Guenther  <rguenther@suse.de>
+
+       * trans.h (build1_v): Use build1, not build to build the
+       void typed tree.
+
+2005-12-01  Erik Schnetter  <schnetter@aei.mpg.de>
+
+       * decl.c (gfc_match_old_kind_spec):  Improve handling of old style
+       COMPLEX*N
+
+2005-12-01  Paul Thomas  <pault@gcc.gnu.org>
+
+       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-11-30  Bernhard Fischer <rep.nop@aon.at>
+
+       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
+
+2005-11-30  Paul Thomas  <pault@gcc.gnu.org>
+
+       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-29  Jakub Jelinek  <jakub@redhat.com>
+
+       * io.c (gfc_resolve_open): RESOLVE_TAG access field as well.
+
+2005-11-27 Bernhard Fischer <rep.nop@aon.at>
+
+       * gfortran.h: remove superfluous whitespace and use GNU
+       comment-style for the documentation of backend_decl.
+
+2005-11-27  Steven G. Kargl  <kargls@comcast.net>
+
+       PR fortran/24917
+       * primary.c (match_boz_constant):  Implement postfix BOZ constants;
+       (match_string_constant): Peek for b, o, z, and x
+
+2005-11-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR fortran/23912
+       * 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.
+
+2005-11-21  Jakub Jelinek  <jakub@redhat.com>
+
+       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.
+
 2005-11-21  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/24223