OSDN Git Service

2010-10-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index 677902f..db563e9 100644 (file)
@@ -1,3 +1,457 @@
+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
+       * frontend-passes.c (optimize_binop_array_assignment):
+       Only re-use lhs as intermediate storage if kind and type
+       parameters match.
+
+2010-09-23  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/45745
+       PR fortran/45648
+       * trans-array.c (gfc_conv_expr_descriptor): Handle
+       ss->type == GFC_SS_INTRINSIC (for {l,u}bound intrinsics) case.
+
+2010-09-23  Tobias Burnus  <burnus@net-b.de>
+
+       * intrinsic.texi (OpenMP modules): Add named constants of
+       OMP_LIB.
+
+2010-09-23  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/38936
+       PR fortran/44044
+       PR fortran/45474
+       * gfortran.h (gfc_check_vardef_context): New method.
+       (struct symbol_attribute): New flag `select_type_temporary'.
+       * primary.c (gfc_variable_attr): Clarify initialization of ref.
+       (match_variable): Remove PROTECTED check and assignment check
+       for PARAMETERs (this is now done later).
+       * match.c (gfc_match_iterator): Remove INTENT(IN) check.
+       (gfc_match_associate): Defer initialization of newAssoc->variable.
+       (gfc_match_nullify): Remove PURE definability check.
+       (select_type_set_tmp): Set new `select_type_temporary' flag.
+       * expr.c (gfc_check_assign): Remove INTENT(IN) check here.
+       (gfc_check_pointer_assign): Ditto (and other checks removed).
+       (gfc_check_vardef_context): New method.
+       * interface.c (compare_parameter_protected): Removed.
+       (compare_actual_formal): Use `gfc_check_vardef_context' for checks
+       related to INTENT([IN]OUT) arguments.
+       * intrinsic.c (check_arglist): Check INTENT for intrinsics.
+       * resolve.c (gfc_resolve_iterator): Use `gfc_check_vardef_context'.
+       (remove_last_array_ref): New method.
+       (resolve_deallocate_expr), (resolve_allocate_expr): Ditto.
+       (resolve_allocate_deallocate): Ditto (for STAT and ERRMSG).
+       (resolve_assoc_var): Remove checks for definability here.
+       (resolve_select_type): Handle resolving of code->block here.
+       (resolve_ordinary_assign): Remove PURE check.
+       (resolve_code): Do not resolve code->blocks for SELECT TYPE here.
+       Use `gfc_check_vardef_context' for assignments and pointer-assignments.
+
+2010-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * gfortran.texi (Argument list functions): Allow URL to wrap.
+       * intrinsic.texi (GETGID, GETPID, GETUID, IMAGE_INDEX)
+       (IS_IOSTAT_END, IS_IOSTAT_EOR, NUM_IMAGES, THIS_IMAGE)
+       (ISO_FORTRAN_ENV): Fix markup in index entries, and a couple of
+       code markups in the text.
+       * invoke.texi (Fortran Dialect Options)
+       (Error and Warning Options, Directory Options, Code Gen Options):
+       Likewise.  Remove @code inside @smallexample.
+
+2010-09-22  Joseph Myers  <joseph@codesourcery.com>
+
+       * gfortranspec.c (lang_specific_driver): Handle OPT__version and
+       OPT__help instead of OPT_fversion and OPT_fhelp.
+       * lang.opt (-all-warnings, -assert, -assert=, -comments,
+       -comments-in-macros, -define-macro, -define-macro=, -dependencies,
+       -dump, -dump=, -include-barrier, -include-directory,
+       -include-directory=, -include-directory-after,
+       -include-directory-after=, -include-prefix, -include-prefix=,
+       -no-line-commands, -no-standard-includes, -output, -output=,
+       -preprocess, -print-missing-file-dependencies, -trace-includes,
+       -undefine-macro, -undefine-macro=, -user-dependencies, -verbose,
+       -write-dependencies, -write-user-dependencies): New.
+
+2010-09-21  Jason Blevins  <jrblevin@sdf.org>
+
+       * intrinsics.texi (HYPOT, IMAGE_INDEX, BESSEL_JN, BESSEL_YN,
+       execute_command_line, IEOR, IOR, NORM2, NOT, NULL, PARITY):
+       Correct spelling.
+
+2010-09-21  Mikael Morin  <mikael@gcc.gnu.org>
+
+       PR fortran/45648
+       * trans-array.c (gfc_conv_expr_descriptor): Calculate dim out of n and
+       info->dim.
+
+       PR fortran/45648
+       * trans-array.c (gfc_conv_expr_descriptor): Unset full if we are
+       accessing dimensions in reversed order. 
+
+       PR fortran/45648
+       * trans-array.c (gfc_conv_expr_descriptor): Special case noncopying
+       intrinsic function call. 
+
+       * trans-array.c (gfc_conv_expr_descriptor): Remove ss lookup.
+       Update asserts accordingly.
+
+       PR fortran/45648
+       * trans.h (gfc_se): New field force_tmp. 
+       * trans-expr.c (gfc_conv_procedure_call): Check for argument alias
+       and set parmse.force_tmp if some alias is found. 
+       * trans-array.c (gfc_conv_expr_descriptor): Force a temporary creation
+       if se->force_tmp is set. 
+
+2010-09-20  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/45438
+       * trans-expr.c (gfc_conv_procedure_call): Fix pointer checking for
+       TBPs, PPCs and pointer/allocatable components.
+
+2010-09-20  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/45081
+       * simplify.c (is_constant_array_expr): Allow structure array
+       elements as well as constants.
+       (gfc_simplify_pack, gfc_simplify_reshape, gfc_simplify_spread,
+       gfc_simplify_transpose, gfc_simplify_unpack): Copy the derived
+       type of source to the result.
+
 2010-09-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        * frontend-passes.c (gfc_expr_walker):  Also