OSDN Git Service

PR fortran/23677
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index 6cc04bd..a376443 100644 (file)
@@ -1,3 +1,323 @@
+2005-09-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/23677
+       * symbol.c (gfc_is_var_automatic): Return true if character length
+       is non-constant rather than constant.
+       * resolve.c (gfc_resolve): Don't handle !gfc_option.flag_automatic
+       here.
+       * options.c (gfc_post_options): Set gfc_option.flag_max_stack_var_size
+       to 0 for -fno-automatic.
+
+2005-09-23  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/16861
+       * module.c (mio_component_ref): Return if the symbol is NULL
+       and wait for another iteration during module reads.
+       (mio_symtree_ref): Suppress the writing of contained symbols,
+       when a symbol is available in the main namespace.
+       (read_module): Restrict scope of special treatment of contained
+       symbols to variables only and suppress redundant call to
+       find_true_name.
+
+2005-09-22  Steven G. Kargl  <kargls@comcast.net>
+
+       PR fortran/24005
+       * interface.c (check_interface1): Fix NULL dereference.
+
+2005-09-22  Erik Edelmann  <erik.edelmann@iki.fi>
+
+       PR fortran/23843
+       * resolve.c (derived_inaccessible): New function.
+       (resolve_transfer): Use it to check for private
+       components.
+
+2005-09-22  Steven G. Kargl  <kargls@comcast.net>
+
+       PR fortran/23516
+       * intrinsic.c (add_function): Add IMAG, IMAGPART, and REALPART
+       intrinsics.
+       * intrinsic.h: Prototypes for gfc_simplify_realpart and
+       gfc_resolve_realpart.
+       * intrinsic.texi: Document intrinsic procedures.
+       * simplify.c (gfc_simplify_realpart): New function.
+       * irseolve.c (gfc_resolve_realpart): New function.
+
+2005-09-21  Erik Edelmann  <erik.edelmann@iki.fi>
+
+       PR fortran/19929
+       * trans-stmt.c (gfc_trans_deallocate): Check if the 
+       object to be deallocated is an array by looking at 
+       expr->rank instead of expr->symtree->n.sym->attr.dimension.
+
+2005-09-20  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/23420
+       * io.c (resolve_tag): Don't allow non-CHARACTER constants as formats.
+       (match_io): Fix usage of gfc_find_symbol.
+
+2005-09-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/23663
+       * primary.c (match_actual_arg): Handle ENTRY the same way
+       as FUNCTION.
+
+2005-09-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       * Make-lang.in: Make check-fortran alias for check-gfortran.
+
+2005-09-18  Andreas Jaeger  <aj@suse.de>
+
+       * module.c (read_module): Add missed line from last patch.
+
+2005-09-18  Erik Edelmann  <erik.edelmann@iki.fi>
+
+       PR fortran/15975
+       * resolve.c (resolve_symbol): Don't assign default
+       initializer to pointers.
+
+2005-09-18  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/16861
+       * module.c (read_module): Give symbols from module procedures
+       different true_name entries to those from the module proper.
+
+2005-09-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR fortran/15586
+       * arith.c (gfc_arith_error): Add translation support for error
+       messages.
+       * array.c (gfc_match_array_ref): Likewise.
+       (gfc_match_array_spec): Likewise.
+       * check.c (must_be): Add msgid convention to third argument.
+       (same_type_check): Add translation support for error message.
+       (rank_check): Likewise.
+       (kind_value_check): Likewise.
+       (gfc_check_associated): Correct typo.
+       (gfc_check_reshape): Add translation support for error message.
+       (gfc_check_spread): Likewise.
+       * error.c (error_printf): Add nocmsgid convention to argument.
+       (gfc_warning, gfc_notify_std, gfc_warning_now, gfc_warning_check)
+       (gfc_error, gfc_error_now): Likewise.
+       (gfc_status): Add cmsgid convention to argument.
+       * expr.c (gfc_extract_int): Add translation support for error
+       messages.
+       (gfc_check_conformance): Add msgid convention to argument.
+       (gfc_check_pointer_assign): Correct tabbing.
+       * gfortran.h: Include intl.h header. Remove prototype for gfc_article.
+       * gfortranspec.c: Include intl.h header.
+       (lang_specific_driver): Add translation support for --version.
+       * io.c (check_format): Add translation support for error message.
+       (format_item_1): Likewise.
+       (data_desc): Likewise.
+       * matchexp.c: Likewise.
+       * misc.c (gfc_article): Remove function.
+       * module.c (bad_module): Use msgid convention. Add translation support
+       for error messages.
+       (require_atom): Add translation support for error messages.
+       * parse.c (gfc_ascii_statement): Likewise.
+       (gfc_state_name): Likewise.
+       * primary.c (match_boz_constant): Reorganise error messages for
+       translations.
+       * resolve.c (resolve_entries): Likewise.
+       (resolve_operator): Add translation support for error messages.
+       (gfc_resolve_expr): Use msgid convention. Reorganise error messages
+       for translations.
+       (resolve_symbol): Add translation support for error messages.
+       * symbol.c (gfc_add_procedure): Remove use of gfc_article function.
+       * trans-const.c (gfc_build_string_const): Use msgid convention.
+
+2005-09-16  Paul Brook  <paul@codesourcery.com>
+
+       PR fortran/23906
+       * dependency.c (transform_sections): Divide by correct value.
+       Elaborate comment.
+
+2005-09-14  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/21875 Internal Unit Array I/O, NIST
+       * fortran/trans-io.c (gfc_build_io_library_fndecls): Add field for
+       array descriptor to IOPARM structure.
+       * fortran/trans-io.c (set_internal_unit): New function to generate code
+       to store the character (array) and the character length for an internal
+       unit.
+       * fortran/trans-io (build_dt): Use the new function set_internal_unit.
+       
+2005-09-14  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/19358
+       * trans-array.c (gfc_trans_dummy_array_bias): correct the typo
+       which uses dim[i].upper for lbound, rather than dim[i].lower.
+
+2005-09-13  Erik Edelmann  <erik.edelmann@iki.fi>
+
+       PR fortran/17740
+       * trans-expr.c (gfc_trans_arrayfunc_assign): Check value
+       of attr.elemental for specific function instead of generic name.
+
+2005-09-13  Richard Sandiford  <richard@codesourcery.com>
+
+       PR fortran/18899
+       * trans-intrinsic.c (gfc_conv_intrinsic_bound): Move initialization
+       of argse.  Remove now-redundant want_pointer assignment.
+       * trans-array.c (gfc_conv_expr_descriptor): When not assigning to
+       a pointer, keep the original bounds of a full array reference.
+
+2005-09-13  Richard Sandiford  <richard@codesourcery.com>
+
+       PR target/19269
+       * iresolve.c (gfc_resolve_cshift, gfc_resolve_eoshift)
+       (gfc_resolve_pack, gfc_resolve_reshape, gfc_resolve_spread)
+       (gfc_resolve_transpose, gfc_resolve_unpack): Add "_char" to the name
+       for character-based operations.
+       (gfc_resolve_pack): Remove ATTRIBUTE_UNUSED from array argument.
+       (gfc_resolve_unpack): Copy the whole typespec from the vector.
+       * trans-array.c (gfc_conv_expr_descriptor): In the EXPR_FUNCTION
+       case, get the string length from the scalarization state.
+
+2005-09-14  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       * Make-lang.in: Change targets prefixes from f95 to fortran.
+       * config-lang.in: Change language name to "fortran".
+       * lang.opt: Change language name to "fortran".
+       * options.c: Change CL_F95 to CL_Fortran.
+
+2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>
+
+       gfortran.texi:  Document IOSTAT= specifier.
+
+2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>
+
+       * gfortran.h:  Add iomsg to gfc_open, gfc_close, gfc_filepos,
+       gfc_inquire and gfc_dt.
+       * dump-parse-tree.c (gfc_show_code_node):  Add iomsg
+       for open, close, file positioning, inquire and namelist.
+       * io.c (io_tag):  Add tag_iomsg.
+       (resolve_tag): Add standards warning for iomsg.
+       (match_open_element):  Add iomsg.
+       (gfc_free_open):  Add iomsg.
+       (gfc_resolve_open):  Add iomsg.
+       (gfc_free_close):  Add iomsg.
+       (match_close_element):  Add iomsg.
+       (gfc_resolve_close):  Add iomsg.
+       (gfc_free_filepos):  Add iomsg.
+       (match_file_element):  Add iomsg.
+       (gfc_resolve_filepos):  Add iostat and iomsg.
+       (match-dt_element):  Add iomsg.
+       (gfc_free_dt):  Add iomsg.
+       (gfc_resolve_dt):  Add iomsg.
+       (gfc_free_inquire):  Add iomsg.
+       (match_inquire_element):  Add iomsg.
+       (gfc_resolve_inquire):  Add iomsg.
+       * trans_io.c:  Add ioparm_iomsg and ioparm_iomsg_len.
+       (gfc_build_io_library_fndecls):  Add iomsg as last field.
+       (gfc_trans_open):  Add iomsg.
+       (gfc_trans_close):  Add iomsg.
+       (build_fileos):  Call set_string for iomsg.
+       (gfc_trans_inquire):  Add iomsg.
+       (build_dt):  Add iomsg.
+
+2005-09-09  Richard Sandiford  <richard@codesourcery.com>
+
+       * match.h (gfc_match_equiv_variable): Declare.
+
+2005-09-09  Richard Sandiford  <richard@codesourcery.com>
+
+       PR fortran/19239
+       * Makefile.in (fortran/trans-expr.o): Depend on dependency.h.
+       * dependency.h (gfc_ref_needs_temporary_p): Declare.
+       * dependency.c (gfc_ref_needs_temporary_p): New function.
+       (gfc_check_fncall_dependency): Use it instead of inlined check.
+       By so doing, take advantage of the fact that character substrings
+       within an array reference also need a temporary.
+       * trans.h (GFC_SS_VECTOR): Adjust comment.
+       * trans-array.c (gfc_free_ss): Remove GFC_SS_VECTOR case.
+       (gfc_set_vector_loop_bounds): New function.
+       (gfc_add_loop_ss_code): Call it after evaluating the subscripts of
+       a GFC_SS_SECTION.  Deal with the GFC_SS_VECTOR case by evaluating
+       the vector expression and caching its descriptor for use within
+       the loop.
+       (gfc_conv_array_index_ref, gfc_conv_vector_array_index): Delete.
+       (gfc_conv_array_index_offset): Handle scalar, vector and range
+       dimensions as separate cases of a switch statement.  In the vector
+       case, use the loop variable to calculate a vector index and use the
+       referenced element as the dimension's index.  Perform bounds checking
+       on this final index.
+       (gfc_conv_section_upper_bound): Return null for vector indexes.
+       (gfc_conv_section_startstride): Give vector indexes a start value
+       of 0 and a stride of 1.
+       (gfc_conv_ss_startstride): Adjust for new GFC_SS_VECTOR representation.
+       (gfc_conv_expr_descriptor): Expand comments.  Generalize the
+       handling of the !want_pointer && !direct_byref case.  Use
+       gfc_ref_needs_temporary_p to decide whether the variable case
+       needs a temporary.
+       (gfc_walk_variable_expr): Handle DIMEN_VECTOR by creating a
+       GFC_SS_VECTOR index.
+       * trans-expr.c: Include dependency.h.
+       (gfc_trans_arrayfunc_assign): Fail if the target needs a temporary.
+
+2005-09-09  Richard Sandiford  <richard@codesourcery.com>
+
+       PR fortran/21104
+       * trans.h (gfc_interface_sym_mapping, gfc_interface_mapping): Moved
+       from trans-expr.c.
+       (gfc_init_interface_mapping, gfc_free_interface_mapping)
+       (gfc_add_interface_mapping, gfc_finish_interface_mapping)
+       (gfc_apply_interface_mapping): Declare.
+       * trans-array.h (gfc_set_loop_bounds_from_array_spec): Declare.
+       (gfc_trans_allocate_temp_array): Add pre and post block arguments.
+       * trans-array.c (gfc_set_loop_bounds_from_array_spec): New function.
+       (gfc_trans_allocate_array_storage): Replace loop argument with
+       separate pre and post blocks.
+       (gfc_trans_allocate_temp_array): Add pre and post block arguments.
+       Update call to gfc_trans_allocate_array_storage.
+       (gfc_trans_array_constructor, gfc_conv_loop_setup): Adjust for new
+       interface to gfc_trans_allocate_temp_array.
+       * trans-expr.c (gfc_interface_sym_mapping, gfc_interface_mapping):
+       Moved to trans.h.
+       (gfc_init_interface_mapping, gfc_free_interface_mapping)
+       (gfc_add_interface_mapping, gfc_finish_interface_mapping)
+       (gfc_apply_interface_mapping): Make extern.
+       (gfc_conv_function_call): Build an interface mapping for array
+       return values too.  Call gfc_set_loop_bounds_from_array_spec.
+       Adjust call to gfc_trans_allocate_temp_array so that code is
+       added to SE rather than LOOP.
+
+2005-09-09  Richard Sandiford  <richard@codesourcery.com>
+
+       PR fortran/12840
+       * trans.h (gfor_fndecl_internal_realloc): Declare.
+       (gfor_fndecl_internal_realloc64): Declare.
+       * trans-decl.c (gfor_fndecl_internal_realloc): New variable.
+       (gfor_fndecl_internal_realloc64): New variable.
+       (gfc_build_builtin_function_decls): Initialize them.
+       * trans-array.h (gfc_trans_allocate_temp_array): Add a fourth argument.
+       * trans-array.c (gfc_trans_allocate_array_storage): Add an argument
+       to say whether the array can grow later.  Don't allocate the array
+       on the stack if so.  Don't call malloc for zero-sized arrays.
+       (gfc_trans_allocate_temp_array): Add a similar argument here.
+       Pass it along to gfc_trans_allocate_array_storage.
+       (gfc_get_iteration_count, gfc_grow_array): New functions.
+       (gfc_iterator_has_dynamic_bounds): New function.
+       (gfc_get_array_constructor_element_size): New function.
+       (gfc_get_array_constructor_size): New function.
+       (gfc_trans_array_ctor_element): Replace pointer argument with
+       a descriptor tree.
+       (gfc_trans_array_constructor_subarray): Likewise.  Take an extra
+       argument to say whether the variable-sized part of the constructor
+       must be allocated using realloc.  Grow the array when this
+       argument is true.
+       (gfc_trans_array_constructor_value): Likewise.
+       (gfc_get_array_cons_size): Delete.
+       (gfc_trans_array_constructor): If the loop bound has not been set,
+       split the allocation into a static part and a dynamic part.  Set
+       loop->to to the bounds for static part before allocating the
+       temporary.  Adjust call to gfc_trans_array_constructor_value.
+       (gfc_conv_loop_setup): Allow any constructor to determine the
+       loop bounds.  Check whether the constructor has a dynamic size
+       and prefer to use something else if so.  Expect the loop bound
+       to be set later.  Adjust call to gfc_trans_allocate_temp_array.
+       * trans-expr.c (gfc_conv_function_call): Adjust another call here.
+
 2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/18878