OSDN Git Service

2010-08-04 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index 3627b9e..7504f49 100644 (file)
@@ -1,3 +1,267 @@
+2010-08-04  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45183
+       PR fortran/44857
+       * resolve.c (resolve_structure_cons): Fix
+       freeing of charlen.
+
+2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/42051
+       PR fortran/44064
+       * symbol.c (changed_syms): Made static again.
+       (gfc_symbol_state): Don't conditionalize on GFC_DEBUG. 
+       Changed conditional internal error into assert.
+       Rename function to ...
+       (gfc_enforce_clean_symbol_state): ... this.
+       * gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state): 
+       Rename the former to the latter.
+       * parse.c (decode_statement, decode_omp_directive,
+       decode_gcc_attribute): Update callers accordingly. Don't conditionalize
+       on GFC_DEBUG.
+       (changed_syms): Remove declaration.
+       (next_statement): Use gfc_enforce_clean_symbol_state.
+
+2010-08-04  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/44857
+       * resolve.c (resolve_structure_cons): Fix handling of
+       initialization structure constructors with character
+       elements of the wrong length.
+       * array.c (gfc_check_iter_variable): Add NULL check.
+       (gfc_resolve_character_array_constructor): Also truncate
+       character length.
+
+2010-08-04  Tobias Burnus  <burnus@net-b.de>
+
+       * trans-io.c (gfc_build_io_library_fndecls): Fix return
+       value of some libgfortran functions.
+
+2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/45159
+       * dependency.c (gfc_deb_compare_expr):  Remove any integer
+       conversion functions to larger types from both arguments.
+       Remove handling these functions futher down.
+
+2010-08-03  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/44584
+       PR fortran/45161
+       * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
+       * resolve.c (resolve_tb_generic_targets): Check for errors.
+
+2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/45159
+       * depencency.c (gfc_dep_resolver):  Fix logic for when a loop
+       can be reversed.
+
+2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/36854
+       * dependency.h:  Add prototype for gfc_are_identical_variables.
+       * frontend-passes.c:  Include depencency.h.
+       (optimimize_equality):  Use gfc_are_identical_variables.
+       * dependency.c (identical_array_ref): New function.
+       (gfc_are_identical_variables):  New function.
+       (gfc_deb_compare_expr):  Use gfc_are_identical_variables.
+       * dependency.c (gfc_check_section_vs_section).  Rename gfc_
+       prefix from statc function.
+       (check_section_vs_section): Change arguments to gfc_array_ref,
+       adjust function body accordingly.
+
+2010-08-02  Mikael Morin  <mikael@gcc.gnu.org>
+           Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/42051
+       PR fortran/44064
+       PR fortran/45151
+       * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol. 
+       * symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
+       gfc_copy_formal_args, gfc_copy_formal_args_intr,
+       gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
+       * parse.c (parse_derived_contains, parse_spec, parse_progunit): 
+       Call reject_statement in case of error. 
+       (match_deferred_characteritics): Call gfc_undo_symbols in case match
+       fails.
+
+2010-08-01  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/44912
+       * class.c (gfc_build_class_symbol): Make '$vptr' component private.
+       (gfc_find_derived_vtab): Make vtabs and vtypes public.
+       * module.c (read_module): When reading module files, always import
+       vtab and vtype symbols.
+
+2010-07-31  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/42051
+       PR fortran/44064
+       * symbol.c (changed_syms): Made non-static.
+       * parse.c (changed_syms): Declare new external. 
+       (next_statement): Assert changed_syms is NULL at the beginning.
+
+2010-07-30  Janus Weil  <janus@gcc.gnu.org>
+           Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       PR fortran/44929
+       * match.c (match_type_spec): Try to parse derived types before
+       intrinsic types.
+
+2010-07-30  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * gfortran.h (gfc_release_symbol): New prototype.
+       * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
+       (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
+       Use gfc_release_symbol.
+       * parse.c (gfc_fixup_sibling_symbols): Ditto.
+       * resolve.c (resolve_symbol): Ditto.
+
+2010-07-29  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45087
+       PR fortran/45125
+       * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
+       external procedure declarations in modules.
+       (gfc_get_symbol_decl): Modify assert.
+
+2010-07-29  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/44962
+       * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.
+
+2010-07-29  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45004
+       * trans-stmt.h (gfc_trans_class_init_assign): New prototype.
+       (gfc_trans_class_assign): Modified prototype.
+       * trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
+       * trans-expr.c (gfc_trans_class_init_assign): Split off from ...
+       (gfc_trans_class_assign): ... here. Modified actual arguments.
+       * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
+       handle the MOVE_ALLOC intrinsic with scalar and class arguments.
+       * trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.
+
+2010-07-29  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/42051
+       PR fortran/44064
+       * class.c (gfc_find_derived_vtab): Accept or discard newly created
+       symbols before returning.
+
+2010-07-29  Joseph Myers  <joseph@codesourcery.com>
+
+       * lang.opt (cpp): Remove Joined and Separate markers.
+       (cpp=): New internal option.
+       * lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
+       * cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
+       OPT_cpp.
+
+2010-07-29  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/45117
+       * array.c (resolve_array_bound): Fix error message to properly handle
+       non-variable expressions.
+
+2010-07-28  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * decl.c (free_value): Also free repeat field.
+       * data.c (gfc_assign_data_value): Always free offset before returning.
+
+2010-07-28  Daniel Kraft  <d@domob.eu>
+
+       * gfortran.h (gfc_build_intrinsic_call): New method.
+       * expr.c (gfc_build_intrinsic_call): New method.
+       * simplify.c (range_check): Ignore non-constant value.
+       (simplify_bound_dim): Handle non-variable expressions and
+       fix memory leak with non-free'ed expression.
+       (simplify_bound): Handle non-variable expressions.
+       (gfc_simplify_shape): Ditto.
+       (gfc_simplify_size): Ditto, but only in certain cases possible.
+
+2010-07-28  Joseph Myers  <joseph@codesourcery.com>
+
+       * gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
+       Remove.
+
+2010-07-28  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45077
+       * trans-types.c (gfc_get_derived_type): Fix DT declaration
+       from modules for whole-file mode.
+
+2010-07-27  Joseph Myers  <joseph@codesourcery.com>
+
+       * gfortran.h (gfc_handle_option): Update prototype and return
+       value type.
+       * options.c (gfc_handle_option): Update prototype and return value
+       type.
+
+2010-07-27  Joseph Myers  <joseph@codesourcery.com>
+
+       * cpp.c (gfc_cpp_init_options): Update prototype.  Use number of
+       decoded options in allocating deferred_opt.
+       * cpp.h (gfc_cpp_init_options): Update prototype.
+       * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
+       * gfortran.h (gfc_option_lang_mask): New.
+       (gfc_init_options): Update prototype.
+       * options.c (gfc_option_lang_mask): New.
+       (gfc_init_options): Update prototype.  Pass new arguments to
+       gfc_cpp_init_options.
+
+2010-07-26  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/40873
+       * trans-decl.c (gfc_get_extern_function_decl): Fix generation
+       for functions which are later in the same file.
+       (gfc_create_function_decl, build_function_decl,
+       build_entry_thunks): Add global argument.
+       * trans.c (gfc_generate_module_code): Update
+       gfc_create_function_decl call.
+       * trans.h (gfc_create_function_decl): Update prototype.
+       * resolve.c (resolve_global_procedure): Also resolve for
+       IFSRC_IFBODY.
+
+2010-07-26  Richard Henderson  <rth@redhat.com>
+
+       PR target/44132
+       * f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
+       (gfc_write_global_declarations): New.
+
+2010-07-26  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45066
+       * trans-io.c (build_dt): Use NULL_TREE rather than NULL
+       for call to transfer_namelist_element.
+       * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
+       for -fwhole-file.
+
+2010-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/40628
+       * Make-lang.in:  Add fortran/frontend-passes.o.
+       * gfortran.h:  Add prototype for gfc_run_passes.
+       * resolve.c (gfc_resolve):  Call gfc_run_passes.
+       * frontend-passes.c:  New file.
+
+2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/42852
+       * scanner.c (gfc_next_char_literal): Enable truncation warning for
+       free-form '&'.
+
+2010-07-25  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/44660
+       * gfortran.h (gfc_namespace): New field old_equiv.
+       (gfc_free_equiv_until): New prototype.
+       * match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
+       a parameterized stop condition.
+       (gfc_free_equiv): Use gfc_free_equiv_until.
+       * parse.c (next_statement): Save equivalence list.
+       (reject_statement): Restore equivalence list. 
+
 2010-07-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR fortran/42852