OSDN Git Service

PR fortran/31266
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index debe015..ca2721c 100644 (file)
@@ -1,3 +1,361 @@
+2007-04-12  Tobias Schlüter  <tobi@gcc.gnu.org>
+
+       PR fortran/31266
+       * primary.c (gfc_variable_attr): Don't copy string length if it
+       doesn't make sense.
+       * resolve.c (resolve_code): Clarify error message.
+
+       PR fortran/31471
+       * decl.c (gfc_match_end): Also check for construct name in END
+       FORALL and END WERE statements.
+       * match.c (match_case_eos): Use uppercase for statement name in
+       error message.
+       (match_elsewhere): Construct name may appear iff construct has a
+       name.
+
+       * trans-types.c: Update copyright years.  Reformat long comment
+       explaining array descriptor format.  Remove obsolete mention of
+       TYPE_SET.
+
+       * arith.c (gfc_arith_uplus): Rename to ...
+       (gfc_arith_identity): ... this.
+       (gfc_parentheses): New function.
+       (gfc_uplus): Adapt to renamed function.
+       * arith.h (gfc_parentheses): Add prototype.
+       * expr.c (gfc_copy_expr): Deal with INTRINSIC_PARENTHESES.
+       (simplifiy_intrinsic_op): Treat INTRINSIC_UPLUS separately from
+       INTRINSIC_PARENTHESES.
+
+2007-04-12  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/31472
+       * decl.c (match_attr_spec): Allow PRIVATE/PUBLIC
+       attribute in type definitions.
+       (gfc_match_private): Allow PRIVATE statement only
+       in specification part of modules.
+       (gfc_match_public): Ditto for PUBLIC.
+       (gfc_match_derived_decl): Allow PRIVATE/PUBLIC attribute only in
+       specificification part of modules.
+
+2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/31257
+       * intrinsic.c (add_functions): Add ref. to gfc_resolve_achar.
+       * intrinsic.h : Add prototype for gfc_resolve_achar.
+       * iresolve.c (gfc_resolve_achar): New function.
+
+2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/30880
+       * resolve.c (resolve_fl_variable): Set flag to 2 for automatic
+       arrays.  Make condition for automatic array error explicit.
+       If a dummy, no error on an INTENT(OUT) derived type.
+
+2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/30872
+       * expr.c (find_array_element): Correct arithmetic for rank > 1.
+
+2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/31222
+       * check.c (numeric_check): If an expresson has not got a type,
+       see if it is a symbol for which a default type applies.
+
+2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/31214
+       * trans-decl.c (gfc_get_symbol_decl): Allow unreferenced use
+       associated symbols.
+
+2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/31293
+       * symbol.c (gfc_check_function_type): New function.
+       * gfortran.h : Add prototype for previous.
+       * parse.c (parse_progunit): Call it after parsing specification
+       statements.
+
+2007-04-05  Paul Thomas  <pault@gcc.gnu.org>\r
+\r
+       PR fortran/31483\r
+       * trans-expr.c (gfc_conv_function_call): Give a dummy\r
+       procedure the correct type if it has alternate returns.\r
+\r
+2007-04-05  Paul Thomas  <pault@gcc.gnu.org>\r
+\r
+       PR fortran/31292\r
+       * decl.c (gfc_match_modproc): Go up to the top of the namespace\r
+       tree to find the module namespace for gfc_get_symbol.\r
+\r
+2007-04-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR fortran/31304
+       * fortran/gfortran.h (gfc_charlen_int_kind): New prototype.
+       * fortran/trans-types.c (gfc_charlen_int_kind): New variable.
+       (gfc_init_types): Define gfc_charlen_int_kind. 
+       * fortran/trans.h (gfor_fndecl_string_repeat): Remove prototype.
+       * fortran/trans-decl.c (gfor_fndecl_string_repeat): Delete.
+       (gfc_build_intrinsic_function_decls): Don't set
+       gfor_fndecl_string_repeat.
+       * fortran/trans-intrinsic.c (gfc_conv_intrinsic_repeat): Rewrite
+       so that we don't have to call a library function.
+       * fortran/simplify.c (gfc_simplify_repeat): Perform the necessary
+       checks on the NCOPIES argument, and work with arbitrary size
+       arguments.
+
+2007-03-31  Tobias Burnus  <burnus@net-b.de>
+
+       * intrinsic.c (add_functions): Fix name of dummy argument
+         for new_line and exit intrinsic.
+
+2007-03-31  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/31160
+       * gfortran.texi: Add a section for the %VAL, %REF and %LOC
+       extensions.
+
+2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
+
+       * trans-types.c (gfc_signed_or_unsigned_type): Remove.
+       (gfc_unsigned_type): Use get_signed_or_unsigned_type instead of
+       gfc_signed_or_unsigned_type.
+       (gfc_signed_type): Ditto.
+       * trans-types.h (gfc_signed_or_unsigned_type): Remove.
+       * f95-lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
+
+2007-03-30  Tobias Schlüter  <tobi@gcc.gnu.org>
+
+       * symbol.c (gfc_find_gsymbol): Simplify, don't unconditionally
+       descend into all branches.
+
+2007-03-29  Tobias Schlüter  <tobi@gcc.gnu.org>
+
+       * intrinsic.c (conv_name): Let gfc_get_string handle the format.
+       (find_conv): Compare pointers instead of calling strcmp.
+       (find_sym): Likewise, but ensure that the compared pointer is in
+       the global string table.
+
+2007-03-28  Tobias Schlüter  <tobi@gcc.gnu.org>
+
+       * gfc-internals.texi: Fix output filename.  Merge type index into
+       concept index.  Start documentation of gfc_code structure.
+
+2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * gfc-internals.texi: New file,
+       * Make-lang.in: Add rules to convert it to dvi, pdf, and info.
+
+2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
+       * error.c (show_locus): Remove always-false test.
+
+2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * lang.opt: Minor edits to descriptions.
+
+2007-03-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR fortran/30877
+       * fortran/interface.c (check_operator_interface): Implement
+       the standard checks on user operators extending intrinsic operators.
+       * fortran/resolve.c (resolve_operator): If the ranks of operators
+       don't match, don't error out but try the user-defined ones first.
+
+2007-03-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR fortran/30655
+       * expr.c (check_dimension): Fix logic of comparisons.
+
+2007-03-24  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/31215
+       * trans-expr.c (gfc_apply_interface_mapping_to_expr): Return
+       int result that is non-zero if the expression is the function
+       result.  Only the characteristics of the result expression
+       can be used in a procedure interface, so simplify LEN in situ
+       using its character length.
+
+       PR fortran/31209
+       PR fortran/31200
+       * trans-expr.c (gfc_conv_function_call): Do not use
+       gfc_conv_expr_reference for actual pointer function with formal
+       target because a temporary is created that does not transfer
+       the reference correctly.  Do not indirect formal pointer
+       functions since it is the function reference that is needed.
+
+2007-03-24  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * gfortran.h: Edit comments on GFC_STD_*.
+
+2007-03-23  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * invoke.texi: Misc. small typo fixes.
+       (-Wcharacter-truncation): Add.
+       (-Wnonstd-intrinsics): Correct spelling.
+       (-std=): Edit.
+       (-fintrinsic-modules-path): Add.
+
+2007-03-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR fortran/30834
+       * arith.c (complex_pow): Rewrite to handle large power.
+       (gfc_arith_power): Handle large power in the real and integer
+       cases.
+
+2007-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR fortran/31262
+       * trans-const.c (gfc_conv_mpz_to_tree): Allow integer constants
+       larger than twice the width of a HOST_WIDE_INT.
+
+2006-03-22  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/31193
+       * trans-intrinsic.c (gfc_size_in_bytes): Remove function.
+       (gfc_conv_intrinsic_array_transfer): Remove calls to previous.
+       Explicitly extract TREE_TYPEs for source and mold.  Use these
+       to calculate length of source and mold, except for characters,
+       where the se string_length is used.  For mold, the TREE_TYPE is
+       recalculated using gfc_get_character_type_len so that the
+       result is correctly cast for character literals and substrings.
+       Do not use gfc_typenode_for_spec for the final cast.
+
+2007-03-22  Tobias Schlüter  <tobi@gcc.gnu.org>
+
+       PR fortran/20897
+       * decl.c (gfc_match_derived_decl): Reliably reject
+       'doubleprecision' and 'doublecomplex' as type names.
+
+2007-03-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR fortran/31203
+       * trans-expr.c (gfc_trans_init_string_length): Length should
+       never be negative.
+       (gfc_conv_function_call): Likewise.
+
+2007-03-18  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/30531
+       PR fortran/31086
+       * symbo.c : Add gfc_derived_types.
+       (gfc_free_dt_list): Free derived type list gfc_derived_types.
+       (gfc_free_namespace): Remove call to gfc_free_dt_list.
+       (gfc_symbol_done_2): Call  gfc_free_dt_list.
+       * gfortran.h : Declare gfc_derived_types to be external. Remove
+       derived types field from gfc_namespace.
+       * resolve.c (resolve_fl_derived): Refer to gfc_derived types
+       rather than namespace derived_types.
+       (resolve_fntype): Remove special treatment for module
+       derived type functions.
+       * trans-types.c (gfc_get_derived_type): Remove search for like
+       derived types.  Finish by copying back end declaration to like
+       derived types in the derived type list gfc_derived_types.
+
+       2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR fortran/31120
+       * trans-expr.c (gfc_conv_powi): Make n argument unsigned hwi.
+       (gfc_conv_cst_int_power): Handle integer exponent with care,
+       since it might be too large for us.
+
+2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR fortran/31184
+       * invoke.texi: Fix typo.
+
+2007-03-16  Tobias Burnus  <burnus@net-b.de>
+
+       * trans-decl.c (gfc_generate_function_code): Use all arguments of
+         set_std.
+
+2007-03-15  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       * gfortran.h (gfc_option_t): Add flag_backtrace field.
+       * lang.opt: Add -fbacktrace option.
+       * invoke.texi: Document the new option.
+       * trans-decl.c (gfc_build_builtin_function_decls): Add new
+       option to the call to set_std.
+       * options.c (gfc_init_options, gfc_handle_option): Handle the
+       new option.
+
+2007-03-15  Tobias Burnus  <burnus@gcc.gnu.org>
+           Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/30922
+       * decl.c (gfc_match_import): If the parent of the current name-
+       space is null, try looking for an imported symbol in the parent
+       of the proc_name interface.
+       * resolve.c (resolve_fl_variable): Do not check for blocking of
+       host association by a same symbol, if the symbol is in an
+       interface body.
+
+2007-03-15  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/30879
+       * decl.c (match_data_constant): Before going on to try to match
+       a name, try to match a structure component.
+
+
+       PR fortran/30870
+       * resolve.c (resolve_actual_arglist): Do not reject a generic
+       actual argument if it has a same name specific interface.
+
+       PR fortran/31163
+       * trans-array.c (parse_interface): Do not nullify allocatable
+       components if the symbol has the saved attribute.
+
+2007-03-14  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       * trans-array.c (gfc_trans_auto_array_allocation): Replace
+       fold(convert()) by fold_convert().
+       (gfc_duplicate_allocatable): Likewise.
+       * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): Use
+       build_int_cst instead of converting an integer_zero_node
+       to the final type.
+
+2007-03-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER.
+
+2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       PR fortran/30933
+       PR fortran/30948
+       PR fortran/30953
+       * intrinsics.texi (CHDIR): Fix argument names, note
+       that STATUS must be a default integer.
+       (CTIME): Fix argument names, note that RESULT must
+       be a default integer.
+       (EXIT): Note that STATUS must be a default integer.
+
+2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       PR fortran/28068
+       * intrinsic.texi: General whitespace cleanup, remove
+       comment about missing intrinsics.
+       (menu): Add lines for new entries listed below.
+       (ACOSH): Mention specific function DACOSH, correct
+       description phrasing.
+       (ASINH): Mention specific function DASINH, correct
+       description phrasing.
+       (ATANH): Mention specific function DATANH, correct
+       description phrasing.
+       (COS): Add index entry for CCOS.
+       (CPU_TIME): Correct "REAL" to "REAL(*)".
+       (EXP): Add index entry for CEXP.
+       (INT): Correct argument name to "A".
+       (INT2): New entry.
+       (INT8): New entry.
+       (LONG): New entry.
+       (MAX): Add index entries for specific variants.
+       (MCLOCK): New entry.
+       (MCLOCK8): New entry.
+       (SECNDS): Adjust to a more standard form.
+       (SECOND): New entry.
+       (TIME): Add cross-reference to MCLOCK.
+       (TIME8): Add cross-reference to MCLOCK8.
+
 2007-03-11  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/30883