X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Ffortran%2FChangeLog;h=7cf6e86d9b05a958efac3d9587c3bae2e5601e89;hb=58d82cd04d30e16e38e5fcac6d2d120fa55d64ed;hp=a064c8a831bbd67feabb51d99a4c115a38447cf4;hpb=de0c4488fdfa38f2c6c01b098b416b8772572e54;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index a064c8a831b..7cf6e86d9b0 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,486 @@ +2009-09-13 Richard Guenther + Rafael Avila de Espindola + + * f95-lang.c (gfc_maybe_initialize_eh): Do not init + eh_personality_libfunc. + +2009-09-11 Janus Weil + + PR fortran/41242 + * resolve.c (resolve_ordinary_assign): Don't call resolve_code, + to avoid that subsequent codes are resolved more than once. + (resolve_code): Make sure that type-bound assignment operators are + resolved correctly. + + +2009-09-10 Steven G. Kargl + + PR fortran/31292 + * fortran/decl.c(gfc_match_modproc): Check that module procedures + from a module can USEd in module procedure statements in other + program units. Update locus for better error message display. + Detect intrinsic procedures in module procedure statements. + +2009-09-09 Richard Guenther + + PR fortran/41297 + * trans-expr.c (gfc_trans_scalar_assign): Correct typo that + left 'tmp' unused in derived type assignment. + +2009-09-07 Thomas Koenig + + PR fortran/41197 + * resolve_c (resolve_allocate_deallocate): Complain + if stat or errmsg varaible is an array. + +2009-09-05 Paul Thomas + + PR fortran/41258 + * primary.c (gfc_match_varspec): Do not look for typebound + procedures unless the derived type has a f2k_derived namespace. + +2009-09-03 Diego Novillo + + * f95-lang.c (lang_hooks): Remove const qualifier. + +2009-09-01 Richard Guenther + + * f95-lang.c (gfc_mark_addressable): Remove. + (LANG_HOOKS_MARK_ADDRESSABLE): Likewise. + +2009-08-31 Jerry DeLisle + + PR fortran/39229 + * scanner.c (next_char): Fix typo in comment. + (gfc_get_char_literal): Warn if truncate flag is set for both fixed and + free form source, adjusting error locus as needed. + * parse.c (next_fixed): Clear the truncate flag. + (next_statement): Remove truncate warning. + +2009-08-31 Janus Weil + Paul Thomas + + PR fortran/40940 + * array.c (gfc_match_array_constructor): Rename gfc_match_type_spec. + * decl.c (gfc_match_type_spec): Rename to gfc_match_decl_type_spec, + and reject CLASS with -std=f95. + (gfc_match_implicit, gfc_match_data_decl,gfc_match_prefix, + match_procedure_interface): Rename gfc_match_type_spec. + * gfortran.h (gfc_type_compatible): Add prototype. + * match.h (gfc_match_type_spec): Rename to gfc_match_decl_type_spec. + * match.c (match_intrinsic_typespec): Rename to match_type_spec, and + add handling of derived types. + (gfc_match_allocate): Rename match_intrinsic_typespec and check + type compatibility of derived types. + * symbol.c (gfc_type_compatible): New function to check if two types + are compatible. + +2009-08-31 Janus Weil + + PR fortran/40996 + * check.c (gfc_check_allocated): Implement allocatable scalars. + * resolve.c (resolve_allocate_expr,resolve_fl_var_and_proc): Ditto. + * trans-intrinsic.c (gfc_conv_allocated): Ditto. + +2009-08-30 Daniel Kraft + + PR fortran/37425 + * dump-parse-tree.c (show_typebound_proc): Renamed from `show_typebound' + and accept gfc_typebound_proc and name instead of the symtree, needed + for intrinsic operator output. + (show_typebound_symtree): New method calling `show_typebound_proc'. + (show_f2k_derived): Output type-bound operators also. + (show_symbol): Moved output of `Procedure bindings:' label to + `show_f2k_derived'. + * gfortran.texi (Fortran 2003 status): Mention support of + array-constructors with explicit type specification, type-bound + procedures/operators, type extension, ABSTRACT types and DEFERRED. + Link to Fortran 2003 wiki page. + (Fortran 2008 status): Fix typo. Link to Fortran 2008 wiki page. + * gfc-internals.texi (Type-bound Procedures): Document the new + members/attributes of gfc_expr.value.compcall used for type-bound + operators. + (Type-bound Operators): New section documenting their internals. + +2009-08-27 Janus Weil + + PR fortran/40869 + * expr.c (gfc_check_pointer_assign): Enable interface check for + pointer assignments involving procedure pointer components. + * gfortran.h (gfc_compare_interfaces): Modified prototype. + * interface.c (gfc_compare_interfaces): Add argument 'name2', to be + used instead of s2->name. Don't rely on the proc_pointer attribute, + but instead on the flags handed to this function. + (check_interface1,compare_parameter): Add argument for + gfc_compare_interfaces. + * resolve.c (check_generic_tbp_ambiguity): Ditto. + +2009-08-27 Daniel Kraft + + PR fortran/37425 + * gfortran.h (gfc_expr): Optionally store base-object in compcall value + and add a new flag to distinguish assign-calls generated. + (gfc_find_typebound_proc): Add locus argument. + (gfc_find_typebound_user_op), (gfc_find_typebound_intrinsic_op): Ditto. + (gfc_extend_expr): Return if failure was by a real error. + * interface.c (matching_typebound_op): New routine. + (build_compcall_for_operator): New routine. + (gfc_extend_expr): Handle type-bound operators, some clean-up and + return if failure was by a real error or just by not finding an + appropriate operator definition. + (gfc_extend_assign): Handle type-bound assignments. + * module.c (MOD_VERSION): Incremented. + (mio_intrinsic_op): New routine. + (mio_full_typebound_tree): New routine to make typebound-procedures IO + code reusable for type-bound user operators. + (mio_f2k_derived): IO of type-bound operators. + * primary.c (gfc_match_varspec): Initialize new fields in gfc_expr and + pass locus to gfc_find_typebound_proc. + * resolve.c (resolve_operator): Only output error about no matching + interface if gfc_extend_expr did not already fail with an error. + (extract_compcall_passed_object): Use specified base-object if present. + (update_compcall_arglist): Handle ignore_pass field. + (resolve_ordinary_assign): Update to handle extended code for + type-bound assignments, too. + (resolve_code): Handle EXEC_ASSIGN_CALL statement code. + (resolve_tb_generic_targets): Pass locus to gfc_find_typebound_proc. + (resolve_typebound_generic), (resolve_typebound_procedure): Ditto. + (resolve_typebound_intrinsic_op), (resolve_typebound_user_op): Ditto. + (ensure_not_abstract_walker), (resolve_fl_derived): Ditto. + (resolve_typebound_procedures): Remove not-implemented error. + (resolve_typebound_call): Handle assign-call flag. + * symbol.c (find_typebound_proc_uop): New argument to pass locus for + error message about PRIVATE, verify that a found procedure is not marked + as erraneous. + (gfc_find_typebound_intrinsic_op): Ditto. + (gfc_find_typebound_proc), (gfc_find_typebound_user_op): New locus arg. + +2009-08-22 Bud Davis + + PR fortran/28093 + * io.c: reverted previous patch. + +2009-08-25 Janne Blomqvist + + * gfortran.texi: Fix ENCODE example. + +2009-08-25 Janus Weil + + PR fortran/41139 + * primary.c (gfc_match_varspec): Make sure EXPR_PPC is only used for + calls to procedure pointer components, other references to procedure + pointer components are EXPR_VARIABLE. + * resolve.c (resolve_actual_arglist): Bugfix (there can be calls without + actual arglist). + * trans-expr.c (gfc_get_proc_ptr_comp): Renamed to 'get_proc_ptr_comp', + removed argument 'se' and made static. Avoid inserting a temporary + variable for calling the PPC. + (conv_function_val): Renamed gfc_get_proc_ptr_comp. + (gfc_conv_procedure_call): Distinguish functions returning a procedure + pointer from calls to a procedure pointer. Distinguish calls to + procedure pointer components from procedure pointer components as + actual arguments. + * trans-stmt.h (gfc_get_proc_ptr_comp): Make it static. + +2009-08-24 Jerry DeLisle + + PR fortran/41162 + * io.c (check_format): Fix to not error on slash after P. Fix some + error loci. + +2009-08-24 Jerry DeLisle + + PR fortran/41154 + * io.c (check_format): Fix to not error on right paren after P. + +2009-08-24 Aldy Hernandez + + PR fortran/40660 + * trans-io.c (build_dt): Pass UNKNOWN_LOCATION to build_call_expr_loc. + (transfer_array_desc): Same. + +2009-08-23 Jerry DeLisle + + PR fortran/35754 + * io.c (check_format): Add checks for comma and the allowed + format specifiers after the 'P' specifier. Fix typo in error message + and adjust locus. + +2009-08-23 Jerry DeLisle + + PR fortran/37446 + * io.c (enum format_token): Change FMT_EXT to FMT_EN and FMT_ES. + (format_lex): Likewise. + (token_to_string): New function. + (check_format): Use the new tokens and the new function. Add + check for positive width. + +2009-08-22 Steven G. Kargl + + * fortran/decl.c: Disallow procedure pointers with -std=f95. + +2009-08-22 Steven K. kargl + Paul Thomas + + * fortran/decl.c (match_char_spec): Rename to gfc_match_char_spec, + and remove static. + * fortran/gfortran.h: Add *expr3 entity to gfc_code. Add prototype + for gfc_match_char_spec. + * fortran/trans-stmt.c (gfc_trans_allocate): Translate the SOURCE= + tag. + * fortran/match.c (match_intrinsic_typespec): New function to match + F2003 intrinsic-type-spec. + (conformable_arrays): New function. Check SOURCE= and + allocation-object are conformable. + (gfc_match_allocate): Use new functions. Match SOURCE= tag. + +2009-08-22 Bud Davis + + PR fortran/28093 + * io.c : added variable to store original len of fmt + * io.c (check_format): Consume H items using next_char + in both modes to handle consecutive single quotes. + Test for extra characters in fmt, issue warning. + +2009-08-21 Janus Weil + + PR fortran/41106 + * primary.c (gfc_variable_attr): Make it work also on EXPR_FUNCTION. + (gfc_expr_attr): Use gfc_variable_attr for procedure pointer components. + * resolve.c (resolve_fl_derived): Handle CHARACTER-valued procedure + pointer components. + * trans-expr.c (gfc_conv_component_ref): Ditto. + (gfc_conv_variable): Ditto. + (gfc_conv_procedure_call): Ditto. + (gfc_trans_pointer_assignment): Ditto. + * trans-types.c (gfc_get_derived_type): Ditto. + +2009-08-20 Tobias Schlüter + + * trans-stmt.c (gfc_trans_do): Add a few missing folds. + +2009-08-20 Michael Matz + + PR fortran/41126 + * trans-expr.c (gfc_conv_string_tmp): Check type compatibility + instead of equality. + +2009-08-20 Janus Weil + + PR fortran/41121 + * resolve.c (resolve_symbol): Don't resolve formal_ns of intrinsic + procedures. + +2009-08-18 Michael Matz + + * trans-expr.c (gfc_conv_substring): Don't evaluate casted decl early, + change order of length calculation to (end - start) + 1. + (gfc_get_interface_mapping_array): Adjust call to + gfc_get_nodesc_array_type. + * trans-array.c (gfc_trans_create_temp_array, + gfc_build_constant_array_constructor, gfc_conv_expr_descriptor): Ditto. + * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto. + * trans.c (gfc_add_modify): Assignment between base type and nontarget + type are equal enough. + (gfc_call_malloc): Use prvoid_type_node for return value of + __builtin_malloc. + (gfc_allocate_with_status): Ditto. + * trans-types.c (gfc_array_descriptor_base): Double size of this array. + (gfc_init_types): Build prvoid_type_node. + (gfc_build_array_type): New bool parameter "restricted". + (gfc_get_nodesc_array_type): Ditto, build restrict qualified pointers, + if it's true. + (gfc_get_array_descriptor_base): Ditto. + (gfc_get_array_type_bounds): Ditto. + (gfc_sym_type): Use symbol attributes to feed calls to above functions. + (gfc_get_derived_type): Ditto. + * trans.h (struct lang_type): Add nontarget_type member. + * trans-types.h (prvoid_type_node): Declare. + (gfc_get_array_type_bounds, gfc_get_nodesc_array_type): Declare new + parameter. + * trans-decl.c (gfc_finish_var_decl): Give scalars that can't be + aliased a type with a different alias set than the base type. + (gfc_build_dummy_array_decl): Adjust call to gfc_get_nodesc_array_type. + +2009-08-18 Janus Weil + Paul Thomas + + PR fortran/40870 + * trans-types.c (gfc_get_ppc_type): Include formal args in backend_decl + using the interface symbol. Character types are returned by reference. + (gfc_get_derived_type): Prevent infinite recursion loop + if a PPC has a derived-type formal arg. + +2008-08-17 Paul Thomas + + PR fortran/41062 + * trans-decl.c (gfc_trans_use_stmts): Keep going through use + list if symbol is not use associated. + +2009-08-17 Daniel Kraft + + PR fortran/37425 + * resolve.c (get_checked_tb_operator_target): New routine to do checks + on type-bound operators in common between intrinsic and user operators. + (resolve_typebound_intrinsic_op): Call it. + (resolve_typebound_user_op): Ditto. + +2009-08-17 Jerry DeLisle + + PR fortran/41075 + * scanner.c (gfc_next_char_literal): Add comment to improve + readability. + * io.c (enum format_token): Add FMT_STAR. (format_lex): Add case + for '*'. (check_format): Check for left paren after '*'. Change + format checks to use %L to improve format string error locus. + +2009-08-17 Janus Weil + + PR fortran/40877 + * array.c (gfc_resolve_character_array_constructor): Add NULL argument + to gfc_new_charlen. + * decl.c (add_init_expr_to_sym,variable_decl,match_char_spec, + gfc_match_implicit): Ditto. + * expr.c (simplify_const_ref): Fix memory leak. + (gfc_simplify_expr): Add NULL argument to gfc_new_charlen. + * gfortran.h (gfc_new_charlen): Modified prototype. + * iresolve.c (check_charlen_present,gfc_resolve_char_achar): Add NULL + argument to gfc_new_charlen. + * module.c (mio_charlen): Ditto. + * resolve.c (gfc_resolve_substring_charlen, + gfc_resolve_character_operator,fixup_charlen): Ditto. + (resolve_fl_derived,resolve_symbol): Add argument to gfc_charlen. + * symbol.c (gfc_new_charlen): Add argument 'old_cl' (to make a copy of + an existing charlen). + (gfc_set_default_type,generate_isocbinding_symbol): Fix memory leak. + (gfc_copy_formal_args_intr): Add NULL argument to gfc_new_charlen. + * trans-decl.c (create_function_arglist): Fix memory leak. + +2009-08-17 Richard Guenther + + * trans-expr.c (gfc_trans_scalar_assign): Replace hack with + more proper hack. + +2009-08-15 Tobias Burnus + + PR fortran/41080 + * gfortranspec.c (lookup_option): Remove gfortran-specific + version of -dumpversion. + +2009-08-14 Janus Weil + + PR fortran/41070 + * resolve.c (resolve_structure_cons): Make sure that ts.u.derived is + only used if type is BT_DERIVED. + +2009-08-13 Janus Weil + + PR fortran/40941 + * gfortran.h (gfc_typespec): Put 'derived' and 'cl' into union. + * decl.c (build_struct): Make sure 'cl' is only used + if type is BT_CHARACTER. + * symbol.c (gfc_set_default_type): Ditto. + * resolve.c (resolve_symbol, resolve_fl_derived): Ditto. + (resolve_equivalence,resolve_equivalence_derived): Make sure 'derived' + is only used if type is BT_DERIVED. + * trans-io.c (transfer_expr): Make sure 'derived' is only used if type + is BT_DERIVED or BT_INTEGER (special case: C_PTR/C_FUNPTR). + * array.c: Mechanical replacements to accomodate union in gfc_typespec. + * check.c: Ditto. + * data.c: Ditto. + * decl.c: Ditto. + * dump-parse-tree.c: Ditto. + * expr.c: Ditto. + * interface.c: Ditto. + * iresolve.c: Ditto. + * match.c: Ditto. + * misc.c: Ditto. + * module.c: Ditto. + * openmp.c: Ditto. + * parse.c: Ditto. + * primary.c: Ditto. + * resolve.c: Ditto. + * simplify.c: Ditto. + * symbol.c: Ditto. + * target-memory.c: Ditto. + * trans-array.c: Ditto. + * trans-common.c: Ditto. + * trans-const.c: Ditto. + * trans-decl.c: Ditto. + * trans-expr.c: Ditto. + * trans-intrinsic.c: Ditto. + * trans-io.c: Ditto. + * trans-stmt.c: Ditto. + * trans-types.c: Ditto. + +2009-08-13 Janus Weil + + PR fortran/40995 + * resolve.c (resolve_symbol): Move some checking code to + resolve_intrinsic, and call this from here. + (resolve_intrinsic): Some checking code moved here from resolve_symbol. + Make sure each intrinsic is only resolved once. + +2009-08-12 Tobias Burnus + + PR fortran/41034 + * symbol.c (gfc_copy_attr): Merge bits instead of replace + bits in gfc_copy_attr. + * gfc_check_pointer_assign (gfc_check_pointer_assign): + Initialize ext_attr bits by zero. + +2009-08-11 Richard Guenther + + * trans-types.c (gfc_get_derived_type): Do not clear TYPE_CANONICAL. + +2009-08-11 Janus Weil + + PR fortran/41022 + * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointer + components as actual arguments. + +2009-08-10 Daniel Kraft + + PR fortran/37425 + * gfortran.h (struct gfc_namespace): New fields tb_uop_root and tb_op. + (gfc_find_typebound_user_op): New routine. + (gfc_find_typebound_intrinsic_op): Ditto. + (gfc_check_operator_interface): Now public routine. + * decl.c (gfc_match_generic): Match OPERATOR(X) or ASSIGNMENT(=). + * interface.c (check_operator_interface): Made public, renamed to + `gfc_check_operator_interface' accordingly and hand in the interface + as gfc_symbol rather than gfc_interface so it is useful for type-bound + operators, too. Return boolean result. + (gfc_check_interfaces): Adapt call to `check_operator_interface'. + * symbol.c (gfc_get_namespace): Initialize new field `tb_op'. + (gfc_free_namespace): Free `tb_uop_root'-based tree. + (find_typebound_proc_uop): New helper function. + (gfc_find_typebound_proc): Use it. + (gfc_find_typebound_user_op): New method. + (gfc_find_typebound_intrinsic_op): Ditto. + * resolve.c (resolve_tb_generic_targets): New helper function. + (resolve_typebound_generic): Use it. + (resolve_typebound_intrinsic_op), (resolve_typebound_user_op): New. + (resolve_typebound_procedures): Resolve operators, too. + (check_uop_procedure): New, code from gfc_resolve_uops. + (gfc_resolve_uops): Moved main code to new `check_uop_procedure'. + +2009-08-10 Janus Weil + + PR fortran/40940 + * decl.c (gfc_match_type_spec): Match CLASS statement and warn about + missing polymorphism. + * gfortran.h (gfc_typespec): Add field 'is_class'. + * misc.c (gfc_clear_ts): Initialize 'is_class' to zero. + * resolve.c (type_is_extensible): New function to check if a derived + type is extensible. + (resolve_fl_variable_derived): Add error checks for CLASS variables. + (resolve_typebound_procedure): Disallow non-polymorphic passed-object + dummy arguments, turning warning into error. + (resolve_fl_derived): Use 'type_is_extensible'. Disallow non-polymorphic + passed-object dummy arguments for procedure pointer components, + turning warning into error. Add error check for CLASS components. + 2009-08-05 Tobias Burnus PR fortran/40955 @@ -1842,7 +2325,7 @@ * gfc-internals.texi (Type-bound procedures): Document a little bit about internal handling of DEFERRED bindings. -2009-03-29 Tobias Schlueter +2009-03-29 Tobias Schlüter PR fortran/38507 * gfortran.h (gfc_st_label): Fix comment.