OSDN Git Service

PR fortran/26769
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
index 3cae704..d10a53e 100644 (file)
@@ -1,3 +1,264 @@
+2006-04-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR fortran/26769
+       * iresolve.c (gfc_resolve_reshape): Use reshape_r16 for real(16).
+       (gfc_resolve_transpose): Use transpose_r16 for real(16).
+
+2006-04-21 Paul Thomas <pault@gcc.gnu.org>
+
+       PR fortran/27122
+       * resolve.c (resolve_function): Remove general restriction on auto
+       character length function interfaces.
+       (gfc_resolve_uops): Check restrictions on defined operator
+       procedures.
+       (resolve_types): Call the check for defined operators.
+
+       PR fortran/27113
+       * trans-array.c (gfc_trans_array_constructor_subarray): Remove
+       redundant gfc_todo_error.
+       (get_array_ctor_var_strlen): Remove typo in enum.
+
+2006-04-18  Bernhard Fischer  <aldot@gcc.gnu.org>
+
+       * parse.c (next_free): Use consistent error string between
+       free-form and fixed-form for illegal statement label of zero.
+       (next_fixed): Use consistent warning string between free-form
+       and fixed-form for statement labels for empty statements.
+
+2006-04-18  Steve Ellcey  <sje@cup.hp.com>
+
+       * trans-io.c (gfc_build_io_library_fndecls): Align pad.
+
+2006-04-16  Thomas Koenig  <Thomas.Koenig@online.de>
+
+       PR fortran/26017
+       * trans-array.c(gfc_array_init_size):  Introduce or_expr
+       which is true if the size along any dimension
+       is negative.  Create a temporary variable with base
+       name size.  If or_expr is true, set the temporary to 0,
+       to the normal size otherwise.
+
+2006-04-16  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/26822
+       * intrinsic.c (add_functions): Mark LOGICAL as elemental.
+
+       PR fortran/26787
+       * expr.c (gfc_check_assign): Extend scope of error to include
+       assignments to a procedure in the main program or, from a
+       module or internal procedure that is not that represented by
+       the lhs symbol. Use VARIABLE rather than l-value in message.
+
+       PR fortran/27096
+       * trans-array.c (gfc_trans_deferred_array): If the backend_decl
+       is not a descriptor, dereference and then test and use the type.
+
+       PR fortran/25597
+       * trans-decl.c (gfc_trans_deferred_vars): Check if an array
+       result, is also automatic character length.  If so, process
+       the character length.
+
+       PR fortran/18803
+       PR fortran/25669
+       PR fortran/26834
+       * trans_intrinsic.c (gfc_walk_intrinsic_bound): Set
+       data.info.dimen for bound intrinsics.
+       * trans_array.c (gfc_conv_ss_startstride): Pick out LBOUND and
+       UBOUND intrinsics and supply their shape information to the ss
+       and the loop.
+
+       PR fortran/27124
+       * trans_expr.c (gfc_trans_function_call):  Add a new block, post,
+       in to which all the argument post blocks are put.  Add this block
+       to se->pre after a byref call or to se->post, otherwise.
+
+2006-04-14  Roger Sayle  <roger@eyesopen.com>
+
+       * trans-io.c (set_string): Use fold_build2 and build_int_cst instead
+       of build2 and convert to construct "x < 0" rather than "x <= -1".
+
+2006-04-13  Richard Henderson  <rth@redhat.com>
+
+       * trans-openmp.c (gfc_trans_omp_sections): Adjust for changed
+       number of operands to OMP_SECTIONS.
+
+2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
+
+       * gfortran.texi: Fix typos.  Follow spelling conventions.
+       * resolve.c, trans-expr.c, trans-stmt.c: Fix comment typos.
+       Follow spelling conventions.
+
+2006-04-05  Roger Sayle  <roger@eyesopen.com>
+
+       * dependency.c (get_no_elements): Delete function.
+       (get_deps): Delete function.
+       (transform_sections): Delete function.
+       (gfc_check_section_vs_section): Significant rewrite.
+
+2006-04-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR fortran/25619
+       * trans-array.c (gfc_conv_expr_descriptor): Only dereference
+       character pointer when copying temporary.
+
+       PR fortran/23634
+       * trans-array.c (gfc_conv_expr_descriptor): Properly copy
+       temporary character with non constant size.
+
+2006-04-03  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/26891
+       * trans.h: Prototype for gfc_conv_missing_dummy.
+       * trans-expr (gfc_conv_missing_dummy): New function
+       (gfc_conv_function_call): Call it and tidy up some of the code.
+       * trans-intrinsic (gfc_conv_intrinsic_function_args): The same.
+
+       PR fortran/26976
+       * array.c (gfc_array_dimen_size): If available, return shape[dimen].
+       * resolve.c (resolve_function): If available, use the argument
+       shape for the function expression.
+       * iresolve.c (gfc_resolve_transfer): Set shape[0] = size.
+
+2006-04-02  Erik Edelmann  <eedelman@gcc.gnu.org>
+
+       * trans-array.c (gfc_trans_dealloc_allocated): Take a
+       tree representation of the array to be deallocated as argument
+       instead of its gfc_symbol.
+       (gfc_trans_deferred_array): Update call to
+       gfc_trans_dealloc_allocated.
+       * trans-array.h (gfc_trans_dealloc_allocated): Update
+       prototype.
+       * trans-expr.c (gfc_conv_function_call): Update call to
+       gfc_trans_dealloc_allocated, get indirect reference to dummy
+       arguments.
+
+2006-04-01  Roger Sayle  <roger@eyesopen.com>
+
+       PR fortran/25270
+       * trans-array.c (gfc_trans_allocate_array_storage): In array index
+       calculations use gfc_index_zero_node and gfc_index_one_node instead
+       of integer_zero_node and integer_one_node respectively.
+       (gfc_conv_array_transpose): Likewise.
+       (gfc_conv_ss_startstride): Likewise.
+       (gfc_trans_dummy_array_bias): Likewise.
+
+2006-04-01  Roger Sayle  <roger@eyesopen.com>
+
+       * dependency.c (gfc_is_inside_range): Delete.
+       (gfc_check_element_vs_section): Significant rewrite.
+
+2006-04-01  Roger Sayle  <roger@eyesopen.com>
+
+       * dependency.c (gfc_dep_compare_expr): Strip parentheses and unary
+       plus operators when comparing expressions.  Handle comparisons of
+       the form "X+C vs. X", "X vs. X+C", "X-C vs. X" and "X vs. X-C" where
+       C is an integer constant.  Handle comparisons of the form "P+Q vs.
+       R+S" and "P-Q vs. R-S".  Handle comparisons of integral extensions
+       specially (increasing functions) so extend(A) > extend(B), when A>B.
+       (gfc_check_element_vs_element): Move test later, so that we ignore
+       the fact that "A < B" or "A > B" when A or B contains a forall index.
+
+2006-03-31  Asher Langton  <langton2@llnl.gov>
+
+       PR fortran/25358
+       * expr.c (gfc_check_assign): Allow cray pointee to be assumes-size.
+       
+2006-03-30  Paul Thomas <paulthomas2@wanadoo.fr>
+            Bud Davis  <bdavis9659@sbcglobal.net>
+
+       PR 21130
+       * module.c (load_needed): Traverse entire tree before returning.
+
+2006-03-30  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/22375
+       * trans.c (gfc_trans_runtime_check): Promote the arguments of
+       __builtin_expect to the correct types, and the result back to
+       boolean_type_node.
+
+2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
+
+       * Make-lang.in: Rename docdir to gcc_docdir.
+
+2006-03-28  Steven G. Kargl  <kargls@comcast.net>
+
+       * intrinsic.texi: s/floor/float in previous commit.
+
+2006-03-28 Paul Thomas <pault@gcc.gnu.org>
+
+       PR fortran/26779
+       * resolve.c (resolve_fl_procedure): Do not check the access of
+       derived types for internal procedures.
+
+2006-03-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * io.c (check_io_constraints): Don't look at
+       dt->advance->value.charater.string, unless it is a CHARACTER
+       constant.
+
+       * f95-lang.c (gfc_get_alias_set): New function.
+       (LANG_HOOKS_GET_ALIAS_SET): Define.
+
+2006-03-25  Steven G. Kargl  <kargls@comcast.net>
+
+       PR fortran/26816
+       * intrinsic.c (add_functions): Allow FLOAT to accept all integer kinds.
+       * intrinsic.texi: Document FLOAT.
+
+2006-03-25  Thomas Koenig  <Thomas.Koenig@online.de>
+
+       PR fortran/26769
+       * iresolve.c (gfc_resolve_reshape):  Remove doubling of
+       kind for complex. For real(kind=10), call reshape_r10.
+       (gfc_resolve_transpose):  For real(kind=10), call
+       transpose_r10.
+
+2006-03-25  Roger Sayle  <roger@eyesopen.com>
+
+       * dependency.c (gfc_check_dependency): Improve handling of pointers;
+       Two variables of different types can't have a dependency, and two
+       variables with the same symbol are equal, even if pointers.
+
+2006-03-24  Roger Sayle  <roger@eyesopen.com>
+
+       * gfortran.h (gfc_symbol): Add a new "forall_index" bit field.
+       * match.c (match_forall_iterator): Set forall_index field on
+       the iteration variable's symbol.
+       * dependency.c (contains_forall_index_p): New function to
+       traverse a gfc_expr to check whether it contains a variable
+       with forall_index set in it's symbol.
+       (gfc_check_element_vs_element): Return GFC_DEP_EQUAL for scalar
+       constant expressions that don't variables used as FORALL indices.
+
+2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR driver/22600
+       * error.c (gfc_fatal_error): Return ICE_EXIT_CODE instead of 4.
+
+2006-03-22  Thomas Koenig  <Thomas.Koenig@online.de>
+
+       PR fortran/19303
+       * gfortran.h (gfc_option_t):  Add record_marker.
+       * lang.opt:  Add -frecord-marker=4 and -frecord-marker=8.
+       * trans-decl.c:  Add gfor_fndecl_set_record_marker.
+       (gfc_build_builtin_function_decls): Set
+       gfor_fndecl_set_record_marker.
+       (gfc_generate_function_code):  If we are in the main program
+       and -frecord-marker was provided, call set_record_marker.
+       * options.c (gfc_handle_option):  Add handling for
+       -frecord-marker=4 and -frecord-marker=8.
+       * invoke.texi:  Document -frecord-marker.
+
+2006-03-22  Paul Thomas  <pault@gcc.gnu.org>
+
+       PR fortran/17298
+       * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): New
+       function to implement array valued TRANSFER intrinsic.
+       (gfc_conv_intrinsic_function): Call the new function if TRANSFER
+       and non-null se->ss.
+       (gfc_walk_intrinsic_function): Treat TRANSFER as one of the
+       special cases by calling gfc_walk_intrinsic_libfunc directly.
+
 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
 
        * options.c (gfc_init_options): Initialize