OSDN Git Service

* trans-array.c (gfc_trans_create_temp_array): When the size is known
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index 2ce1ec6..d25f5bf 100644 (file)
@@ -1,3 +1,240 @@
+2006-12-21  Roger Sayle  <roger@eyesopen.com>
+
+       * trans-array.c (gfc_trans_create_temp_array): When the size is known
+       at compile-time, avoid an unnecessary conditional assignment.
+       (gfc_array_init_size): Likewise.
+
+2006-12-22  Kazu Hirata  <kazu@codesourcery.com>
+
+       * interface.c: Fix a comment typo.
+
+2006-12-21  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/30273
+       * dependency.c (gfc_check_dependency): There is no dependency
+       with EXPR_NULL so always return 0.
+
+2006-12-21  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/30202
+       * trans-array.c (gfc_conv_function_call): Use parmse.expr for
+       the nullifying of intent(out) arguments rather than the backend
+       declaration.
+
+2006-12-20  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       PR fortran/25392
+       * trans-stmt.c (gfc_trans_return): Fix comment formatting.
+       * trans-types.c (gfc_sym_type): Don't return early for functions.
+       Remove special handling for -ff2c.
+       (gfc_get_function_type): Add special handling for -ff2c.
+       * trans-decl.c (gfc_create_function_decl): Fix comment formatting.
+       (gfc_get_fake_result_decl): Make sure we get the right type for
+       functions.
+       (gfc_generate_function_code): Convert type of result variable to
+       type of function.
+
+2006-12-20  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/30190
+       * trans-array.c (gfc_conv_array_ref): Remove gfc_evaluate_now
+       from the -fbounds-check branch.
+
+2006-12-20  Roger Sayle  <roger@eyesopen.com>
+
+       * trans-expr.c (is_zero_initializer_p): Determine whether a given
+       constant expression is a zero initializer.
+       (gfc_trans_zero_assign): New function to attempt to optimize
+       "a(:) = 0.0" as a call to __builtin_memset (a, 0, sizeof(a));
+       (gfc_trans_assignment): Special case array assignments to a
+       zero initializer constant, using gfc_trans_zero_assign.
+
+2006-12-20  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/29992
+       * interface.c (check_sym_interfaces): Module procedures in a
+       generic must be use associated or contained in the module.
+       * decl.c (gfc_match_modproc): Set attribute mod_proc.
+       * gfortran.h (symbol_attribute): Add mod_proc atribute.
+
+       PR fortran/30081
+       * resolve.c (resolve_generic_f, resolve_generic_s): Use
+       gfc_intrinsic_name to find out if the function is intrinsic
+       because it does not have to be a generic intrinsic to be
+       overloaded.
+
+2006-12-19  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/39238
+       * trans-intrinsic.c: Check for associated(NULL,NULL). 
+
+2006-12-19  Paul Thomas <pault@gcc.gnu.org>
+
+       PR fortran/30236
+       * interface.c (compare_interfaces): Handle NULL symbols.
+       (count_types_test): Count NULL symbols, which correspond to
+       alternate returns.
+
+       (check_interface1): Change final argument from int to bool
+       in the function and all references.
+
+2006-12-18  Roger Sayle  <roger@eyesopen.com>
+
+       * trans-array.c (gfc_conv_array_index_offset): Avoid multiplying
+       index by one, or adding zero to it.
+
+2006-12-17  Roger Sayle  <roger@eyesopen.com>
+
+       PR fortran/30207
+       * dependency.c (gfc_full_array_ref_p): New function to test whether
+       the given array ref specifies the entire array.
+       (gfc_dep_resolver): Use gfc_full_array_ref_p to analyze AR_FULL
+       array refs against AR_SECTION array refs, and vice versa.
+       * dependency.h (gfc_full_array_ref_p): Prototype here.
+       * trans-array.c (gfc_conv_expr_descriptor): Use gfc_full_array_ref_p.
+
+2006-12-16  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * gfortran.texi: Added TeX support for document parts;
+       rearranged existing text into "About GNU Fortran",
+       "Invoking GNU Fortran", and "Language Reference" parts.
+
+2006-12-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/30200
+       * trans-io.c (build_dt): Move post block for format_expr to end.
+
+2006-12-14  Richard Guenther  <rguenther@suse.de>
+           Diego Novillo  <dnovillo@redhat.com>
+
+       * Make-lang.in (fortran/options.o): Add $(PARAMS_H) dependency.
+       * options.c (params.h): Include.
+       (gfc_post_options): Set MAX_ALIASED_VOPS to 50.
+
+2006-12-13  Richard Guenther  <rguenther@suse.de>
+
+       PR fortran/30115
+       * trans-array.c (gfc_array_allocate): Adjust for changed
+       library interface.
+       (gfc_array_deallocate): Likewise.
+       (gfc_trans_dealloc_allocated): Likewise.
+       * trans-stmt.c (gfc_trans_allocate): Likewise.
+       (gfc_trans_deallocate): Likewise.
+       * trans-decl.c (gfc_build_builtin_function_decls): Adjust
+       function declarations to match the library changes.  Mark
+       allocation functions with DECL_IS_MALLOC.
+
+2006-12-12  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
+
+       * trans-expr.c (gfc_conv_substring): Check for empty substring.
+
+2006-12-11  Jan Hubicka  <jh@suse.cz>
+
+       * f95-lang.c (gfc_expand_function): Update for renamed varpool
+       functions.
+
+2006-12-10  Tobias Burnus  <burnus@net-b.de>
+
+       * gfortran.texi: Update Fortran 2003 section.
+
+2006-12-10  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/23994
+       * interface.c (compare_actual_formal): PROTECTED is incompatible
+         with intent(out).
+       * symbol.c (check_conflict): Check for PROTECTED conflicts.
+         (gfc_add_protected): New function.
+         (gfc_copy_attr): Copy PROTECTED attribute.
+       * decl.c (match_attr_spec): Add PROTECTED support.
+         (gfc_match_protected): New function.
+       * dump-parse-tree.c (gfc_show_attr): Add PROTECTED support.
+       * gfortran.h (gfc_symbol): Add protected flag.
+         Add gfc_add_protected prototype.
+       * expr.c (gfc_check_pointer_assign): Add PROTECTED support.
+       * module.c (ab_attribute, attr_bits, mio_symbol_attribute,
+         mio_symbol_attribute): Add PROTECTED support.
+       * resolve.c (resolve_equivalence): Add PROTECTED support.
+       * match.c (gfc_match_assignment,gfc_match_pointer_assignment):
+         Check PROTECTED attribute.
+       * match.h: Add gfc_match_protected prototype.
+       * parse.c (decode_statement): Match PROTECTED statement.
+       * primary.c (match_variable): Add PROTECTED support.
+
+2006-12-09  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/29975
+       PR fortran/30068
+       PR fortran/30096
+       * interface.c (compare_type_rank_if): Reject invalid generic
+       interfaces.
+       (check_interface1): Give a warning for nonreferred to ambiguous
+       interfaces.
+       (check_sym_interfaces): Check whether an ambiguous interface is
+       referred to.  Do not check host associated interfaces since these
+       cannot be ambiguous with the local versions.
+       (check_uop_interface, gfc_check_interfaces): Update call to
+       check_interface1.
+       * symbol.c (gfc_get_sym_tree, gfc_get_sym_tree): Allow adding
+       unambiguous procedures to generic interfaces.
+       * gfortran.h (symbol_attribute): Added use_only and
+       ambiguous_interfaces.
+       * module.c (load_need): Set the use_only flag, if needed.
+       * resolve.c (resolve_fl_procedure): Warn for nonreferred
+       interfaces.
+       * expr.c (find_array_section): Fix initializer array contructor.
+
+2006-12-09  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/29464
+       * module.c (load_generic_interfaces): Add symbols for all the
+       local names of an interface.  Share the interface amongst the
+       symbols.
+       * gfortran.h : Add generic_copy to symbol_attribute.
+       * symbol.c (free_symbol): Only free interface if generic_copy
+       is not set.
+
+2006-12-09  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/29941
+       * resolve.c (resolve_function): Add LEN to the functions not
+       checked for assumed size actual args.
+
+2006-12-08  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/27546
+       * trans-decl.c (gfc_create_module_variable): Allow imported
+       symbols in interface bodies in modules.
+
+2006-12-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/29711
+       * error.c (error_print): Fix handling of printf-style position
+       specifiers of the form "%3$d".
+
+2006-12-05  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/30003
+       * trans-array.c (gfc_trans_create_temp_array): Set the section
+       ends to zero.
+       (gfc_conv_array_transpose): Likewise.
+       (gfc_conv_section_startstride): Declare an expression for end,
+       set it from a the array reference and evaluate it for the info
+       structure. Zero the ends in the ss structure and set end, used
+       in the bounds check, from the info structure.
+       trans.h: Add and end array to the gfc_ss_info structure.
+
+2006-12-05  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/29912
+       * trans-expr.c (gfc_trans_arrayfunc_assign): Return NULL if the
+       lhs and rhs character lengths are not constant and equal for
+       character array valued functions.
+
+2006-12-04  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/29962
+       * expr.c (check_intrinsic_op): Allow noninteger exponents for F2003.
+
 2006-12-04  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/29821