OSDN Git Service

* trans-types.c (gfc_init_types): Ensure gfc_integer_types doesn't
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index 9cb9c94..c0f12e6 100644 (file)
@@ -1,3 +1,335 @@
+2009-04-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * trans-types.c (gfc_init_types): Ensure gfc_integer_types doesn't
+       contain TYPE_STRING_FLAG types.
+
+2009-04-08  Janne Blomqvist  <jb@gcc.gnu.org>
+
+       PR fortran/39670
+       * invoke.texi (fdollar-ok): Fix typo.
+       
+2009-04-08  Daniel Franke  <franke.daniel@gmail.com>
+
+       PR fortran/39670
+       * invoke.texi (fdollar-ok): Clarify limitations.
+
+2009-04-08  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/38863
+       * trans-array.c (gfc_trans_deferred_array): Return if this
+       is a result variable.
+
+2009-04-07  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/38152
+       * trans-decl.c (gfc_get_symbol_decl): Correctly set decl location for
+       procedure pointer decls.
+
+2009-04-07  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/38290
+       * expr.c (gfc_check_pointer_assign): Enable interface check for
+       procedure pointers.
+       * gfortran.h: Add copy_formal_args_intr.
+       * interface.c (gfc_compare_interfaces): Call gfc_compare_intr_interfaces
+       if second argument is an intrinsic.
+       (compare_intr_interfaces): Correctly set attr.function, attr.subroutine
+       and ts.
+       (compare_parameter): Call gfc_compare_interfaces also for intrinsics.
+       * resolve.c (resolve_specific_f0,resolve_specific_s0): Don't resolve
+       intrinsic interfaces here. Must happen earlier.
+       (resolve_symbol): Resolution of intrinsic interfaces moved here from
+       resolve_specific_..., and formal args are now copied from intrinsic
+       interfaces.
+       * symbol.c (copy_formal_args_intr): New function to copy the formal
+       arguments from an intinsic procedure.
+
+2009-04-06  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/38863
+       * dependency.c (ref_same_as_full_array): New function.
+       (gfc_dep_resolver): Call it.
+
+2009-04-06  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/39414
+       * decl.c (match_procedure_decl): Fix double declaration problems with
+       PROCEDURE statements.
+       * symbol.c (gfc_add_type): Ditto.
+
+2009-04-06  Paul Thomas  <pault@gcc.gnu.org>
+
+        PR fortran/36091
+        * trans-array.c (gfc_conv_array_ref): If the symbol has the
+       temporary attribute use the array_spec for the bounds.
+       * gfortran.h : Add the temporary field to the structure
+       'symbol_attribute'.
+       * trans-stmt.c (forall_make_variable_temp): Set the symbol's
+       temporary attribute.
+
+2009-04-05  Daniel Franke  <franke.daniel@gmail.com>
+
+       PR fortran/29458
+       * trans-array.c (gfc_trans_array_constructor_value): Shadow
+       implied do-loop variable to avoid spurious middle-end warnings.
+
+2009-04-04  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/39577
+       * trans-decl.c (gfc_generate_function_code): Move recursive
+       check to the right position.
+
+2009-04-04  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/37614
+       * trans-common.c (translate_common): Do not offset the whole
+       coomon block.
+
+2009-04-03  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/39594
+       * resolve.c (resolve_common_vars): Add FL_VARIABLE to symbol
+       if it is not a procedure pointer.
+       * primary.c (match_actual_arg): Ditto.
+
+2009-03-31  Joseph Myers  <joseph@codesourcery.com>
+
+       PR preprocessor/15638
+       * cpp.c (cb_cpp_error): Handle CPP_DL_FATAL.
+
+2009-03-30  Steven G. Kargl  <kargls@comcast.net>
+
+       PR fortran/38389
+       * trans-stmt.c(gfc_trans_allocate): Add translation of ERRMSG.
+       (gfc_trans_deallocate): Add translation of ERRMSG.  Remove stale
+       comments.  Minor whitespace cleanup.
+       * resolve.c(is_scalar_expr_ptr): Whitespace cleanup.
+       (resolve_deallocate_expr (gfc_expr *e): Update error message.
+       (resolve_allocate_expr):  Remove dead code.  Update error message.
+       Move error checking to ...
+       (resolve_allocate_deallocate): ... here.  Add additional error
+       checking for STAT, ERRMSG, and allocate-objects.
+       * match.c(gfc_match_allocate,gfc_match_deallocate):  Parse ERRMSG.
+       Check for redundant uses of STAT and ERRMSG.  Reword error message
+       and add checking for pointer, allocatable, and proc_pointer attributes.
+
+2009-03-30  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/22571
+       PR fortran/26227
+       PR fortran/24886
+       * symbol.c : Add gfc_global_ns_list.
+       * decl.c (add_global_entry): Set the namespace ('ns') field.
+       * gfortran.h : Add the resolved field to gfc_namespace. Add the
+       namespace ('ns') field to gfc_gsymbol.  Add flag_whole_file to
+       gfc_option_t.  Add the prototype for gfc_free_dt_list.
+       * lang.opt : Add the whole-file option.
+       * invoke.texi : Document the whole-file option.
+       * resolve.c (resolve_global_procedure): If the fwhole-file
+       option is set, reorder gsymbols to ensure that translation is
+       in the right order.  Resolve the gsymbol's namespace if that
+       has not occurred and then check interfaces.
+       (resolve_function): Move call to resolve_global_procedure.
+       (resolve_call): The same.
+       (resolve_codes): Store the current labels_obstack.
+       (gfc_resolve) : Return if the namespace is already resolved.
+       trans-decl.c (gfc_get_extern_function_decl): If the whole_file
+       option is selected, use the backend_decl of a gsymbol, if it is
+       available.
+       parse.c (add_global_procedure, add_global_program): If the flag
+       whole-file is set, add the namespace to the gsymbol.
+       (gfc_parse_file): On -fwhole-file, put procedure namespaces on
+       the global namespace list.  Rearrange to do resolution of all
+       the procedures in a file, followed by their translation.
+       * options.c (gfc_init_options): Add -fwhole-file.
+       (gfc_handle_option): The same.
+
+2009-03-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_HUGE_VAL
+       family of intrinsics instead of BUILT_IN_INF family.
+       * trans-intrinsics.c (gfc_conv_intrinsic_nearest): Use
+       BUILT_IN_HUGE_VAL instead of BUILT_IN_INF.
+
+2009-03-30  Jakub Jelinek  <jakub@redhat.com>
+
+       * trans-types.c (gfc_sym_type, gfc_return_by_reference): For
+       sym->attr.result check sym->ns->proc_name->attr.is_bind_c.
+
+2009-03-30  Joseph Myers  <joseph@codesourcery.com>
+
+       PR rtl-optimization/323
+       * options.c (gfc_post_options): Set
+       flag_excess_precision_cmdline.  Give an error for
+       -fexcess-precision=standard for processors where the option is
+       significant.
+
+2009-03-29  Joseph Myers  <joseph@codesourcery.com>
+
+       PR preprocessor/34695
+       * cpp.c (cb_cpp_error): New.
+       (gfc_cpp_post_options): Don't set cpp_option->inhibit_warnings.
+       Don't check cpp_errors (cpp_in).
+       (gfc_cpp_init_0): Set cb->error.
+
+2009-03-29  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/38823
+       * gfortran.h: Add ARITH_PROHIBIT to arith enum.
+       expr.c (gfc_match_init_expr): Add global variable init_flag to
+       flag matching an initialization expression.
+       (check_intrinsic_op): Move no longer reachable error message to ...
+       * arith.c (arith_power): ... here.  Remove gfc_ prefix in
+       gfc_arith_power.  Use init_flag.  Allow constant folding of x**y
+       when y is REAL or COMPLEX.
+       (eval_intrinsic): Remove restriction that y in x**y must be INTEGER
+       for constant folding.
+       * gfc_power: Update gfc_arith_power to arith_power
+
+2009-03-29  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/37423
+       * gfortran.h (struct gfc_typebound_proc): Added new flag `deferred' and
+       added a comment explaining DEFERRED binding handling.
+       * decl.c (match_binding_attributes): Really match DEFERRED attribute.
+       (match_procedure_in_type): Really match PROCEDURE(interface) syntax
+       and do some validity checks for DEFERRED and this construct.
+       * module.c (binding_overriding): New string constant for DEFERRED.
+       (mio_typebound_proc): Module-IO DEFERRED flag.
+       * resolve.c (check_typebound_override): Ensure that a non-DEFERRED
+       binding is not overridden by a DEFERRED one.
+       (resolve_typebound_procedure): Allow abstract interfaces as targets
+       for DEFERRED bindings.
+       (ensure_not_abstract_walker), (ensure_not_abstract): New methods.
+       (resolve_fl_derived): Use new `ensure_not_abstract' method for
+       non-ABSTRACT types extending ABSTRACT ones to ensure each DEFERRED
+       binding is overridden.
+       (check_typebound_baseobject): New method.
+       (resolve_compcall), (resolve_typebound_call): Check base-object of
+       the type-bound procedure call.
+       * gfc-internals.texi (Type-bound procedures): Document a little bit
+       about internal handling of DEFERRED bindings.
+
+2008-03-29  Tobias Schlüter  <tobi@gcc.gnu.org>
+
+       PR fortran/38507
+       * gfortran.h (gfc_st_label): Fix comment.
+       (gfc_exec_op): Add statement code EXEC_END_BLOCK for end of block.
+       * parse.c (accept_statement): Use EXEC_END_BLOCK for END IF and
+       END SELECT with labels.
+       (check_do_closure): Fix formatting.
+       (parse_do_block): Fix typo in error message.
+       * resolve.c (code_stack): Remove tail member.  Update comment to
+       new use of reachable_labels.
+       (reachable_labels): Rename to ...
+       (find_reachable_labels): ... this.  Overhaul.  Update preceding
+       comment.
+       (resolve_branch): Fix comment preceding function.  Rewrite.
+       (resolve_code): Update call to find_reachable_labels.  Add code to
+       deal with EXEC_END_BLOCK.
+       * st.c (gfc_free_statement): Add code to deal with EXEC_END_BLOCK.
+       Add 2009 to copyright years.
+       * trans.c (gfc_trans_code): Likewise on both counts.
+
+2009-03-31  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/38917
+       * expr.c (gfc_check_assign): Allow pointer components when
+       checking for NULL.
+
+       PR fortran/38918
+       * resolve.c (check_data_variable): Treat pointer arrays with
+       scalars.
+
+2009-03-31  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/38915
+       * trans-expr.c (gfc_trans_assignment_1): Ensure temporaries
+       have a string_length.
+
+2009-03-28  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/34656
+       * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do):
+       Add GFC_RTCHECK_DO support.
+       * option.c (gfc_handle_runtime_check_option): Enable GFC_RTCHECK_DO.
+       * invoke.texi (-fcheck): Document "do" option.
+
+2009-03-28  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/38538
+       * trans-array.c (get_elemental_fcn_charlen): Remove.
+       (get_array_charlen): New function to replace previous.
+
+2009-03-28  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/38765
+       * parse.c (parse_derived): Do not break on finding pointer,
+       allocatable or private components.
+
+2009-03-28  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/32626
+       * option.c (gfc_handle_runtime_check_option): Enable recursion check.
+       * trans-decl.c (gfc_generate_function_code): Add recursion check.
+       * invoke.texi (-fcheck): Add recursive option.
+
+2009-03-28  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/38432
+       * resolve.c (gfc_resolve_iterator): Add zero-loop warning.
+
+2009-03-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+           Paul Thomas  <pault@gcc.gnu.org>
+           Tobias Burnus  <burnus@net-b.de>
+
+       * gfortran.h (gfc_option_t): Add rtcheck.
+       * lang.opt: New option -fcheck.
+       * libgfortran.h: Add GFC_RTCHECK_* constants.
+       * invoke.texi: Document -fcheck.
+       * options.c (gfc_handle_runtime_check_option): New function.
+       (gfc_init_options,gfc_post_options,gfc_handle_option):
+       Add -fcheck option.
+
+2009-03-27  Richard Guenther  <rguenther@suse.de>
+
+       * trans-array.c (gfc_conv_descriptor_data_addr): Use
+       gfc_build_addr_expr instead of build_fold_addr_expr.
+       (gfc_trans_allocate_array_storage, gfc_trans_array_constructor_value,
+       gfc_trans_constant_array_constructor, gfc_conv_array_data,
+       gfc_conv_expr_descriptor, gfc_conv_array_parameter): Likewise.
+       * trans-expr.c (gfc_conv_missing_dummy, gfc_conv_variable,
+       gfc_conv_function_val, gfc_conv_operator_assign,
+       gfc_conv_subref_array_arg, gfc_conv_function_call,
+       gfc_conv_expr_reference, gfc_trans_scalar_assign): Likewise.
+       * trans-intrinsic.c (gfc_conv_intrinsic_exponent,
+       gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
+       gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax_char,
+       gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_spacing,
+       gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_set_exponent,
+       gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
+       gfc_conv_intrinsic_si_kind, gfc_conv_intrinsic_trim): Likewise.
+       * trans-io.c (gfc_trans_io_runtime_check, set_parameter_ref,
+       gfc_convert_array_to_string, gfc_trans_open, gfc_trans_close,
+       build_filepos, gfc_trans_inquire, gfc_trans_wait,
+       nml_get_addr_expr, transfer_namelist_element, build_dt,
+       gfc_trans_dt_end, transfer_array_component, transfer_expr,
+       transfer_array_desc, gfc_trans_transfer): Likewise.
+       * trans-stmt.c (gfc_trans_allocate, gfc_trans_deallocate): Likewise.
+       * trans.c (gfc_build_addr_expr): Mark the base of the address
+       TREE_ADDRESSABLE.
+
+2009-03-27  Tobias Burnus  <burnus@net-b.de>
+
+       * gfortran.h (enum init_local_real.): Add GFC_INIT_REAL_SNAN.
+       (gfc_expr): Add is_snan.
+       * trans-const.c (gfc_conv_mpfr_to_tree): Support SNaN.
+       (gfc_conv_constant_to_tree): Update call to gfc_conv_mpfr_to_tree.
+       * trans-const.h (gfc_conv_mpfr_to_tree): Update prototype.
+       * resolve.c (build_default_init_expr): Update call.
+       * target-memory.c (encode_float): Ditto.
+       * trans-intrinsic.c (gfc_conv_intrinsic_aint,gfc_conv_intrinsic_mod,
+
 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * lang.opt: Unify help texts for -I, -Wconversion, -d, -fopenmp,