OSDN Git Service

2009-08-15 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index 363889f..8ed5945 100644 (file)
@@ -1,3 +1,270 @@
+2009-08-15  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/41080
+       * gfortranspec.c (lookup_option): Remove gfortran-specific
+       version of -dumpversion.
+
+2009-08-14  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/41070
+       * resolve.c (resolve_structure_cons): Make sure that ts.u.derived is
+       only used if type is BT_DERIVED.
+
+2009-08-13  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/40941
+       * gfortran.h (gfc_typespec): Put 'derived' and 'cl' into union.
+       * decl.c (build_struct): Make sure 'cl' is only used
+       if type is BT_CHARACTER.
+       * symbol.c (gfc_set_default_type): Ditto.
+       * resolve.c (resolve_symbol, resolve_fl_derived): Ditto.
+       (resolve_equivalence,resolve_equivalence_derived): Make sure 'derived'
+       is only used if type is BT_DERIVED.
+       * trans-io.c (transfer_expr): Make sure 'derived' is only used if type
+       is BT_DERIVED or BT_INTEGER (special case: C_PTR/C_FUNPTR).
+       * array.c: Mechanical replacements to accomodate union in gfc_typespec.
+       * check.c: Ditto.
+       * data.c: Ditto.
+       * decl.c: Ditto.
+       * dump-parse-tree.c: Ditto.
+       * expr.c: Ditto.
+       * interface.c: Ditto.
+       * iresolve.c: Ditto.
+       * match.c: Ditto.
+       * misc.c: Ditto.
+       * module.c: Ditto.
+       * openmp.c: Ditto.
+       * parse.c: Ditto.
+       * primary.c: Ditto.
+       * resolve.c: Ditto.
+       * simplify.c: Ditto.
+       * symbol.c: Ditto.
+       * target-memory.c: Ditto.
+       * trans-array.c: Ditto.
+       * trans-common.c: Ditto.
+       * trans-const.c: Ditto.
+       * trans-decl.c: Ditto.
+       * trans-expr.c: Ditto.
+       * trans-intrinsic.c: Ditto.
+       * trans-io.c: Ditto.
+       * trans-stmt.c: Ditto.
+       * trans-types.c: Ditto.
+
+2009-08-13  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/40995
+       * resolve.c (resolve_symbol): Move some checking code to
+       resolve_intrinsic, and call this from here.
+       (resolve_intrinsic): Some checking code moved here from resolve_symbol.
+       Make sure each intrinsic is only resolved once.
+
+2009-08-12  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/41034
+       * symbol.c (gfc_copy_attr): Merge bits instead of replace
+       bits in gfc_copy_attr.
+       * gfc_check_pointer_assign (gfc_check_pointer_assign):
+       Initialize ext_attr bits by zero.
+
+2009-08-11  Richard Guenther  <rguenther@suse.de>
+
+       * trans-types.c (gfc_get_derived_type): Do not clear TYPE_CANONICAL.
+
+2009-08-11  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/41022
+       * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointer
+       components as actual arguments.
+
+2009-08-10  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/37425
+       * gfortran.h (struct gfc_namespace): New fields tb_uop_root and tb_op.
+       (gfc_find_typebound_user_op): New routine.
+       (gfc_find_typebound_intrinsic_op): Ditto.
+       (gfc_check_operator_interface): Now public routine.
+       * decl.c (gfc_match_generic): Match OPERATOR(X) or ASSIGNMENT(=).
+       * interface.c (check_operator_interface): Made public, renamed to
+       `gfc_check_operator_interface' accordingly and hand in the interface
+       as gfc_symbol rather than gfc_interface so it is useful for type-bound
+       operators, too.  Return boolean result.
+       (gfc_check_interfaces): Adapt call to `check_operator_interface'.
+       * symbol.c (gfc_get_namespace): Initialize new field `tb_op'.
+       (gfc_free_namespace): Free `tb_uop_root'-based tree.
+       (find_typebound_proc_uop): New helper function.
+       (gfc_find_typebound_proc): Use it.
+       (gfc_find_typebound_user_op): New method.
+       (gfc_find_typebound_intrinsic_op): Ditto.
+       * resolve.c (resolve_tb_generic_targets): New helper function.
+       (resolve_typebound_generic): Use it.
+       (resolve_typebound_intrinsic_op), (resolve_typebound_user_op): New.
+       (resolve_typebound_procedures): Resolve operators, too.
+       (check_uop_procedure): New, code from gfc_resolve_uops.
+       (gfc_resolve_uops): Moved main code to new `check_uop_procedure'.
+
+2009-08-10  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/40940
+       * decl.c (gfc_match_type_spec): Match CLASS statement and warn about
+       missing polymorphism.
+       * gfortran.h (gfc_typespec): Add field 'is_class'.
+       * misc.c (gfc_clear_ts): Initialize 'is_class' to zero.
+       * resolve.c (type_is_extensible): New function to check if a derived
+       type is extensible.
+       (resolve_fl_variable_derived): Add error checks for CLASS variables.
+       (resolve_typebound_procedure): Disallow non-polymorphic passed-object
+       dummy arguments, turning warning into error.
+       (resolve_fl_derived): Use 'type_is_extensible'. Disallow non-polymorphic
+       passed-object dummy arguments for procedure pointer components,
+       turning warning into error. Add error check for CLASS components.
+
+2009-08-05  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/40955
+       * gfortran.h (ext_attr_id_t): Add typedef for this enum.
+       (gfc_add_ext_attribute): Use it.
+       * decl.c (gfc_match_gcc_attributes): Ditto.
+       * expr.c (gfc_check_pointer_assign): Ditto.
+       * symbol.c (gfc_add_ext_attribute): Ditto.
+       (gfc_copy_attr): Copy also ext_attr.
+       * resolve.c (resolve_fl_derived,resolve_symbol): Ditto.
+       * module.c (mio_symbol_attribute): Save ext_attr in the mod file.
+
+2009-08-05  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/40969
+       Revert:
+       2009-08-04  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/40949
+       * trans-types.c (gfc_get_function_type): Fix typelist of
+       functions without argument.
+
+2009-08-05  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/40847
+       * iresolve.c (gfc_resolve_transfer): Correct error in 'mold'
+       character length for case where length expresson is NULL.
+
+2009-08-04  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/40949
+       * trans-types.c (gfc_get_function_type): Fix typelist of
+       functions without argument.
+
+2009-08-04  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/40875
+       * decl.c (add_init_expr_to_sym): Character symbols can only be
+       initialized with character expressions.
+
+2009-08-02  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/40881
+       * decl.c (match_char_length): Warn about old-style character length
+       declarations.
+       * match.c (match_arithmetic_if,gfc_match_if): Modify warning message
+       for arithmetic if.
+       (gfc_match_goto): Warn about computed gotos.
+       (gfc_match_return): Warn about alternate return.
+       (gfc_match_st_function): Warn about statement functions.
+       * resolve.c (resolve_fl_procedure): Modify warning message for
+       assumed-length character functions.
+
+2009-08-01  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/40011
+       * error.c : Add static flag 'warnings_not_errors'.
+       (gfc_error): If 'warnings_not_errors' is set, branch to code
+       from gfc_warning.
+       (gfc_clear_error): Reset 'warnings_not_errors'.
+       (gfc_errors_to_warnings): New function.
+       * options.c (gfc_post_options): If pedantic and flag_whole_file
+       change the latter to a value of 2.
+       * parse.c (parse_module): Add module namespace to gsymbol.
+       (resolve_all_program_units): New function.
+       (clean_up_modules): New function.
+       (translate_all_program_units): New function.
+       (gfc_parse_file): If whole_file, do not clean up module right
+       away and add derived types to namespace derived types. In
+       addition, call the three new functions above.
+       * resolve.c (not_in_recursive): New function.
+       (not_entry_self_reference): New function.
+       (resolve_global_procedure): Symbol must not be IFSRC_UNKNOWN,
+       procedure must not be in the course of being resolved and
+       must return false for the two new functions. Pack away the
+       current derived type list before calling gfc_resolve for the
+       gsymbol namespace.  It is unconditionally an error if the ranks
+       of the reference and ther procedure do not match. Convert
+       errors to warnings during call to gfc_procedure_use if not
+       pedantic or legacy.
+       (gfc_resolve): Set namespace resolved flag to -1 during
+       resolution and store current cs_base.
+       * trans-decl.c (gfc_get_symbol_decl): If whole_file compilation
+       substitute a use associated variable, if it is available in a
+       gsymbolnamespace.
+       (gfc_get_extern_function_decl): If the procedure is use assoc,
+       do not attempt to find it in a gsymbol because it could be an
+       interface. If the symbol exists in a module namespace, return
+       its backend_decl.
+       * trans-expr.c (gfc_trans_scalar_assign): If a derived type
+       assignment, set the rhs TYPE_MAIN_VARIANT to that of the rhs.
+       * trans-types.c (copy_dt_decls_ifequal): Add 'from_gsym' as a
+       boolean argument. Copy component backend_decls directly if the
+       components are derived types and from_gsym is true.
+       (gfc_get_derived_type): If whole_file copy the derived type from
+       the module if it is use associated, otherwise, if can be found
+       in another gsymbol namespace, use the existing derived type as
+       the TYPE_CANONICAL and build normally.
+       * gfortran.h : Add derived_types and resolved fields to
+       gfc_namespace. Include prototype for gfc_errors_to_warnings.
+
+2009-07-29  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/40898
+       * trans-types.c (gfc_get_function_type): Do not add hidden
+       string-length argument for BIND(C) procedures.
+       * trans-decl.c (create_function_arglist): Skip over nonexisting
+       string-length arguments for BIND(C) procedures.
+
+2009-07-28  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/40878
+       * openmp.c (gfc_match_omp_clauses): Use gfc_error_now instead of
+       gfc_error to diagnose invalid COLLAPSE arguments.
+
+2009-07-28  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/40882
+       * trans-types.c (gfc_get_ppc_type): For derived types, directly use the
+       backend_decl, instead of calling gfc_typenode_for_spec, to avoid
+       infinte loop.
+       (gfc_get_derived_type): Correctly handle PPCs returning derived types,
+       avoiding infinite recursion.
+
+2009-07-27  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/40848
+       * interface.c (gfc_compare_interfaces): Call 'count_types_test' before
+       'generic_correspondence', and only if checking a generic interface.
+
+2009-07-27  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/40851
+       * resolve.c (resolve_symbol): Do not initialize pointer derived-types.
+       * trans-decl.c (init_intent_out_dt): Ditto.
+       (generate_local_decl): No need to set attr.referenced for DT pointers.
+
+2009-07-26  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/33197
+       * intrinsic.c (make_generic): Remove assert as "atan" can be
+       both ISYM_ATAN and ISYM_ATAN2.
+       (add_functions): Add two-argument variant of ATAN.
+       * intrinsic.h (gfc_check_atan_2): Add check for it.
+       * intrinsic.texi (ATAN2): Correct and enhance description.
+       (ATAN): Describe two-argument variant of ATAN.
+
 2009-07-25  Tobias Burnus  <burnus@net-b.de>
            Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>