OSDN Git Service

2008-12-02 Jakub Jelinek <jakub@redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index f4f82e2..819113b 100644 (file)
@@ -1,3 +1,365 @@
+2008-12-02  Jakub Jelinek  <jakub@redhat.com>
+           Diego Novillo  <dnovillo@google.com>
+
+       * Make-lang.in (install-finclude-dir): Use mkinstalldirs
+       and don't remove the finclude directory beforehand.
+
+2008-12-02  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/36704
+       PR fortran/38290
+       * decl.c (match_result): Result may be a standard variable or a
+       procedure pointer.
+       * expr.c (gfc_check_pointer_assign): Additional checks for procedure
+       pointer assignments.
+       * primary.c (gfc_match_rvalue): Bugfix for procedure pointer
+       assignments.
+       * resolve.c (resolve_function): Check for attr.subroutine.
+       * symbol.c (check_conflict): Addtional checks for RESULT statements.
+       * trans-types.c (gfc_sym_type,gfc_get_function_type): Support procedure
+       pointers as function result.
+
+2008-12-01  Mikael Morin  <mikael.morin@tele2.fr>
+
+       PR fortran/38252
+       * parse.c (parse_spec): Skip statement order check in case
+       of a CONTAINS statement.
+
+2008-11-30  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/37779
+       * gfortran.h (struct gfc_entry_list): Fixed typo in comment.
+       * resolve.c (is_illegal_recursion): New method.
+       (resolve_procedure_expression): Use new is_illegal_recursion instead of
+       direct check and handle function symbols correctly.
+       (resolve_actual_arglist): Removed useless recursion check.
+       (resolve_function): Use is_illegal_recursion instead of direct check.
+       (resolve_call): Ditto.
+
+2008-11-29  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * trans-array.c (gfc_conv_array_parameter): Guard union access.
+
+2008-11-29  Janus Weil  <janus@gcc.gnu.org>
+           Mikael Morin <mikael@gcc.gnu.org>
+
+       PR fortran/38289
+       PR fortran/38290
+       * decl.c (match_procedure_decl): Handle whitespaces.
+       * resolve.c (resolve_specific_s0): Bugfix in check for intrinsic
+       interface.
+
+2008-11-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * module.c (gfc_dump_module): Report error on unlink only if
+       errno != ENOENT.
+
+2008-11-25  Mikael Morin  <mikael.morin@tele2.fr>
+
+       PR fortran/36463
+       * expr.c (replace_symbol): Don't replace the symtree
+       if the expresion is an intrinsic function. Don't create
+       non-existent symtrees.  Use symbol's name instead of symtree's,
+       different in case of module procedure dummy arguments.
+
+2008-11-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       PR fortran/38248
+       * module.c (gfc_dump_module): Check rename/unlink syscalls errors.
+
+2008-11-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR fortran/37319
+       * parse.c (match_deferred_characteristics): Make sure 'name' is
+       initialized before reading it.
+
+2008-11-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/37803
+       * arith.c (gfc_check_real_range): Add mpfr_check_range.
+       * simplify.c (gfc_simplify_nearest): Add mpfr_check_range.
+
+2008-11-24  Mikael Morin  <mikael.morin@tele2.fr>
+
+       PR fortran/38184
+       * simplify.c (is_constant_array_expr): Return true instead of false
+       if the array constructor is empty.
+
+2008-11-24  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/37779
+       * resolve.c (resolve_procedure_expression): New method.
+       (resolve_variable): Call it.
+       (resolve_actual_arglist): Call gfc_resolve_expr for procedure arguments.
+
+2008-11-24  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/34820
+       * trans-expr.c (gfc_conv_function_call): Remove all code to
+       deallocate intent out derived types with allocatable
+       components.
+       (gfc_trans_assignment_1): An assignment from a scalar to an
+       array of derived types with allocatable components, requires
+       a deep copy to each array element and deallocation of the
+       converted rhs expression afterwards.
+       * trans-array.c : Minor whitespace.
+       * trans-decl.c (init_intent_out_dt): Add code to deallocate
+       allocatable components of derived types with intent out.
+       (generate_local_decl): If these types are unused, set them
+       referenced anyway but allow the uninitialized warning.
+
+       PR fortran/34143
+       * trans-expr.c (gfc_trans_subcomponent_assign): If a conversion
+       expression has a null data pointer argument, nullify the
+       allocatable component.
+
+       PR fortran/32795
+       * trans-expr.c (gfc_trans_subcomponent_assign): Only nullify
+       the data pointer if the source is not a variable.
+
+2008-11-23  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/37735
+       * trans-array.c (structure_alloc_comps): Do not duplicate the
+       descriptor if this is a descriptorless array!
+
+2008-11-12  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/38160
+       * trans-types.c (gfc_validate_c_kind): Remove function.
+       * decl.c (gfc_match_kind_spec): Add C kind parameter check.
+       (verify_bind_c_derived_type): Remove gfc_validate_c_kind call.
+       (verify_c_interop_param): Update call.
+       * gfortran.h (verify_bind_c_derived_type): Update prototype.
+       (gfc_validate_c_kind): Remove.
+       * symbol.c (verify_bind_c_derived_type): Update verify_c_interop call.
+       * resolve.c (gfc_iso_c_func_interface): Ditto.
+
+2008-11-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR libfortran/37839
+       * trans-io.c (gfc_build_io_library_fndecls): Decrease pad size back
+       to 16 pointers plus 32 integers.  Don't use max integer kind
+       alignment, only gfc_intio_kind's alignment.
+       (gfc_trans_inquire): Only set flags2 if mask2 is non-zero.
+       * ioparm.def: Fix order, bitmasks and types of inquire round, sign
+       and pending fields.  Move u in dt before id.
+       * io.c (gfc_free_inquire): Free decimal and size exprs.
+       (match_inquire_element): Match size instead of matching blank twice.
+       (gfc_resolve_inquire): Resolve size.
+
+2008-11-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/29215
+       * trans-array.c (trans_array_constructor_value,
+       gfc_build_constant_array_constructor): Fill in TREE_PURPOSE.
+
+       * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use
+       gfc_index_one_node.
+       (gfc_conv_intrinsic_size): Use gfc_index_{zero,one}_node.
+
+       PR fortran/38181
+       * trans-intrinsic.c (gfc_conv_intrinsic_size): Inline 2 argument
+       size if the second argument is not optional and one argument size
+       for rank 1 arrays.
+
+2008-11-19  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/38171
+       * module.c (load_equiv): Regression fix; check that equivalence
+       members come from the same module only.
+
+2008-11-16  Mikael Morin <mikael.morin@tele2.fr>
+
+       PR fortran/35681
+       * dependency.c (gfc_check_argument_var_dependency): Add
+       elemental check flag. Issue a warning if we find a dependency
+       but don't generate a temporary. Add the case of an elemental
+       function call as actual argument to an elemental procedure.
+       Add the case of an operator expression as actual argument
+       to an elemental procedure.
+       (gfc_check_argument_dependency): Add elemental check flag.
+       Update calls to gfc_check_argument_var_dependency.
+       (gfc_check_fncall_dependency): Add elemental check flag.
+       Update call to gfc_check_argument_dependency.
+       * trans-stmt.c (gfc_trans_call): Make call to
+       gfc_conv_elemental_dependency unconditional, but with a flag
+       whether we should check dependencies between variables.
+       (gfc_conv_elemental_dependency): Add elemental check flag.
+       Update call to gfc_check_fncall_dependency.
+       * trans-expr.c (gfc_trans_arrayfunc_assign): Update call to
+       gfc_check_fncall_dependency.
+       * resolve.c (find_noncopying_intrinsics): Update call to
+       gfc_check_fncall_dependency.
+       * dependency.h (enum gfc_dep_check): New enum.
+       (gfc_check_fncall_dependency): Update prototype.
+
+2008-11-16  Mikael Morin  <mikael.morin@tele2.fr>
+
+       PR fortran/37992
+       * gfortran.h (gfc_namespace): Added member old_cl_list, 
+       backup of cl_list.
+       (gfc_free_charlen): Added prototype.
+       * symbol.c (gfc_free_charlen): New function.
+       (gfc_free_namespace): Use gfc_free_charlen.
+       * parse.c (next_statement): Backup gfc_current_ns->cl_list.
+       (reject_statement): Restore gfc_current_ns->cl_list.
+       Free cl_list's elements before dropping them.
+
+2008-11-16  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/38095
+       * trans-expr.c (gfc_map_intrinsic_function): Fix pointer access.
+
+2008-11-16  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/38119
+       * trans-array.c (gfc_trans_create_temp_array): Set the
+       loop->from to zero and the renormalisation of loop->to for all
+       dimensions.
+
+2008-11-16  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/37926
+       * trans-expr.c (gfc_free_interface_mapping): Null sym->formal
+       (gfc_add_interface_mapping): Copy the pointer to the formal
+       arglist, rather than using copy_formal_args - fixes regression.
+
+2008-11-15  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/37926
+       * trans-expr.c (gfc_add_interface_mapping): Transfer the formal
+       arglist and the always_explicit attribute if the dummy arg is a
+       procedure.
+
+2008-11-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/37988
+       * io.c (enum format_token): For readability replace FMT_POS with FMT_T,
+       FMT_TL, and FMT_TR.  (format_lex): Use new enumerators. (check_format):
+       Add check for missing positive integer.
+
+2008-10-14  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/38033
+       * trans-array.c (gfc_trans_create_temp_array): Stabilize the
+       'to' expression.
+       (gfc_conv_loop_setup): Use the end expression for the loop 'to'
+       if it is available.
+
+2008-11-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/35366
+       PR fortran/33759
+       * trans-const.c (gfc_conv_constant_to_tree): Warn when
+       converting an integer outside of LOGICAL's range to
+       LOGICAL.
+       * trans-intrinsic.c (gfc_conv_intrinsic_function,
+       gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer):
+       Use INTEGER_TYPE instead of BOOLEAN_TYPE for TRANSFER as
+       argument of another TRANSFER.
+
+2008-11-12  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/38065
+       * resolve.c (resolve_fntype): Fix private derived type checking.
+
+2008-11-09  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/37836
+       * intrinsic.c (add_functions): Reference gfc_simplify._minval
+       and gfc_simplify_maxval.
+       * intrinsic.h : Add prototypes for gfc_simplify._minval and
+       gfc_simplify_maxval.
+       * simplify.c (min_max_choose): New function extracted from
+       simplify_min_max.
+       (simplify_min_max): Call it.
+       (simplify_minval_maxval, gfc_simplify_minval,
+       gfc_simplify_maxval): New functions.
+
+2008-11-04  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/37597
+       * parse.c (gfc_fixup_sibling_symbols ): Fixup contained, even
+       when symbol not found.
+
+2008-11-03  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/37821
+       * cpp.c (gfc_cpp_add_include_path): Use BRACKET.
+       * scanner.c (add_path_to_list): Argument to add at head.
+       (gfc_add_include_path): Add new argument.
+       (gfc_add_intrinsic_modules_path) Update call.
+       (load_file): Print filename/line in the error message.
+       * gfortran.h (gfc_add_include_path): Update prototype.
+       * options.c (gfc_post_options,gfc_handle_module_path_options,
+       gfc_handle_option): Update call.
+       * lang-spec.h (F951_OPTIONS): Don't insert include path twice.
+
+       * arith.c (arith_error): Add -fno-range-error to the message.
+
+2008-11-03  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/37445
+       * resolve.c (resolve_actual_arglist ): Correct comparison of
+       FL_VARIABLE with e->expr_type.
+       (resolve_call): Check that host association is correct.
+       (resolve_actual_arglist ): Remove return is old_sym is use
+       associated.  Only reparse expression if old and new symbols
+       have different types.
+
+       PR fortran/PR35769
+       * resolve.c (gfc_resolve_assign_in_forall): Change error to a
+       warning.
+
+2008-11-01  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/36426
+       * expr.c (replace_symbol): Replace all symbols which lie in the
+       formal namespace of the interface and copy their attributes.
+       * resolve.c (resolve_symbol): Add charlen to namespace.
+
+2008-11-01  Steven G. Kargl  <kargls@comcast.net>
+
+       PR fortran/19925
+       * trans-array.c (gfc_trans_array_constructor_value): Fix comment.
+       (gfc_conv_array_initializer): Convert internal_error() to gfc_error_now.
+       * array.c: Remove GFC_MAX_AC_EXPAND macro.
+       (gfc_expand_constructor): Use gfc_option.flag_max_array_constructor.
+       * gfortran.h (gfc_option): Add flag_max_array_constructor member.
+       * lang.opt: Add -fmax-array-constructor option.
+       * expr.c (gfc_match_init_expr): Fix error message to mention new option.
+       * invoke.texi: Document new option.
+       * options.c (gfc_init_options): Set default value for new option.
+       (gfc_handle_option): Deal with commandline.
+
+2008-11-01  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/35681
+       * gfortran.h (struct gfc_code): New field `resolved_isym'.
+       * trans.h (gfc_build_memcpy_call): Made public.
+       * trans-array.h (gfc_trans_create_temp_array): New argument `initial'.
+       * intrinsic.c (gfc_intrinsic_sub_interface): Set resolved_isym.
+       * iresolve.c (create_formal_for_intents): New helper method.
+       (gfc_resolve_mvbits): Put dummy formal arglist on resolved_sym.
+       * resolve.c (resolve_call): Initialize resolved_isym to NULL.
+       * trans-array.c (gfc_trans_allocate_array_storage): New argument
+       `initial' to allow initializing the allocated storage to some initial
+       value copied from another array.
+       (gfc_trans_create_temp_array): Allow initialization of the temporary
+       with a copy of some other array by using the new extension.
+       (gfc_trans_array_constructor): Pass NULL_TREE for initial argument.
+       (gfc_conv_loop_setup): Ditto.
+       * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Ditto.
+       * trans-expr.c (gfc_conv_function_call): Ditto.
+       (gfc_build_memcpy_call): Made public.
+       * trans-stmt.c (gfc_conv_elemental_dependencies): Initialize created
+       temporary for INTENT(INOUT) arguments to the value of the mirrored
+       array and clean up the temporary as very last intructions in the created
+       block.
+       * trans.c (gfc_trans_code): For EXEC_CALL, see if we have a MVBITS call
+       and enable elemental dependency checking if we have.
+
 2008-11-01  Janus Weil  <janus@gcc.gnu.org>
 
        PR fortran/36322
        * fortran/arith.h: Update mpfr_to_mpz prototype.
        * fortran/simplify.c (gfc_simplify_ceiling, gfc_simplify_floor,
        gfc_simplify_ifix, gfc_simplify_idint, simplify_nint): Update function
-       calls to include locus
+       calls to include locus.
 
 2008-10-30  Mikael Morin  <mikael.morin@tele2.fr>