OSDN Git Service

2010-10-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index 02ab36d..43360d8 100644 (file)
@@ -1,3 +1,432 @@
+2010-10-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       * gfortran.h: Remove definition of bt enumerator.
+       * libgfortran.h: Add bt enumerator type alighned with defintion.
+       Remove the dtype enumerator, no longer used.
+       previously given in libgfortran/io.h
+       * trans-types.c: Use new bt enumerator.
+       * trans-io.c: Likewise.
+
+2010-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       * trans-io.c (gfc_build_io_library_fndecls):
+       Array descriptor arguments to transfer_array can be
+       dereferenced recursively.
+
+2010-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       PR fortran/20165
+       PR fortran/31593
+       PR fortran/43665
+       * trans-io.c (enum iocall): Add IOCALL_X_INTEGER_WRITE,
+       IOCALL_X_LOGICAL_WRITE, IOCALL_X_CHARACTER_WRITE,
+       IOCALL_X_CHARACTER_WIDE_WRIE, IOCALL_X_REAL_WRITE,
+       IOCALL_X_COMPLEX_WRITE and IOCALL_X_ARRAY_WRITE.
+       (gfc_build_io_library_fndecls):  Add corresponding function
+       decls.
+       (transfer_expr):  If the current transfer is a READ, use
+       the iocall with the original version, otherwise the version
+       with _WRITE.
+       (transfer_array_desc):  Likewise.
+
+2010-10-15  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45186
+       * trans.h (gfc_add_modify_loc, gfc_evaluate_now_loc): New prototypes.
+       (gfc_trans_runtime_error_vararg): Remove prototype.
+       * trans.c (gfc_add_modify_loc, gfc_evaluate_now_loc): New functions.
+       (gfc_add_modify, gfc_evaluate_now): Use them.
+       (trans_runtime_error_vararg): Renamed from
+       gfc_trans_runtime_error_vararg, made static and use locus.
+       (gfc_trans_runtime_error): Use it.
+       (gfc_trans_runtime_check): Ditto and make use of locus.
+       * trans-stmt.c (gfc_trans_if_1, gfc_trans_simple_do,
+       gfc_trans_do, gfc_trans_do_while): Improve line number
+       associated with generated expressions.
+
+2010-10-12  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/38936
+       * parse.c (parse_associate): Set typespec of associate-name if that of
+       the target is already available.
+
+2010-10-10  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45961
+       * resolve.c (resolve_typebound_function): Bugfix for type-bound
+       operators.
+
+2010-10-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
+
+       * frontend-passes.c:  Include opts.h.
+       (optimize_comparison):  Renamed from optimize_equality.
+       Change second argument to operation to be compared.
+       Use flag_finite_math_only to avoid comparing REAL and
+       COMPLEX only when NANs are honored.  Simplify comparing
+       of string concatenations where left or right operands are
+       equal.  Simplify all comparison operations, based on the result
+       of gfc_dep_compare_expr.
+       * dependency.c:  Include arith.h.
+       (gfc_are_identical_variables):  Volatile variables should not
+       compare equal to themselves.
+       (gfc_dep_compare_expr):  Handle string constants and string
+       concatenations.
+
+2010-10-08  Joseph Myers  <joseph@codesourcery.com>
+
+       * f95-lang.c (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
+       * gfortran.h (gfc_init_options_struct): Declare.
+       * options.c (gfc_init_options_struct): New.  Split out from
+       gfc_init_options.
+
+2010-10-07  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45933
+       * resolve.c (resolve_typebound_function): Use correct declared type
+       for type-bound operators.
+
+2010-10-07  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/45916
+       Revert revision 165026:
+       2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * decl.c (match_procedure_in_type): Assertify if conditions.
+
+2010-10-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/45889
+       * resolve.c (resolve_transfer): Use expression inside parenthesis to
+       find acutal component to be transgferred.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans-stmt.c (gfc_trans_allocate): free lhs expr.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans-array.c (gfc_free_ss_chain): Made non-static.
+       * trans-array.h (gfc_free_ss_chain): New prototype.
+       * trans-stmt.c (gfc_trans_where_2): Free ss chains.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Also free symbol's
+       subcomponents.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans-stmt.c (gfc_trans_forall_1): Free forall struct at the end.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans-expr.c (get_proc_ptr_comp): Restore initial expression type
+       before calling gfc_free_expr.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans-array.c (gfc_conv_tmp_array_ref): Add factorized call to
+       gfc_advance_se_ss_chain.
+       * trans-expr.c (gfc_conv_subref_array_ref, gfc_conv_procedure_call,
+       gfc_conv_array_constructor_expr, gfc_trans_assignment_1): Remove
+       calls to gfc_advance_se_ss_chain after gfc_conv_tmp_array_ref.
+       * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
+       * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans.c (gfc_restore_backend_locus): New function.
+       (gfc_get_backend_locus): Renamed to ...
+       (gfc_save_backend_locus): ... this.
+       * trans.h (gfc_restore_backend_locus, gfc_get_backend_locus,
+       gfc_save_backend_locus): Same.
+       * trans-array.c (gfc_trans_g77_array, gfc_trans_dummy_array_bias,
+       gfc_trans_deferred_array): Rename gfc_get_backend_locus to
+       gfc_save_backend_locus.
+       (gfc_trans_dummy_array_bias): Call gfc_restore_backend_locus at the
+       end.
+       (gfc_trans_g77_array, gfc_trans_deferred_array): Use
+       gfc_restore_backend_locus instead of gfc_set_backend_locus.
+       (gfc_trans_deferred_array): Call gfc_restore_backend_locus on early
+       return.
+       * trans-decl.c (gfc_get_extern_function_decl, build_entry_thunks,
+       gfc_trans_deferred_vars):
+       Rename gfc_get_backend_locus to gfc_save_backend_locus.
+       Use gfc_restore_backend_locus insted of gfc_set_backend_locus.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * trans-array.c (gfc_build_constant_array_constructor): Free array
+       spec when done.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * symbol.c (gfc_copy_formal_args_ppc): Free previous formal arg list
+       before overwriting it.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * array.c (gfc_match_array_spec): Don't re-initialize cleared struct.
+       * symbol.c (gen_shape_param): Ditto.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * symbol.c (free_entry_list): New function.
+       (gfc_free_namespace): Free list of entries.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * symbol.c (free_components): Free list of formal args and formal
+       namespace.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * simplify.c (gfc_simplify_size): Clear temporary mpz int before
+       returning.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * resolve.c (add_dt_to_dt_list): Remove unneeded if.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * resolve.c (check_typebound_baseobject): Free local expr before
+       returning.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * primary.c (gfc_match_structure_constructor): Invert the assert logic.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * primary.c (gfc_free_structure_ctor_component): Also free the
+       component structure itself.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * module.c (gfc_use_module): Free atom_string when done with it.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * module.c (read_module): Remove useless string duplication.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * gfortranspec.c (append_arg): Remove commented code.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * decl.c (match_procedure_in_type): Assertify if conditions.
+
+2010-10-06  Mikael Morin  <mikael@gcc.gnu.org>
+
+       * cpp.c (gfc_cpp_post_options): Don't create a cpp reader if
+       preprocessing is disabled.
+
+2010-10-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/45838
+       * f95-lang.c (ATTR_NOTHROW_LEAF_LIST, ATTR_CONST_NOTHROW_LEAF_LIST,
+       ATTR_NOTHROW_LIST, ATTR_CONST_NOTHROW_LIST): Define.
+       (gfc_define_builtin): Change last argument to int bitmask from bool,
+       control addition of TREE_NOTHROW and leaf attribute as well.
+       (DO_DEFINE_MATH_BUILTIN): Adjust callers.
+       (gfc_init_builtin_functions): Likewise.  Remove
+       ATTR_{,CONST_}NOTHROW_LIST enum.
+
+2010-10-04  Andi Kleen <ak@linux.intel.com>
+
+       * Make-lang.in (gfortran, f951): Add + to build rule.
+
+2010-10-04  Richard Guenther  <rguenther@suse.de>
+
+       * f95-lang.c (current_translation_unit): New global variable.
+       (gfc_create_decls): Build a translation-unit decl.
+       (pushdecl): In the global binding-level use the
+       translation-unit decl as DECL_CONTEXT.
+       * trans-decl.c (gfc_get_symbol_decl): Use DECL_FILE_SCOPE_P.
+       (build_function_decl): Likewise.  Delay setting the assembler
+       name, leave setting of DECL_CONTEXT to pushdecl.
+       (trans_function_start): Use DECL_FILE_SCOPE_P.
+       (gfc_create_module_variable): Likewise.  Remove questionable
+       asserts.
+       * trans.c (gfc_generate_module_code): Likewise.
+
+2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       * cpp.c (cpp_define_builtins): Call functions from cppbuiltin.c
+       instead of duplicating code.
+       * Make-lang.in: Add dependency on cppbuiltin.h. Don't define
+       BASEVER.
+
+2010-10-02  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45748
+       * resolve.c (resolve_formal_arglist): Avoid setting default type for
+       formal arguments of intrinsic procedures.
+
+2010-09-30  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45828
+       * resolve.c (resolve_allocate_expr): Do not use
+       'gfc_has_default_initializer'.
+
+2010-09-30  Tobias Burnus  <burnus@net-b.de>
+
+       * gfortran.tex (Fortran 2008 status): Update list of
+       implemented features.
+
+2010-09-29  Joseph Myers  <joseph@codesourcery.com>
+
+       * lang.opt: Don't use VarExists.
+
+2010-09-29  Joseph Myers  <joseph@codesourcery.com>
+
+       * cpp.c (cpp_define_builtins): Update names of gfc_option_t
+       members.
+       (gfc_cpp_post_options): Update names of cpp_options members.
+       (cb_cpp_error): Update names of diagnostic_context members.
+       * f95-lang.c (gfc_init_builtin_functions): Update names of
+       gfc_option_t members.
+       * gfortran.h (gfc_option_t): Rename warn_conversion and
+       flag_openmp.
+       * intrinsic.c (gfc_convert_type_warn): Update names of
+       gfc_option_t members.
+       * options.c (gfc_init_options, gfc_post_options, set_Wall,
+       gfc_handle_option): Update names of gfc_option_t members.
+       * parse.c (next_free, next_fixed): Update names of gfc_option_t
+       members.
+       * scanner.c (pedantic): Remove extern declaration.
+       (skip_free_comments, skip_fixed_comments, include_line): Update
+       names of gfc_option_t members.
+       * trans-decl.c (gfc_generate_function_code): Update names of
+       gfc_option_t members.
+
+2010-09-28  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/40569
+       PR fortran/40568
+       * intrinsic.c (add_functions): Make compiler_version and
+       compiler_options CLASS_INQUIRY.
+       * gfortran.h (gfc_get_option_string): New prototype.
+       * intrinsic.texi (COMPILER_VERSION, COMPILER_OPTIONS):
+       Add documentation.
+       (C_SIZEOF): Mark as inquiry function of ISO_C_BINDING.
+       (ISO_FORTRAN_ENV): Refer to COMPILER_VERSION and COMPILER_OPTIONS.
+       (ISO_C_BINDING): Refer to C_SIZEOF.
+       * options.c (gfc_get_option_string): New function.
+       * simplify.c (gfc_simplify_compiler_options): Use it.
+       (gfc_simplify_compiler_version): Include compiler name.
+
+2010-09-28  Jan Hubicka  <jh@suse.cz>
+
+       * f95-lang.c (gfc_define_builtin): Make leaf.
+       (gfc_init_builtin_functions): Handle only ATTR_CONST_NOTHROW_LEAF_LIST
+       and ATTR_NOTHROW_LEAF_LIST.
+       (DEF_SYNC_BUILTIN): Check ATTR_CONST_NOTHROW_LEAF_LIST.
+       (DEF_GOMP_BUILTIN): Likewise.
+
+2010-09-28  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/45756
+       * trans-decl.c (gfc_get_symbol_decl): Use gsym for decl of
+       module parameters.
+
+2010-09-27  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/40569
+       PR fortran/40568
+       * intrinsic.h (gfc_simplify_compiler_options,
+       gfc_simplify_compiler_version): New prototypes.
+       * intrinsic.c (gfc_intrinsic_function_by_id,
+       make_from_module): New functions.
+       (gfc_find_function, gfc_find_subroutine, gfc_generic_intrinsic,
+       gfc_specific_intrinsic): Don't return module intrinsics.
+       (add_functions): Add compiler_options, compiler_version.
+       (gfc_intrinsic_func_interface): Also lookup symbol by ISYM ID.
+       * symbol.c (std_for_isocbinding_symbol): Add version check for
+       NAMED_FUNCTIONS.
+       * iso-fortran-env.def: Add compiler_options, compiler_version.
+       * iso-c-binding.def: Add c_sizeof.
+       * gfortran.h (gfc_intrinsic_sym): Add from_module:1.
+       (iso_c_binding_symbol, iso_fortran_env_symbol): Add NAMED_FUNCTIONS.
+       (gfc_intrinsic_function_by_id): New prototype.
+       * module.c (create_intrinsic_function): New function.
+       (import_iso_c_binding_module, use_iso_fortran_env_module): Use it.
+       * trans-types.c (init_c_interop_kinds): Add NAMED_FUNCTIONS.
+       * resolve.c (resolve_intrinsic): Try also to resolve intrinsics
+       by ISYM ID.
+       * simplify.c (gfc_simplify_compiler_options,
+       gfc_simplify_compiler_version): New functions.
+
+2010-09-26  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/45783
+       PR fortran/45795
+       * resolve.c (resolve_select_type): Clarify code.
+       (resolve_assoc_var): Only set typespec if it is currently unknown.
+
+2010-09-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/45793
+       * module.c (create_int_parameter_array): Set the array value shape.
+
+2010-09-25  Tobias Burnus  <burnus@net-b.de>
+
+       * gfortran.texi: Re-add accidently removed \input line.
+
+2010-09-25  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/45776
+       * gfortran.h (struct gfc_dt): New member `dt_io_kind'.
+       * io.c (resolve_tag): F2008 check for NEWUNIT and variable
+       definition checks for NEWUNIT, IOSTAT, SIZE and IOMSG.
+       (gfc_free_dt): Correctly handle freeing of `dt_io_kind' and
+       `extra_comma' with changed semantics.
+       (gfc_resolve_dt): Check variable definitions.
+       (match_io_element): Remove INTENT and PURE checks here and
+       initialize code->ext.dt member.
+       (match_io): Set dt->dt_io_kind.
+       (gfc_resolve_inquire): Check variable definition for all tags
+       except UNIT, FILE and ID.
+       * resolve.c (resolve_transfer): Variable definition check.
+
+2010-09-25  Tobias Burnus  <burnus@net-b.de>
+
+       * interface.c (gfc_match_end_interface): Constify char pointer
+       to fix warning.
+
+2010-09-24  Steven G. Kargl  < kargl@gcc.gnu.org>
+
+       * interface.c (gfc_match_end_interface): Deal with user defined
+       operators that overload rational operators and C1202.
+
+2010-09-24  Tobias Burnus  <burnus@net-b.de>
+
+       * gfortran.texi: Add second space after end-of-sentence period;
+       change / to /@/ to allow hyphenation of URLs.
+       (Standards): Remove duplicated OpenMP, update wording given that
+       Fortran 2008 now released.
+       (Fortran 2008 status): Update and add list of implemented features.
+
+2010-09-24  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/40571
+       * iso-fortran-env.def: Add NAMED_KINDARRAY with
+       character_kinds, integer_kinds, logical_kinds and
+       real_kinds.
+       * gfortran.h: Add them to iso_fortran_env_symbol.
+       * libgfortran.h: Rename GFC_INQUIRE_INTERNAL_UNIT to
+       LIBERROR_INQUIRE_INTERNAL_UNIT and move it from
+       libgfortran_stat_codes to libgfortran_error_codes.
+       * module.c (create_int_parameter_array): New function.
+       (use_iso_fortran_env_module): Use it for
+       NAMED_KINDARRAY of iso-fortran-env.def.
+       * trans-decl.c (gfc_get_symbol_decl): Parameter
+       arrays of intrinsics modules become local static variables.
+       * intrinsic.texi (ISO_FORTRAN_ENV): Add character_kinds,
+       integer_kinds, logical_kinds and real_kinds.
+
 2010-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/45744