X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Ffortran%2FChangeLog;h=d669f5aedf6c52e9051d6f38bb40195c2d6a1fb2;hp=a552beade86aa75b32384600f2a5a3432fd556c2;hb=b6f42c2cc3f50fa7c7982585574b9bee5536035e;hpb=7a516fb346b6fccae85af8e3068068bfead8e845 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index a552beade86..d669f5aedf6 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,359 @@ +2011-11-25 Mikael Morin + + PR fortran/51250 + PR fortran/43829 + * trans-array.c (gfc_trans_create_temp_array): Get dimension from + the right gfc_ss struct. + +2011-11-25 Tobias Burnus + + PR fortran/50408 + * trans-decl.c (gfc_get_module_backend_decl): Also copy + ts.u.derived from the gsym if the ts.type is BT_CLASS. + (gfc_get_extern_function_decl): Copy also the backend_decl + for the symbol's ts.u.{derived,cl} from the gsym. + * trans-types.c (gfc_copy_dt_decls_ifequal): Directly + return if "from" and "to" are the same. + +2011-11-25 Tobias Burnus + + PR fortran/51302 + * trans-stmt.c (gfc_trans_simple_do): Add a fold_convert. + +2011-11-24 Tobias Burnus + + PR fortran/51218 + * resolve.c (pure_subroutine): If called subroutine is + impure, unset implicit_pure. + (resolve_function): Move impure check to simplify code. + +2011-11-19 Tobias Burnus + + PR fortran/51207 + * class.c (gfc_find_derived_vtab): Mark __def_init as PARAMETER + and hence as TREE_READONLY; add subroutine attribute to + __copy_ procedure. + + PR fortran/50640 + * trans.h (GFC_DECL_PUSH_TOPLEVEL): New DECL_LANG_FLAG_7. + * trans-decl.c (gfc_get_symbol_decl): Mark __def_init and vtab as + GFC_DECL_PUSH_TOPLEVEL. + (gfc_generate_function_code): If GFC_DECL_PUSH_TOPLEVEL, push it there. + (build_function_decl): Push __copy_ procedure to the toplevel. + +2011-11-16 Tobias Burnus + + PR fortran/39427 + PR fortran/37829 + * decl.c (match_data_constant, match_data_constant, variable_decl, + gfc_match_decl_type_spec, access_attr_decl, + check_extended_derived_type, gfc_match_derived_decl, + gfc_match_derived_decl, gfc_match_derived_decl) Modified to deal + with DT constructors. + * gfortran.h (gfc_find_dt_in_generic, + gfc_convert_to_structure_constructor): New function prototypes. + * interface.c (check_interface0, check_interface1, + gfc_search_interface): Ignore DT constructors in generic list. + * match.h (gfc_match_structure_constructor): Update prototype. + * match.c (match_derived_type_spec): Ensure that one uses the DT + not the generic function. + * module.c (MOD_VERSION): Bump. + (dt_lower_string, dt_upper_string): New functions. + (find_use_name_n, find_use_operator, compare_true_names, + find_true_name, add_true_name, fix_mio_expr, load_needed, + read_module, write_dt_extensions, write_symbol): Changes to deal with + different symtree vs. sym names. + (create_derived_type): Create also generic procedure. + * parse.c (gfc_fixup_sibling_symbols): Don't regard DT and generic + function as the same. + * primary.c (gfc_convert_to_structure_constructor): New function. + (gfc_match_structure_constructor): Restructured; calls + gfc_convert_to_structure_constructor. + (build_actual_constructor, gfc_match_rvalue): Update for DT generic + functions. + * resolve.c (resolve_formal_arglist, resolve_structure_cons, + is_illegal_recursion, resolve_generic_f, resolve_variable, + resolve_fl_variable_derived, resolve_fl_derived0, + resolve_symbol): Handle DT and DT generic constructors. + * symbol.c (gfc_use_derived, gfc_undo_symbols, + gen_special_c_interop_ptr, gen_cptr_param, + generate_isocbinding_symbol, gfc_get_derived_super_type): Handle + derived-types, which are hidden in the generic type. + (gfc_find_dt_in_generic): New function + * trans-array.c (gfc_conv_array_initializer): Replace FL_PARAMETER + expr by actual value. + * trans-decl.c (gfc_get_module_backend_decl, gfc_trans_use_stmts): + Ensure that we use the DT and not the generic function. + * trans-types.c (gfc_get_derived_type): Ensure that we use the DT + and not the generic procedure. + +2011-11-14 Tobias Burnus + + PR fortran/51073 + * trans-decl.c (generate_coarray_sym_init): Handle zero-sized arrays. + +2011-11-09 Tobias Burnus + + * symbol.c (clear_sym_mark, traverse_ns): Remove functions. + (count_st_nodes, do_traverse_symtree, fill_st_vector): New functions. + (gfc_traverse_symtree, gfc_traverse_ns): Call do_traverse_symtree. + +2011-11-09 Janne Blomqvist + + PR libfortran/50016 + * gfortran.texi (Data consistency and durability): New section. + +2011-11-09 Francois-Xavier Coudert + + PR fortran/50540 + * resolve.c (resolve_forall_iterators): Transform internal errors + to normal errors. + +2011-11-09 Janus Weil + + PR fortran/50960 + * class.c (gfc_find_derived_vtab): Make the vtab symbols FL_PARAMETER. + * expr.c (gfc_simplify_expr): Prevent vtabs from being replaced with + their value. + * resolve.c (resolve_values): Use-associated symbols do not need to + be resolved again. + (resolve_fl_parameter): Make sure the symbol has a value. + +2011-11-09 Francois-Xavier Coudert + + PR fortran/38718 + * intrinsic.c (add_functions): Allow dreal simplification. + * intrinsic.h (gfc_simplify_dreal): New prototype. + * simplify.c (gfc_simplify_dreal): New function. + +2011-11-09 Francois-Xavier Coudert + + PR fortran/21881 + * trans-types.c (gfc_get_dtype): Issue a fatal error instead of + an internal error. + +2011-11-08 Francois-Xavier Coudert + + PR fortran/50404 + * io.c (gfc_resolve_close): CLOSE requires a UNIT. + +2011-11-08 Francois-Xavier Coudert + + PR fortran/50409 + * expr.c (gfc_simplify_expr): Substrings can't have negative + length. + +2011-11-08 Francois-Xavier Coudert + + PR fortran/50334 + * invoke.texi (-finit-*): Document interaction with + -Wuninitialized. + +2011-11-07 François-Xavier Coudert + + PR libfortran/49188 + PR libfortran/49336 + * invoke.texi: Fix documentation of fsign-zero option. Remove + contractions. + * intrinsic.texi: Fix ATAN2 documentation for signed zeros. + Remove contractions. + * gfortran.texi: Remove contractions. + +2011-11-07 Janus Weil + + PR fortran/50919 + * class.c (add_proc_comp): Don't add non-overridable procedures to the + vtable. + * resolve.c (resolve_typebound_function,resolve_typebound_subroutine): + Don't generate a dynamic _vptr call for non-overridable procedures. + +2011-11-07 Janne Blomqvist + + * intrinsic.texi (MCLOCK, MCLOCK8, TIME, TIME8): Functions clock + and time are part of the C standard library. + +2011-11-06 Janus Weil + + * gfortran.h (gfc_extend_expr): Modified prototype. + * interface.c (gfc_extend_expr): Return 'match' instead of 'gfc_try'. + Remove argument 'real_error'. + * resolve.c (resolve_operator): Modified call to 'gfc_extend_expr'. + +2011-11-06 Andrew MacLeod + Aldy Hernandez + + Merged from cxx-mem-model. + + * types.def: (BT_SIZE, BT_CONST_VOLATILE_PTR, BT_FN_VOID_INT, + BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT, + BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR, + BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT, + BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT, + BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT, + BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT): New types. + +2011-11-04 Mikael Morin + + PR fortran/43829 + * trans-array.c (gfc_conv_expr_descriptor): Accept the inline intrinsic + case in the assertion. + * trans-intrinsic (enter_nested_loop): New function. + (gfc_conv_intrinsic_arith): Support non-scalar cases. + (nest_loop_dimension, walk_inline_intrinsic_arith): New functions. + (walk_inline_intrinsic_function): Handle sum and product. + (gfc_inline_intrinsic_function_p): Ditto. + * trans.h (gfc_get_loopinfo): New macro. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic_arith): Introduce parent + expression variable. Use it. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic.c): Introduce current loop + pointer. Use it. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic_arith): Small argument handling + cleanup. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic_arith): Update conditions. + +2011-11-04 Mikael Morin + + * frontend-passes.c (cfe_register_funcs): Return early in the case + of an inline intrinsic function. + (optimize_binop_array_assignment): Skip optimization in the case of + an inline intrinsic function. + +2011-11-04 Mikael Morin + + * array.c (match_subscript): Skip whitespaces before setting locus. + * matchexp.c (match_level_1): Ditto. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Set loop's + temporary rank to the loop rank. Mark ss chains for multiple loop + if necessary. Use gfc_trans_scalarized_loop_boundary to end one loop + and start another. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set loop's + temporary rank to the loop rank. Mark ss chains for multiple loop + if necessary. Use gfc_trans_scalarized_loop_boundary to end one loop + and start another. + +2011-11-04 Mikael Morin + + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Don't calculate + offset twice in generated code. + +2011-11-04 Mikael Morin + + * trans-expr.c (gfc_conv_procedure_call): Handle temporaries for + arguments to elemental calls. + * trans-stmt.c (replace_ss): New function. + (gfc_conv_elemental_dependencies): Remove temporary loop handling. + Create a new ss for the temporary and replace the original one with it. + Remove fake array references. Recalculate all offsets. + +2011-11-04 Mikael Morin + + * trans-array.h (gfc_free_ss, gfc_set_delta): New prototypes. + * trans-array.c (gfc_free_ss): Remove forward declaration. + Make non-static. + (set_delta, gfc_set_delta): Remove forward declaration. + Make non-static and rename the former to the later. Update uses. + +2011-11-03 Mikael Morin + + * trans.h (gfc_inline_intrinsic_function_p): Move prototype... + * gfortran.h (gfc_inline_intrinsic_function_p): ... here. + * dependency.c (gfc_check_argument_var_dependency): Check dependencies + of inline intrinsics' arguments. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_preloop_setup): New pointers to outer + dimension's ss and loop. Use them. + +2011-11-03 Mikael Morin + + * trans-array.c (outermost_loop): New function. + (gfc_trans_array_constructor, gfc_set_vector_loop_bounds, + gfc_add_loop_ss_code): Put generated code out of the outermost loop. + +2011-11-03 Mikael Morin + + * trans-array.c (constant_array_constructor_loop_size): + Handle multiple loops. + +2011-11-03 Mikael Morin + + * trans-array.c (get_rank, get_loop_upper_bound_for_array): + New functions. + (gfc_trans_array_constructor): Handle multiple loops. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_loopinfo): New field parent. + * trans-array.c (gfc_cleanup_loop): Free nested loops. + (gfc_add_ss_to_loop): Set nested_loop's parent loop. + (gfc_trans_array_constructor): Update assertion. + (gfc_conv_loop_setup): Ditto. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_add_loop_ss_code): Skip non-nestedmost ss. + Call recursively gfc_add_loop_ss_code for all the nested loops. + (gfc_conv_ss_startstride): Only get the descriptor for the outermost + ss. Call recursively gfc_conv_ss_startstride for all the nested loops. + (set_loop_bounds): Call recursively for all the nested loops. + (set_delta): Ditto. + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_loopinfo): New fields nested and next. + * trans-array.c (gfc_add_ss_to_loop): Update list of nested list if + ss has non-null nested_ss field. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_create_temp_array): Loop over the parents. + +2011-11-03 Mikael Morin + + * trans-array.c (get_array_ref_dim, get_scalarizer_dim_for_array_dim): + Rename the former to the latter and loop over the parents. + (innermost_ss): New function. + (get_array_ref_dim_for_loop_dim): New function. + (gfc_trans_create_temp_array): Use get_scalarizer_dim_for_array_dim. + (set_loop_bounds): Use get_array_dim_for_loop_dim). + +2011-11-03 Mikael Morin + + * trans.h (struct gfc_ss): New field nested_ss. + * trans-expr.c (gfc_advance_se_ss_chain): Update assertion. + +2011-11-03 Mikael Morin + + * trans-array.c (set_vector_loop_bounds): Loop over the parents. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_trans_array_constructor): Loop over the parents. + +2011-11-03 Mikael Morin + + * trans-array.c (gfc_set_loop_bounds_from_array_spec): Loop over the + parents. + 2011-11-03 Mikael Morin * trans.h (struct gfc_ss): New field parent. @@ -382,7 +738,7 @@ 2011-10-23 Steven G. Kargl * simplify.c (simplify_transformation_to_array): Fix memory leak. - + 2011-10-20 Steven G. Kargl PR fortran/50821