X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Ffortran%2FChangeLog;h=fcae78c0eb5bb5d1ee267e12ab3cd57de98fcd58;hp=22828efefdc383659c4c68ee1c1c752bacdec56b;hb=4893a4cb839544ce7151f3d40e7d66f3522b2995;hpb=009d27e9a65f49db469abd145ddcd55be5484826 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 22828efefdc..fcae78c0eb5 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,454 @@ +2012-06-01 Tobias Burnus + + PR fortran/53521 + * trans.c (gfc_deallocate_scalar_with_status): Properly + handle the case size == 0. + +2012-05-23 Tobias Burnus + + PR fortran/53389 + * trans-array.c (gfc_add_loop_ss_code): Don't evaluate expression, if + ss->is_alloc_lhs is set. + +2012-05-07 Tobias Burnus + + Backport from mainline: + 2012-05-07 Tobias Burnus + + PR fortran/53255 + * resolve.c (resolve_typebound_static): Fix handling + of overridden specific to generic operator. + +2012-05-05 Tobias Burnus + + Backport from mainline: + 2012-05-04 Tobias Burnus + + PR fortran/53111 + * resolve.c (resolve_fl_derived): Fix -std=f95 + diagnostic for generic vs. DT names. + +2012-05-02 Tobias Burnus + + Backport from mainline + 2012-04-12 Tobias Burnus + + PR fortran/52864 + * expr.c (gfc_check_vardef_context): Fix assignment check for + pointer components. + +2012-04-30 Thomas Koenig + + PR fortran/53148 + Backport from trunk + * frontend-passes.c (create_var): If the statement has a label, + put the label around the block. + +2012-04-07 Thomas Koenig + + PR fortran/52893 + Backport from trunk + * frontend-passes.c: Keep track of wether we are in an implicit + DO loop; do not do function elimination if we are. + +2012-04-07 Thomas Koenig + + PR fortran/52668 + Backport from trunk + * module.c: Only mark symbols as use_only if they have been + imported via an only list. + +2012-03-22 Tobias Burnus + + PR fortran/52452 + * resolve.c (resolve_intrinsic): Don't search for a + function if we know that it is a subroutine. + +2012-03-22 Release Manager + + * GCC 4.7.0 released. + +2012-03-10 Tobias Burnus + + PR fortran/52469 + * trans-types.c (gfc_get_function_type): Handle backend_decl + of a procedure pointer. + +2012-02-29 Paul Thomas + + PR fortran/52386 + * trans-expr.c (fcncall_realloc_result): Dereference the + descriptor if needed. + +2012-02-22 Tobias Burnus + + PR fortran/52335 + * io.c (gfc_match_open): Remove bogus F2003 DELIM= check. + +2012-02-18 Tobias Burnus + + PR fortran/52295 + * interface.c (check_interface0): Internal procs in + generic interfaces are allowed in Fortran 2008. + +2012-02-17 Tobias Burnus + Roland Stigge + + PR translation/52273 + * interface.c (compare_actual_formal): Fix typo "at at". + +2012-02-17 Tobias Burnus + + * gfortran.texi (Q exponent-letter): Fix grammar. + +2012-02-17 Tobias Burnus + + * gfortran.texi (Status): Fix typos. + * invoke.texi (ffixed-form, fstack-arrays): Spell Fortran with + a majuscule. + +2012-02-17 Tobias Burnus + Roland Stigge + + PR translation/52232 + PR translation/52234 + PR translation/52245 + PR translation/52246 + PR translation/52262 + PR translation/52273 + * io.c (gfc_match_open): Fix typo. + * interface.c (compare_actual_formal): Ditto. + * lang.opt (freal-4-real-8, freal-4-real-16, freal-8-real-16): Ditto. + * match.c (alloc_opt_list, gfc_match_nullify): Ditto. + * check.c (gfc_check_associated, gfc_check_null): Ditto. + +2012-02-12 Mikael Morin + + PR fortran/50981 + * trans-stmt.c (gfc_get_proc_ifc_for_call): New function. + (gfc_trans_call): Use gfc_get_proc_ifc_for_call. + +2012-02-12 Mikael Morin + + * trans-array.c (gfc_walk_elemental_function_args, + gfc_walk_function_expr): Move call to gfc_get_proc_ifc_for_expr out + of gfc_walk_elemental_function_args. + * trans-stmt.c (gfc_trans_call): Ditto. + * trans-array.h (gfc_get_proc_ifc_for_expr): New prototype. + (gfc_walk_elemental_function_args): Update prototype. + +2012-02-12 Mikael Morin + + * trans-array.c (gfc_get_proc_ifc_for_expr): New function. + (gfc_walk_elemental_function_args): Move code to + gfc_get_proc_ifc_for_expr and call it. + +2012-02-08 Tobias Burnus + + PR fortran/52151 + * trans-expr.c (fcncall_realloc_result): Set also the stride. + +2012-02-07 Tobias Burnus + + PR fortran/51514 + * trans-expr.c (gfc_conv_procedure_call): Add _data component + for calls of scalar CLASS actuals to TYPE dummies. + +2012-02-05 Thomas König + + PR fortran/48847 + * trans-decl.c: Warn about unused dummy procedure arguments + if -Wunused-dummy-argument is specified. Suppress middle-end + warnings about procedure arguments. + +2012-02-05 Paul Thomas + + * trans-array.c (gfc_array_allocate): Zero memory for all class + array allocations. + * trans-stmt.c (gfc_trans_allocate): Ditto for class scalars. + + PR fortran/52102 + * trans-stmt.c (gfc_trans_allocate): Before correcting a class + array reference, ensure that 'dataref' points to the _data + component that is followed by the array reference.. + +2012-02-02 Mikael Morin + + PR fortran/41587 + PR fortran/46356 + PR fortran/51754 + PR fortran/50981 + * class.c (insert_component_ref, class_data_ref_missing, + gfc_fix_class_refs): New functions. + * gfortran.h (gfc_fix_class_refs): New prototype. + * trans-expr.c (gfc_conv_expr): Remove special case handling and call + gfc_fix_class_refs instead. + +2012-02-02 Paul Thomas + + PR fortran/52012 + * trans-expr.c (fcncall_realloc_result): If variable shape is + correct, retain the bounds, whatever they are. + +2012-02-02 Tobias Burnus + + PR fortran/52093 + * simplify.c (gfc_simplify_size): Handle INTRINSIC_PARENTHESES. + +2012-02-01 Thomas König + + PR fortran/51958 + * frontend-passes.c (convert_elseif): New function. + (optimize_namespace): Call it. + +2012-02-01 Tobias Burnus + + PR fortran/52024 + * module.c (MOD_VERSION): Bump. + (mio_typebound_proc): Read/write is_operator from/to the + .mod file. + +2012-02-01 Tobias Burnus + + PR fortran/52059 + * trans-expr.c (gfc_conv_procedure_call): Add array ref + only to variables. + +2012-01-31 Tobias Burnus + + PR fortran/52024 + * gfortran.h (gfc_tbp_generic): Store whether the + generic is an operator. + * decl.c (gfc_match_generic): Set that flag. + * resolve.c (check_generic_tbp_ambiguity): Use it in the + gfc_compare_interfaces check. + +2012-01-31 Tobias Burnus + + PR fortran/52029 + * class.c (gfc_find_derived_vtab): Mark _copy function as pure. + +2012-01-31 Tobias Burnus + + PR fortran/52013 + * class.c (get_unique_hashed_string): Adapt trim length. + (gfc_build_class_symbol) Encode also corank in the container name. + +2012-01-31 Paul Thomas + + PR fortran/52012 + * trans-expr.c (fcncall_realloc_result): Correct calculation of + result offset. + +2012-01-29 Janne Blomqvist + + * module.c (pointer_info): Make true_name and module pointers + rather than arrays, order pointers before other fields. + (free_pi_tree): free true_name and module as well. + (mio_read_string): Rename to read_string. + (mio_write_string): Remove. + (load_commons): Use read_string. + (read_module): Use read_string rather than mio_internal_string. + (write_blank_common): Call write_atom directly. + (write_symbol): Likewise. + +2012-01-29 Tobias Burnus + + PR fortran/41600 + * expr.c (gfc_default_initializer): Convert the values if + the type does not match. + +2012-01-29 Tobias Burnus + + PR fortran/51972 + * trans-array.c (structure_alloc_comps): Fix assignment of + polymorphic components (polymorphic deep copying). + +2012-01-29 Janne Blomqvist + + PR fortran/51808 + * decl.c (set_binding_label): Make binding_label argument const. + (curr_binding_label): Constify. + * gfortran.h (gfc_symbol): Constify binding_label. + (gfc_common_head): Likewise. + (get_iso_c_sym): Likewise. + * match.c (gfc_match_name_C): Constify buffer argument. + * match.h (gfc_match_name_C): Likewise. + * resolve.c (set_name_and_label): Constify binding_label argument. + (gfc_iso_c_sub_interface): Constify binding_label variable. + * symbol.c (get_iso_c_sym): Constify binding_label argument. + +2012-01-29 Janne Blomqvist + + PR fortran/51808 + * decl.c (set_binding_label): Move prototype from match.h to here. + (curr_binding_label): Make a pointer rather than static array. + (build_sym): Check sym->binding_label pointer rather than array, + update set_binding_label call, handle curr_binding_label changes. + (set_binding_label): Handle new curr_binding_label, dest_label + double ptr, and sym->binding_label. + (verify_bind_c_sym): Handle sym->binding_label being a pointer. + (set_verify_bind_c_sym): Check sym->binding_label pointer rather + than array, update set_binding_label call. + (gfc_match_bind_c_stmt): Handle curr_binding_label change. + (match_procedure_decl): Update set_binding_label call. + (gfc_match_bind_c): Change binding_label to pointer, update + gfc_match_name_C call. + * gfortran.h (GFC_MAX_BINDING_LABEL_LEN): Remove macro. + (gfc_symbol): Make binding_label a pointer. + (gfc_common_head): Likewise. + * match.c (gfc_match_name_C): Heap allocate bind(C) name. + * match.h (gfc_match_name_C): Change prototype argument. + (set_binding_label): Move prototype to decl.c. + * module.c (struct pointer_info): Make binding_label a pointer. + (free_pi_tree): Free unused binding_label. + (mio_read_string): New function. + (mio_write_string): New function. + (load_commons): Redo reading of binding_label. + (read_module): Likewise. + (write_common_0): Change to write empty string instead of name if + no binding_label. + (write_blank_common): Write empty string for binding label. + (write_symbol): Change to write empty string instead of name if no + binding_label. + * resolve.c (gfc_iso_c_func_interface): Don't set binding_label. + (set_name_and_label): Make binding_label double pointer, use + asprintf. + (gfc_iso_c_sub_interface): Make binding_label a pointer. + (resolve_bind_c_comms): Handle cases if + gfc_common_head->binding_label is NULL. + (gfc_verify_binding_labels): sym->binding_label is a pointer. + * symbol.c (gfc_new_symbol): Rely on XCNEW zero init for + binding_label. + (gen_special_c_interop_ptr): Don't set binding label. + (generate_isocbinding_symbol): Insert binding_label into symbol + table. + (get_iso_c_sym): Use pointer assignment instead of strcpy. + * trans-common.c (gfc_sym_mangled_common_id): Handle + com->binding_label being a pointer. + * trans-decl.c (gfc_sym_mangled_identifier): Handle + sym->binding_label being a pointer. + (gfc_sym_mangled_function_id): Likewise. + +2012-01-29 Tobias Burnus + + PR fortran/52038 + * resolve.c (symbol_as): Remove unused, accidentally + added function. + +2012-01-28 Tobias Burnus + + PR fortran/51972 + * trans-stmt.c (gfc_trans_allocate): Properly check whether + we have a BT_CLASS which needs to be memset. + +2012-01-27 Tobias Burnus + + PR fortran/52022 + * trans-expr.c (gfc_conv_procedure_call): Fix passing + of functions, which return allocatables. + +2012-01-27 Tobias Burnus + + PR fortran/52016 + * resolve.c (resolve_formal_arglist): Fix elemental + constraint checks for polymorphic dummies also for + pointers. + +2012-01-27 Tobias Burnus + + PR fortran/51970 + PR fortran/51977 + * primary.c (gfc_match_varspec. gfc_match_rvalue): Set + handle array spec for BT_CLASS. + * expr.c (gfc_get_variable_expr, gfc_lval_expr_from_sym) + * frontend-passes.c (create_var): Ditto. + * resolve.c (resolve_actual_arglist, resolve_assoc_var): Ditto. + * trans-decl.c (gfc_trans_deferred_vars): Use class_pointer + instead of attr.pointer. + (gfc_generate_function_code): Use CLASS_DATA (sym) for BT_CLASS. + * trans-intrinsic.c (conv_intrinsic_move_alloc): Move assert. + * trans-stmt.c (trans_associate_var): Ask for the descriptor. + +2012-01-27 Tobias Burnus + + PR fortran/51953 + * match.c (gfc_match_allocate): Allow more than allocate + object with SOURCE=. + +2012-01-27 Tobias Burnus + + PR fortran/52016 + * resolve.c (resolve_formal_arglist): Fix elemental + constraint checks for polymorphic dummies. + +2012-01-27 Paul Thomas + Tobias Burnus + + PR fortran/48705 + PR fortran/51870 + PR fortran/51943 + PR fortran/51946 + * trans-array.c (gfc_array_init_size): Add two extra arguments + to convey the dynamic element size of a calls object and to + return the number of elements that have been allocated. + (gfc_array_allocate): Add the same arguments and use them to + call gfc_array_init_size. Before the allocation dereference + the data pointer, if necessary. Set the allocated array to zero + if the class element size or expr3 are non-null. + * trans-expr.c (gfc_conv_class_to_class): Give this function + global scope. + (get_class_array_ref): New function. + (gfc_copy_class_to_class): New function. + * trans-array.h : Update prototype for gfc_array_allocate. + * trans-stmt.c (gfc_trans_allocate): For non-variable class + STATUS expressions extract the class object and the dynamic + element size. Use the latter to call gfc_array_allocate and + the former for setting the vptr and, via + gfc_copy_class_to_clasfc_cs, to copy to the allocated data. + * trans.h : Prototypes for gfc_get_class_array_ref, + gfc_copy_class_to_class and gfc_conv_class_to_class. + +2012-01-25 Tobias Burnus + + * resolve.c (symbol_as): Check also for attr.class_ok. + +2012-01-25 Tobias Burnus + + PR fortran/51995 + * class.c (gfc_build_class_symbol): Fix invalid freeing + issue with fclass->f2k_derived. + +2012-01-25 Tobias Burnus + + PR fortran/51995 + * class.c (gfc_build_class_symbol): Ensure that + fclass->f2k_derived is set. + +2012-01-25 Tobias Burnus + + PR fortran/51966 + * resolve.c (resolve_structure_cons): Only create an + array constructors for nonscalars. + +2012-01-23 Tobias Burnus + + PR fortran/51948 + * check.c (variable_check): Fix checking for + variables and deeply nested BLOCKs. + +2012-01-21 Tobias Burnus + Steven G. Kargl + + PR fortran/50556 + * symbol.c (check_conflict): namelist-group-name cannot have the SAVE + attribute. + +2012-01-21 Tobias Burnus + + PR fortran/51913 + * interface.c (compare_parameter): Fix CLASS comparison. + 2012-01-20 Tobias Burnus Janus Weil