X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Ffortran%2FChangeLog;h=e5245db20f7d1014805679ee096dfe1f40a3ee76;hp=013e7bab5f59651941210a7652bfd76f278c18c7;hb=06a4a0dd0feb22ae48e4272ca3700dd83a5dd2f9;hpb=c4fe50b1e02747e8c5410ba6f7a81579a64f9100 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 013e7bab5f5..e5245db20f7 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,462 @@ +2006-03-25 Steven G. Kargl + + PR fortran/26816 + * intrinsic.c (add_functions): Allow FLOAT to accept all integer kinds. + * intrinsic.texi: Document FLOAT. + +2006-03-25 Thomas Koenig + + 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 + + * 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 + + * 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 + + PR driver/22600 + * error.c (gfc_fatal_error): Return ICE_EXIT_CODE instead of 4. + +2006-03-22 Thomas Koenig + + 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 + + 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 + + * options.c (gfc_init_options): Initialize + flag_argument_noalias to 3. + +2006-03-20 Thomas Koenig + + PR fortran/20935 + * iresolve.c (gfc_resolve_maxloc): If mask is scalar, + prefix the function name with an "s". If the mask is scalar + or if its kind is smaller than gfc_default_logical_kind, + coerce it to default kind. + (gfc_resolve_maxval): Likewise. + (gfc_resolve_minloc): Likewise. + (gfc_resolve_minval): Likewise. + (gfc_resolve_product): Likewise. + (gfc_resolve_sum): Likewise. + +2006-03-19 Paul Thomas + + PR fortran/26741 + *expr.c (external_spec_function): Permit elemental functions. + + PR fortran/26716 + *interface.c (compare_actual_formal): Detect call for procedure + usage and require rank checking, in this case, for assumed shape + and deferred shape arrays. + (gfc_procedure_use): Revert to pre-PR25070 call to + compare_actual_formal that does not require rank checking.. + +2006-03-16 Roger Sayle + + * gfortran.h (gfc_equiv_info): Add length field. + * trans-common.c (copy_equiv_list_to_ns): Set the length field. + * dependency.c (gfc_are_equivalenced_arrays): Use both the offset + and length fields to determine whether the two equivalenced symbols + overlap in memory. + +2006-03-14 Jerry DeLisle + + PR fortran/19101 + * gfortran.h: Add warn_ampersand. + * invoke.texi: Add documentation for new option. + * lang.opt: Add Wampersand. + * options.c (gfc_init_options): Initialize warn_ampersand. + (gfc_post_options): Set the warn if pedantic. + (set_Wall): Set warn_ampersand. + (gfc_handle_option: Add Wampersand for itself, -std=f95, and -std=f2003. + * scanner.c (gfc_next_char_literal): Add test for missing '&' in + continued character constant and give warning if missing. + +2006-03-14 Steven G. Kargl + + PR 18537 + * gfortran.h: Wrap Copyright line. + (gfc_option_t): add warn_tabs member. + * lang.opt: Update Coyright year. Add the Wtabs. + * invoke.texi: Document -Wtabs. + * scanner.c (gfc_gobble_whitespace): Use warn_tabs. Add linenum to + suppress multiple warnings. + (load_line): Use warn_tabs. Add linenum, current_line, seen_comment + to suppress multiple warnings. + * options.c (gfc_init_options): Initialize warn_tabs. + (set_Wall): set warn_tabs for -Wall. + (gfc_post_options): Adjust flag_tabs depending on -pedantic. + (gfc_handle_option): Process command-line option -W[no-]tabs + +2006-03-13 Paul Thomas + + PR fortran/25378 + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set the initial position to zero and + modify the condition for updating it, to implement the F2003 requirement for all(mask) + is false. + +2006-03-13 Jakub Jelinek + + * trans-openmp.c (gfc_trans_omp_variable): Handle references + to parent result. + * trans-expr.c (gfc_conv_variable): Remove useless setting + of parent_flag, formatting. + + * trans-decl.c (gfc_get_fake_result_decl): Re-add setting of + GFC_DECL_RESULT flag. + +2003-03-11 Roger Sayle + + * dependency.c (gfc_dep_compare_expr) : Allow unary and + binary operators to compare equal if their operands are equal. + : Allow "constant" intrinsic conversion functions + to compare equal, if their operands are equal. + +2006-03-11 Erik Edelmann + + * symbol.c (check_conflict): Allow allocatable function results, + except for elemental functions. + * trans-array.c (gfc_trans_allocate_temp_array): Rename to ... + (gfc_trans_create_temp_array): ... this, and add new argument + callee_alloc. + (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call + to gfc_trans_allocate_temp_array. + * trans-array.h (gfc_trans_allocate_temp_array): Update prototype. + * trans-expr.c (gfc_conv_function_call): Use new arg of + gfc_trans_create_temp_array avoid pre-allocation of temporary + result variables of pointer AND allocatable functions. + (gfc_trans_arrayfunc_assign): Return NULL for allocatable + functions. + * resolve.c (resolve_symbol): Copy value of 'allocatable' attribute + from sym->result to sym. + +2006-03-09 Erik Edelmann + + * trans-expr.c (gfc_add_interface_mapping): Copy 'allocatable' + attribute from sym to new_sym. Call build_fold_indirect_ref() + for allocatable arguments. + +2006-03-09 Paul Thomas + + PR fortran/26257 + * trans-array.c (gfc_conv_expr_descriptor): Exclude calculation of + the offset and data when se->data_not_needed is set. + * trans.h: Include the data_not_need bit in gfc_se. + * trans-intrinsic.c (gfc_conv_intrinsic_size): Set it for SIZE. + +2006-03-06 Paul Thomas + Erik Edelmann + + * trans-array.c (gfc_trans_dealloc_allocated): New function. + (gfc_trans_deferred_array): Use it, instead of inline code. + * trans-array.h: Prototype for gfc_trans_dealloc_allocated(). + * trans-expr.c (gfc_conv_function_call): Deallocate allocated + ALLOCATABLE, INTENT(OUT) arguments upon procedure entry. + +2006-03-06 Paul Thomas + + PR fortran/26107 + * resolve.c (resolve_function): Add name after test for pureness. + + PR fortran/19546 + * trans-expr.c (gfc_conv_variable): Detect reference to parent result, + store current_function_decl, replace with parent, whilst calls are + made to gfc_get_fake_result_decl, and restore afterwards. Signal this + to gfc_get_fake_result_decl with a new argument, parent_flag. + * trans-stmt.c (gfc_trans_return): gfc_get_fake_result_decl 2nd arg + is set to zero. + * trans.h: Add parent_flag to gfc_get_fake_result_decl prototype. + * trans-decl.c (gfc_get_fake_result_decl): On parent_flag, being set, + add decl to parent function. Replace refs to current_fake_result_decl + with refs to this_result_decl. + (gfc_generate_function_code): Null parent_fake_result_decl before the + translation of code for contained procedures. Set parent_flag to zero + in call to gfc_get_fake_result_decl. + * trans-intrinsic.c (gfc_conv_intrinsic_len): The same. + +2006-03-05 Steven G. Kargl + + * simplify.c (gfc_simplify_verify): Fix return when SET=''. + +2006-03-05 Erik Edelmann + + PR fortran/16136 + * symbol.c (conf_std): New macro. + (check_conflict): Use it to allow ALLOCATABLE dummy + arguments for F2003. + * trans-expr.c (gfc_conv_function_call): Pass the + address of the array descriptor when dummy argument is + ALLOCATABLE. + * interface.c (compare_allocatable): New function. + (compare_actual_formal): Use it. + * resolve.c (resolve_deallocate_expr, + resolve_allocate_expr): Check that INTENT(IN) variables + aren't (de)allocated. + * gfortran.texi (Fortran 2003 status): List ALLOCATABLE + dummy arguments as supported. + +2006-03-03 Roger Sayle + + * dependency.c (gfc_check_element_vs_element): Revert last change. + +2006-03-03 Roger Sayle + + * dependency.c (gfc_check_element_vs_element): Consider two + unordered scalar subscripts as (potentially) equal. + +2006-03-03 Roger Sayle + + * dependency.c (gfc_check_dependency): Call gfc_dep_resolver to + check whether two array references have a dependency. + (gfc_check_element_vs_element): Assume lref and rref must be + REF_ARRAYs. If gfc_dep_compare_expr returns -2, assume these + references could potentially overlap. + (gfc_dep_resolver): Whitespace and comment tweaks. Assume a + dependency if the references have different depths. Rewrite + final term to clarrify we only have a dependency for overlaps. + +2006-03-03 Thomas Koenig + + PR fortran/25031 + * trans-array.h: Adjust gfc_array_allocate prototype. + * trans-array.c (gfc_array_allocate): Change type of + gfc_array_allocatate to bool. Function returns true if + it operates on an array. Change second argument to gfc_expr. + Find last reference in chain. + If the function operates on an allocatable array, emit call to + allocate_array() or allocate64_array(). + * trans-stmt.c (gfc_trans_allocate): Code to follow to last + reference has been moved to gfc_array_allocate. + * trans.h: Add declaration for gfor_fndecl_allocate_array and + gfor_fndecl_allocate64_array. + (gfc_build_builtin_function_decls): Add gfor_fndecl_allocate_array + and gfor_fndecl_allocate64_array. + +2006-03-01 Roger Sayle + + * trans-stmt.c (generate_loop_for_temp_to_lhs): Add an additional + INVERT argument to invert the sense of the WHEREMASK argument. + Remove unneeded code to AND together a list of masks. + (generate_loop_for_rhs_to_temp): Likewise. + (gfc_trans_assign_need_temp): Likewise. + (gfc_trans_forall_1): Likewise. + (gfc_evaluate_where_mask): Likewise, add a new INVERT argument + to specify the sense of the MASK argument. + (gfc_trans_where_assign): Likewise. + (gfc_trans_where_2): Likewise. Restructure code that decides + whether we need to allocate zero, one or two temporary masks. + If this is a top-level WHERE (i.e. the incoming MASK is NULL), + we only need to allocate at most one temporary mask, and can + invert it's sense to provide the complementary pending execution + mask. Only calculate the size of the required temporary arrays + if we need any. + (gfc_trans_where): Update call to gfc_trans_where_2. + +2006-03-01 Paul Thomas + + * iresolve.c (gfc_resolve_dot_product): Remove any difference in + treatment of logical types. + * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): New function. + + PR fortran/26393 + * trans-decl.c (gfc_get_symbol_decl): Extend condition that symbols + must be referenced to include unreferenced symbols in an interface + body. + + PR fortran/20938 + * trans-array.c (gfc_conv_resolve_dependencies): Add call to + gfc_are_equivalenced_arrays. + * symbol.c (gfc_free_equiv_infos, gfc_free_equiv_lists): New + functions. (gfc_free_namespace): Call them. + * trans-common.c (copy_equiv_list_to_ns): New function. + (add_equivalences): Call it. + * gfortran.h: Add equiv_lists to gfc_namespace and define + gfc_equiv_list and gfc_equiv_info. + * dependency.c (gfc_are_equivalenced_arrays): New function. + (gfc_check_dependency): Call it. + * dependency.h: Prototype for gfc_are_equivalenced_arrays. + +2006-03-01 Roger Sayle + + * dependency.c (gfc_is_same_range): Compare the stride, lower and + upper bounds when testing array reference ranges for equality. + (gfc_check_dependency): Fix indentation whitespace. + (gfc_check_element_vs_element): Likewise. + (gfc_dep_resolver): Likewise. + +2006-02-28 Thomas Koenig + + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): + If the mask expression exists and has rank 0, enclose the + generated loop in an "if (mask)". Put the default + initialization into the else branch. + +2006-02-25 Thomas Koenig + + PR fortran/23092 + * trans-intrinsic.c (gfc_conv_intrinsic_arith): If the + mask expression exists and has rank 0, enclose the generated + loop in an "if (mask)". + * (gfc_conv_intrinsic_minmaxloc): Likewise. + +2006-02-24 Paul Thomas + + PR fortran/26409 + * resolve.c (resolve_contained_functions, resolve_types, + gfc_resolve): Revert patch of 2006-02-19. + +2006-02-24 Paul Thomas + + PR fortran/24519 + * dependency.c (gfc_is_same_range): Correct typo. + (gfc_check_section_vs_section): Call gfc_is_same_range. + + PR fortran/25395 + * trans-common.c (add_equivalences): Add a new flag that is set when + an equivalence is seen that prevents more from being reset until the + start of a new traversal of the list, thus ensuring completion of + all the equivalences. + +2006-02-23 Erik Edelmann + + * module.c (read_module): Remove redundant code lines. + +2006-02-20 Rafael Ávila de Espíndola + * Make-lang.in (FORTRAN): Remove + (.PHONY): Remove F95 and f95. Add fortran + +2006-02-20 Roger Sayle + + * trans-stmt.c (gfc_trans_where_2): Avoid updating unused current + execution mask for empty WHERE/ELSEWHERE clauses. Don't allocate + temporary mask arrays if they won't be used. + +2006-02-20 Roger Sayle + + * trans-stmt.c (gfc_trans_where_assign): Remove code to handle + traversing a linked list of MASKs. The MASK is now always a + single element requiring no ANDing during the assignment. + +2006-02-19 Thomas Koenig + + * gfortran.texi: Document environment variables which + influence runtime behavior. + +2006-02-19 H.J. Lu + + * resolve.c (resolve_contained_functions): Call resolve_entries + first. + (resolve_types): Remove calls to resolve_entries and + resolve_contained_functions. + (gfc_resolve): Call resolve_contained_functions. + +2006-02-19 Erik Edelmann + + PR fortran/26201 + * intrinsic.c (gfc_convert_type_warn): Call + gfc_intrinsic_symbol() on the newly created symbol. + +2006-02-19 Paul Thomas + + PR fortran/25054 + * resolve.c (is_non_constant_shape_array): New function. + (resolve_fl_variable): Remove code for the new function and call it. + (resolve_fl_namelist): New function. Add test for namelist array + with non-constant shape, using is_non_constant_shape_array. + (resolve_symbol): Remove code for resolve_fl_namelist and call it. + + PR fortran/25089 + * match.c (match_namelist): Increment the refs field of an accepted + namelist object symbol. + * resolve.c (resolve_fl_namelist): Test namelist objects for a conflict + with contained or module procedures. + +2006-02-18 Roger Sayle + + * trans-stmt.c (struct temporary_list): Delete. + (gfc_trans_where_2): Major reorganization. Remove no longer needed + TEMP argument. Allocate and deallocate the control mask and + pending control mask locally. + (gfc_trans_forall_1): Delete TEMP local variable, and update + call to gfc_trans_where_2. No need to deallocate arrays after. + (gfc_evaluate_where_mask): Major reorganization. Change return + type to void. Pass in parent execution mask, MASK, and two + already allocated mask arrays CMASK and PMASK. On return + CMASK := MASK & COND, PMASK := MASK & !COND. MASK, CMASK and + CMASK may all be NULL, or refer to the same temporary arrays. + (gfc_trans_where): Update call to gfc_trans_where_2. We no + longer need a TEMP variable or to deallocate temporary arrays + allocated by gfc_trans_where_2. + +2006-02-18 Danny Smith + + * gfortran.h (gfc_add_attribute): Change uint to unsigned int. + * symbol.c (gfc_add_attribute): Likewise for definition. + * resolve.c (resolve_global_procedure): Likewise for variable 'type'. + +2006-02-17 Richard Sandiford + + * trans-common.c: Include rtl.h earlier. + * trans-decl.c: Likewise. + +2006-02-16 Jakub Jelinek + + PR fortran/26224 + * parse.c (parse_omp_do, parse_omp_structured_block): Call + gfc_commit_symbols and gfc_warning_check. + + * openmp.c (resolve_omp_clauses): Add a dummy case label to workaround + PR middle-end/26316. + +2006-02-16 Paul Thomas + + PR fortran/24557 + * trans-expr.c (gfc_add_interface_mapping): Use the actual argument + for character(*) arrays, rather than casting to the type and kind + parameters of the formal argument. + +2006-02-15 Toon Moene + + PR fortran/26054 + * options.c: Do not warn for Fortran 2003 features by default. + 2006-02-15 Tobias Schlüter * check.c: Update copyright years. @@ -521,7 +980,7 @@ * trans-decl.c (gfc_generate_function_code): Add new argument, pedantic, to set_std call. -2005-02-06 Thomas Koenig +2006-02-06 Thomas Koenig PR libfortran/23815 * gfortran.texi: Document the GFORTRAN_CONVERT_UNIT environment @@ -683,7 +1142,7 @@ for checking arguments array and mask. (check_reduction): Likewise. -2005-01-30 Erik Edelmann +2006-01-30 Erik Edelmann PR fortran/24266 * trans-io.c (set_internal_unit): Check the rank of the @@ -712,7 +1171,7 @@ * gfortran.h: Add prototype for gfc_dep_compare_expr. * dependency.h: Remove prototype for gfc_dep_compare_expr. -2005-01-27 Paul Thomas +2006-01-27 Paul Thomas PR fortran/25964 * resolve.c (resolve_function): Add GFC_ISYM_LOC to the list of @@ -740,12 +1199,12 @@ * lang-specs.h: Pass -fpreprocessed to f951 if preprocessing sources. -2005-01-27 Erik Edelmann +2006-01-27 Erik Edelmann * symbol.c (free_old_symbol): Fix confusing comment, and add code to free old_symbol->formal. -2005-01-26 Paul Thomas +2006-01-26 Paul Thomas PR fortran/25964 * resolve.c (resolve_function): Exclude statement functions from @@ -777,7 +1236,7 @@ temporary from "parm" to "ifm" to avoid clash with temp coming from trans-array.c. -2005-01-25 Erik Edelmann +2006-01-25 Erik Edelmann PR fortran/25716 * symbol.c (free_old_symbol): New function. @@ -792,7 +1251,7 @@ * resolve.c (gfc_resolve_index): Make sure typespec is properly initialized. -2005-01-23 Paul Thomas +2006-01-23 Paul Thomas PR fortran/25901 * decl.c (get_proc_name): Replace subroutine and function attributes @@ -811,7 +1270,7 @@ * gfortranspec.c (lang_specific_driver): Update copyright notice date. -2005-01-21 Paul Thomas +2006-01-21 Paul Thomas PR fortran/25124 PR fortran/25625 @@ -964,7 +1423,7 @@ * scanner.c (load_line): use maxlen to determine the line-length used for padding lines in fixed form. -2005-01-11 Paul Thomas +2006-01-11 Paul Thomas PR fortran/25730 * trans-types.c (copy_dt_decls_ifequal): Copy backend decl for @@ -1002,13 +1461,13 @@ (gfc_simplify_ichar): Get the result from unsinged char and in the range 0 to UCHAR_MAX instead of CHAR_MIN to CHAR_MAX. -2005-01-08 Erik Edelmann +2006-01-08 Erik Edelmann PR fortran/25093 * resolve.c (resolve_fntype): Check that PUBLIC functions aren't of PRIVATE type. -2005-01-07 Tobias Schl"uter +2006-01-07 Tobias Schl"uter * decl.c (gfc_match_function_decl): Correctly error out in case of omitted function argument list.