X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Ffortran%2FChangeLog;h=8ed59457483ff2d991b530b1e231d36e27f54c20;hp=5b1ed7728295da3e0ccbd8dee6e1907bb9a22c0d;hb=f07e1be6ec06e97f636d1c62c6cf62aacca180bf;hpb=e4b33af48d863ec6f38decb87959ddc6cbdc40e1 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 5b1ed772829..8ed59457483 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,472 @@ +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 + * gfortran.h (ext_attr_id_t): Add typedef for this enum. + (gfc_add_ext_attribute): Use it. + * decl.c (gfc_match_gcc_attributes): Ditto. + * expr.c (gfc_check_pointer_assign): Ditto. + * symbol.c (gfc_add_ext_attribute): Ditto. + (gfc_copy_attr): Copy also ext_attr. + * resolve.c (resolve_fl_derived,resolve_symbol): Ditto. + * module.c (mio_symbol_attribute): Save ext_attr in the mod file. + +2009-08-05 Tobias Burnus + + PR fortran/40969 + Revert: + 2009-08-04 Tobias Burnus + + PR fortran/40949 + * trans-types.c (gfc_get_function_type): Fix typelist of + functions without argument. + +2009-08-05 Paul Thomas + + PR fortran/40847 + * iresolve.c (gfc_resolve_transfer): Correct error in 'mold' + character length for case where length expresson is NULL. + +2009-08-04 Tobias Burnus + + PR fortran/40949 + * trans-types.c (gfc_get_function_type): Fix typelist of + functions without argument. + +2009-08-04 Paul Thomas + + PR fortran/40875 + * decl.c (add_init_expr_to_sym): Character symbols can only be + initialized with character expressions. + +2009-08-02 Janus Weil + + PR fortran/40881 + * decl.c (match_char_length): Warn about old-style character length + declarations. + * match.c (match_arithmetic_if,gfc_match_if): Modify warning message + for arithmetic if. + (gfc_match_goto): Warn about computed gotos. + (gfc_match_return): Warn about alternate return. + (gfc_match_st_function): Warn about statement functions. + * resolve.c (resolve_fl_procedure): Modify warning message for + assumed-length character functions. + +2009-08-01 Paul Thomas + + PR fortran/40011 + * error.c : Add static flag 'warnings_not_errors'. + (gfc_error): If 'warnings_not_errors' is set, branch to code + from gfc_warning. + (gfc_clear_error): Reset 'warnings_not_errors'. + (gfc_errors_to_warnings): New function. + * options.c (gfc_post_options): If pedantic and flag_whole_file + change the latter to a value of 2. + * parse.c (parse_module): Add module namespace to gsymbol. + (resolve_all_program_units): New function. + (clean_up_modules): New function. + (translate_all_program_units): New function. + (gfc_parse_file): If whole_file, do not clean up module right + away and add derived types to namespace derived types. In + addition, call the three new functions above. + * resolve.c (not_in_recursive): New function. + (not_entry_self_reference): New function. + (resolve_global_procedure): Symbol must not be IFSRC_UNKNOWN, + procedure must not be in the course of being resolved and + must return false for the two new functions. Pack away the + current derived type list before calling gfc_resolve for the + gsymbol namespace. It is unconditionally an error if the ranks + of the reference and ther procedure do not match. Convert + errors to warnings during call to gfc_procedure_use if not + pedantic or legacy. + (gfc_resolve): Set namespace resolved flag to -1 during + resolution and store current cs_base. + * trans-decl.c (gfc_get_symbol_decl): If whole_file compilation + substitute a use associated variable, if it is available in a + gsymbolnamespace. + (gfc_get_extern_function_decl): If the procedure is use assoc, + do not attempt to find it in a gsymbol because it could be an + interface. If the symbol exists in a module namespace, return + its backend_decl. + * trans-expr.c (gfc_trans_scalar_assign): If a derived type + assignment, set the rhs TYPE_MAIN_VARIANT to that of the rhs. + * trans-types.c (copy_dt_decls_ifequal): Add 'from_gsym' as a + boolean argument. Copy component backend_decls directly if the + components are derived types and from_gsym is true. + (gfc_get_derived_type): If whole_file copy the derived type from + the module if it is use associated, otherwise, if can be found + in another gsymbol namespace, use the existing derived type as + the TYPE_CANONICAL and build normally. + * gfortran.h : Add derived_types and resolved fields to + gfc_namespace. Include prototype for gfc_errors_to_warnings. + +2009-07-29 Tobias Burnus + + PR fortran/40898 + * trans-types.c (gfc_get_function_type): Do not add hidden + string-length argument for BIND(C) procedures. + * trans-decl.c (create_function_arglist): Skip over nonexisting + string-length arguments for BIND(C) procedures. + +2009-07-28 Jakub Jelinek + + PR fortran/40878 + * openmp.c (gfc_match_omp_clauses): Use gfc_error_now instead of + gfc_error to diagnose invalid COLLAPSE arguments. + +2009-07-28 Janus Weil + + PR fortran/40882 + * trans-types.c (gfc_get_ppc_type): For derived types, directly use the + backend_decl, instead of calling gfc_typenode_for_spec, to avoid + infinte loop. + (gfc_get_derived_type): Correctly handle PPCs returning derived types, + avoiding infinite recursion. + +2009-07-27 Janus Weil + + PR fortran/40848 + * interface.c (gfc_compare_interfaces): Call 'count_types_test' before + 'generic_correspondence', and only if checking a generic interface. + +2009-07-27 Tobias Burnus + + PR fortran/40851 + * resolve.c (resolve_symbol): Do not initialize pointer derived-types. + * trans-decl.c (init_intent_out_dt): Ditto. + (generate_local_decl): No need to set attr.referenced for DT pointers. + +2009-07-26 Tobias Burnus + + PR fortran/33197 + * intrinsic.c (make_generic): Remove assert as "atan" can be + both ISYM_ATAN and ISYM_ATAN2. + (add_functions): Add two-argument variant of ATAN. + * intrinsic.h (gfc_check_atan_2): Add check for it. + * intrinsic.texi (ATAN2): Correct and enhance description. + (ATAN): Describe two-argument variant of ATAN. + +2009-07-25 Tobias Burnus + Francois-Xavier Coudert + + PR fortran/33197 + * intrinsic.c (add_functions): Support complex arguments for + acos,acosh,asin,asinh,atan,atanh. + * invoke.texi (ACOS,ACOSH,ASIN,ASINH,ATAN,ATANH): Support + complex arguments. + * simplify.c (gfc_simplify_acos,gfc_simplify_acosh, + gfc_simplify_asin,gfc_simplify_asinh,gfc_simplify_atan, + gfc_simplify_atanh,gfc_simplify_atan,gfc_simplify_asinh, + gfc_simplify_acosh,gfc_simplify_atanh): Support + complex arguments. + +2009-07-25 Richard Guenther + + PR fortran/40005 + * trans-types.c (gfc_get_array_type_bounds): Use + build_distinct_type_copy with a proper TYPE_CANONICAL and + re-use the type-decl of the original type. + * trans-decl.c (build_entry_thunks): Signal cgraph we may not + garbage collect. + (create_main_function): Likewise. + (gfc_generate_function_code): Likewise. + * trans-expr.c (gfc_trans_subcomponent_assign): Do not use + fold_convert on record types. + +2009-07-25 Janus Weil + + PR fortran/39630 + * decl.c (match_ppc_decl): Implement the PASS attribute for procedure + pointer components. + (match_binding_attributes): Ditto. + * gfortran.h (gfc_component): Add member 'tb'. + (gfc_typebound_proc): Add member 'ppc' and make 'pass_arg' const. + * module.c (MOD_VERSION): Bump module version. + (binding_ppc): New string constants. + (mio_component): Only use formal args if component is a procedure + pointer and add 'tb' member. + (mio_typebound_proc): Include pass_arg and take care of procedure + pointer components. + * resolve.c (update_arglist_pass): Add argument 'name' and take care of + optional arguments. + (extract_ppc_passed_object): New function, analogous to + extract_compcall_passed_object, but for procedure pointer components. + (update_ppc_arglist): New function, analogous to + update_compcall_arglist, but for procedure pointer components. + (resolve_typebound_generic_call): Added argument to update_arglist_pass. + (resolve_ppc_call, resolve_expr_ppc): Take care of PASS attribute. + (resolve_fl_derived): Check the PASS argument for procedure pointer + components. + * symbol.c (verify_bind_c_derived_type): Reject procedure pointer + components in BIND(C) types. + +2009-07-24 Janus Weil + + PR fortran/40822 + * array.c (gfc_resolve_character_array_constructor): Use new function + gfc_new_charlen. + * decl.c (add_init_expr_to_sym,variable_decl,match_char_spec, + gfc_match_implicit): Ditto. + * expr.c (gfc_simplify_expr): Ditto. + * gfortran.h (gfc_new_charlen): New prototype. + * iresolve.c (check_charlen_present,gfc_resolve_char_achar): Use new + function gfc_new_charlen. + * module.c (mio_charlen): Ditto. + * resolve.c (gfc_resolve_substring_charlen, + gfc_resolve_character_operator,fixup_charlen,resolve_fl_derived, + resolve_symbol): Ditto. + * symbol.c (gfc_new_charlen): New function to create a new gfc_charlen + structure and add it to a namespace. + (gfc_copy_formal_args_intr): Make sure ts.cl is present + for CHARACTER variables. + +2009-07-24 Jakub Jelinek + + PR fortran/40643 + PR fortran/31067 + * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc, + gfc_conv_intrinsic_minmaxval): Handle Infinities and NaNs properly, + optimize. + * trans-array.c (gfc_trans_scalarized_loop_end): No longer static. + * trans-array.h (gfc_trans_scalarized_loop_end): New prototype. + +2009-07-23 Jakub Jelinek + + PR fortran/40839 + * io.c (gfc_resolve_dt): Add LOC argument. Fail if + dt->io_unit is NULL. Return FAILURE after issuing error about + negative UNIT number. + (match_io_element): Don't segfault if current_dt->io_unit is NULL. + * gfortran.h (gfc_resolve_dt): Adjust prototype. + * resolve.c (resolve_code): Adjust caller. + +2009-07-22 Paul Thomas + + PR fortran/40796 + * trans-decl.c (generate_local_decl): Unreferenced result + variables with allocatable components should be treated like + INTENT_OUT dummy variables. + +2009-07-22 Francois-Xavier Coudert + + * trans.h (gfc_set_decl_assembler_name): New prototype. + * trans-decl.c (gfc_set_decl_assembler_name): New function. + (gfc_get_symbol_decl, gfc_get_extern_function_decl, + build_function_decl): Use gfc_set_decl_assembler_name instead of + SET_DECL_ASSEMBLER_NAME. + * trans-common.c (build_common_decl): Use + gfc_set_decl_assembler_name instead of SET_DECL_ASSEMBLER_NAME. + +2009-07-21 Richard Guenther + + PR fortran/40726 + * trans-decl.c (gfc_get_extern_function_decl): Do not set + DECL_IS_MALLOC for pointer valued functions. + (build_function_decl): The same. + +2009-07-19 Steven G. Kargl + + PR fortran/40727 + * fortran/check.c (gfc_check_cmplx, gfc_check_dcmplx): Add check that + the optional second argument isn't of COMPLEX type. + +2009-07-17 Richard Guenther + + PR c/40401 + * f95-lang.c (gfc_be_parse_file): Do not finalize the CU here. + * trans-decl.c (gfc_gimplify_function): Remove. + (build_entry_thunks): Do not gimplify here. + (create_main_function): Likewise. + (gfc_generate_function_code): Likewise. + +2009-07-17 Aldy Hernandez + Manuel López-Ibáñez + + PR 40435 + * trans-expr.c, trans-array.c, trans-openmp.c, trans-stmt.c, + trans.c, trans-io.c, trans-decl.c, trans-intrinsic.c: Add location + argument to fold_{unary,binary,ternary}, fold_build[123], + build_call_expr, build_size_arg, build_fold_addr_expr, + build_call_array, non_lvalue, size_diffop, + fold_build1_initializer, fold_build2_initializer, + fold_build3_initializer, fold_build_call_array, + fold_build_call_array_initializer, fold_single_bit_test, + omit_one_operand, omit_two_operands, invert_truthvalue, + fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref, + combine_comparisons, fold_builtin_*, fold_call_expr, + build_range_check, maybe_fold_offset_to_address, round_up, + round_down. + +2009-07-15 Janus Weil + + PR fortran/40743 + * resolve.c (resolve_symbol): Don't resolve the formal namespace of a + contained procedure. + +2009-07-14 Taras Glek + Rafael Espindola + + * Make-lang.in (fortran.install-plugin): New target for + installing plugin headers. + +2009-07-13 H.J. Lu + + * module.c (mio_symbol): Remove the unused variable, formal. + +2009-07-13 Janus Weil + + PR fortran/40646 + * module.c (mio_symbol): If the symbol has formal arguments, + the formal namespace will be present. + * resolve.c (resolve_actual_arglist): Correctly handle 'called' + procedure pointer components as actual arguments. + (resolve_fl_derived,resolve_symbol): Make sure the formal namespace + is present. + * trans-expr.c (gfc_conv_procedure_call): Correctly handle the formal + arguments of procedure pointer components. + +2009-07-12 Tobias Burnus + Philippe Marguinaud + + PR fortran/40588 + * primary.c (match_charkind_name): Fix condition for $ matching. + + PR libfortran/22423 + * libgfortran.h: Typedef the GFC_DTYPE_* enum. + +2009-07-11 Tobias Burnus + + PR fortran/33197 + * check.c (gfc_check_fn_rc2008): New function. + * intrinsic.h (gfc_check_fn_rc2008): New prototype. + * intrinsic.c (add_functions): Add complex tan, cosh, sinh, + and tanh. + +2009-07-10 Paul Thomas + + PR fortran/39334 + * primary.c (match_kind_param): Return MATCH_NO if the symbol + has no value. + 2008-07-09 Paul Thomas PR fortran/40629