+2008-09-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ Tobias Burnus <burnus@net.b.de>
+
+ PR fortran/35840
+ * io.c (match_vtag): Add tag name to error message.
+ (match_out_tag): Cleanup whitespace.
+ (gfc_resolve_dt): Resolve id and async tags.
+
+2008-09-13 Daniel Kraft <d@domob.eu>
+
+ PR fortran/35770
+ * primary.c (gfc_match_varspec): Added missing type-spec clearing
+ after wrong implicit character typing.
+
+2008-09-12 Richard Guenther <rguenther@suse.de>
+
+ * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Use
+ build_fold_addr_expr to properly mark the argument
+ addressable.
+
+2008-09-11 Daniel Kraft <d@domob.eu>
+
+ PR fortran/36214
+ * simplify.c (simplify_cmplx): Added linebreak to long line.
+ * target-memory.c (gfc_convert_boz): Fix indentation.
+ (gfc_interpret_float): Set mpfr precision to right value before
+ calling mpfr_init.
+
+2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * expr.c (find_array_element): Reformat comment.
+
+2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ * expr.c (find_array_element): Reformat.
+
+2008-09-10 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/37420
+ * trans-decl.c (get_proc_pointer_decl): Fix -Wunused-variable.
+
+2008-09-09 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37429
+ * resolve.c (expression_rank): Added assertion to guard against
+ EXPR_COMPCALL expressions.
+ (resolve_compcall): Set expression's rank from the target procedure's.
+
+2008-09-09 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37411
+ * trans-array.c (gfc_conv_array_parameter): Added assertion that the
+ symbol has an array spec.
+
+2008-09-08 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37199
+ * trans-expr.c (gfc_add_interface_mapping): Set new_sym->as.
+ (gfc_map_intrinsic_function): Added checks against NULL bounds in
+ array specs.
+
+2008-09-08 Tobias Burnus <burnus@net.b.de>
+
+ PR fortran/37400
+ * symbol.c (gfc_set_default_type): Copy char len.
+
+2008-09-06 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/36153
+ * fortran/resolve.c (resolve_function): Shortcircuit for SIZE and
+ UBOUND if 2nd argument is KIND.
+
+2008-09-06 Steven G. Kargl <kargls@comcast.net>
+
+ PR fortran/33229
+ * resolve.c (resolve_function): An intrinsic subroutine should not be
+ called as a function.
+
+2008-09-05 Daniel Kraft <d@domob.eu>
+
+ PR fortran/35837
+ * resolve.c (resolve_types): Restore gfc_current_ns on exit.
+ * symbol.c (gfc_save_all): Removed blank line.
+
+2008-09-05 Daniel Kraft <d@domob.eu>
+
+ PR fortran/36746
+ * primary.c (gfc_match_rvalue): Removed logic to handle implicit
+ typing to a derived-type if a component reference is found.
+ (gfc_match_varspec): Moved it here.
+
+2008-09-04 Richard Guenther <rguenther@suse.de>
+
+ * trans-array.c (gfc_conv_array_parameter): Use correct types
+ in building COND_EXPRs.
+ * trans-expr.c (gfc_conv_missing_dummy): Likewise.
+ * trans-intrinsics.c (gfc_conv_intrinsic_merge): Likewise.
+
+2008-09-04 Daniel Kraft <d@domob.eu>
+
+ * PR fortran/37099
+ * expr.c (simplify_const_ref): Update expression's character length
+ when pulling out a substring reference.
+
+2008-09-04 Ian Lance Taylor <iant@google.com>
+
+ * symbol.c (generate_isocbinding_symbol): Compare
+ gfc_notification_std with ERROR rather than FAILURE.
+ * resolve.c (check_assumed_size_reference): Compare array type
+ with AR_FULL rather than DIMEN_ELEMENT.
+ (resolve_actual_arglist): Compare with EXPR_VARIABLE rather than
+ FL_VARIABLE.
+
+2008-09-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/37228
+ * io.c (check_format): Allow specifying precision with g0 format.
+
+2008-09-02 Daniel Kraft <d@domob.eu>
+
+ * gfortran.h (struct gfc_namespace): New member `implicit_loc'.
+ (gfc_add_abstract): New method.
+ * decl.c (gfc_get_type_attr_spec): Match ABSTRACT attribute.
+ (gfc_match_derived_decl): Copy abstract attribute in derived symbol.
+ * dump-parse-tree.c (show_attr): Show ABSTRACT attribute as `ABSTRACT'
+ only to allow for ABSTRACT types.
+ * parse.c (parse_interface): Use new gfc_add_abstract.
+ * primary.c (gfc_match_structure_constructor): Check that no ABSTRACT
+ type is constructed.
+ * resolve.c (resolve_typespec_used): New method.
+ (resolve_fl_derived): Check type in respect to ABSTRACT attribute and
+ check that no component is of an ABSTRACT type.
+ (resolve_symbol): Check that no symbol is of an ABSTRACT type.
+ (resolve_types): Check IMPLICIT declarations for ABSTRACT types.
+ * symbol.c (gfc_merge_new_implicit): Remember loci of IMPLICIT's.
+ (gfc_add_abstract): New method.
+
+2008-09-01 Daniel Kraft <d@domob.eu>
+
+ PR fortran/37193
+ * module.c (read_module): Initialize use_only flag on used symbols.
+
+2008-09-01 Daniel Kraft <d@domob.eu>
+
+ * gfc-internals.texi (F2003 OOP), (Type-bound Procedures): New chapter
+ and section to document the internals of type-bound procedures.
+ (gfc_expr): Document EXPR_COMPCALL.
+ * gfortran.h (struct gfc_expr): Remove unused `derived' from compcall.
+ * dump-parse-tree.c (show_compcall): New method.
+ (show_expr): Call it for EXPR_COMPCALL.
+ (show_typebound), (show_f2k_derived): New methods.
+ (show_symbol): Call show_f2k_derived.
+ (show_code_node): Handle EXEC_COMPCALL.
+ * primary.c (gfc_match_varspec): Don't initialize removed `derived' in
+ primary->value.compcall.
+
+2008-08-31 Richard Guenther <rguenther@suse.de>
+
+ * trans-expr.c (gfc_trans_string_copy): Use the correct types
+ to compute slen and dlen.
+
+2008-08-31 Daniel Kraft <d@domob.eu>
+
+ * gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
+ (struct gfc_tbp_generic): New type.
+ (struct gfc_typebound_proc): Removed `target' and added union with
+ `specific' and `generic' members; new members `overridden',
+ `subroutine', `function' and `is_generic'.
+ (struct gfc_expr): New members `derived' and `name' in compcall union
+ member and changed type of `tbp' to gfc_typebound_proc.
+ (gfc_compare_interfaces), (gfc_compare_actual_formal): Made public.
+ * match.h (gfc_typebound_default_access): New global.
+ (gfc_match_generic): New method.
+ * decl.c (gfc_match_generic): New method.
+ (match_binding_attributes): New argument `generic' and handle it.
+ (match_procedure_in_type): Mark matched binding as non-generic.
+ * interface.c (gfc_compare_interfaces): Made public.
+ (gfc_compare_actual_formal): Ditto.
+ (check_interface_1), (compare_parameter): Use new public names.
+ (gfc_procedure_use), (gfc_search_interface): Ditto.
+ * match.c (match_typebound_call): Set base-symbol referenced.
+ * module.c (binding_generic): New global array.
+ (current_f2k_derived): New global.
+ (mio_typebound_proc): Handle IO of GENERIC bindings.
+ (mio_f2k_derived): Record current f2k-namespace in current_f2k_derived.
+ * parse.c (decode_statement): Handle GENERIC statement.
+ (gfc_ascii_statement): Ditto.
+ (typebound_default_access), (set_typebound_default_access): Removed.
+ (gfc_typebound_default_access): New global.
+ (parse_derived_contains): New default-access implementation and handle
+ GENERIC statements encountered.
+ * primary.c (gfc_match_varspec): Adapted to new gfc_typebound_proc
+ structure and removed check for SUBROUTINE/FUNCTION from here.
+ * resolve.c (extract_compcall_passed_object): New method.
+ (update_compcall_arglist): Use it.
+ (resolve_typebound_static): Adapted to new gfc_typebound_proc structure.
+ (resolve_typebound_generic_call): New method.
+ (resolve_typebound_call): Check target is a SUBROUTINE and handle calls
+ to GENERIC bindings.
+ (resolve_compcall): Ditto (check for target being FUNCTION).
+ (check_typebound_override): Handle GENERIC bindings.
+ (check_generic_tbp_ambiguity), (resolve_typebound_generic): New methods.
+ (resolve_typebound_procedure): Handle GENERIC bindings and set new
+ attributes subroutine, function and overridden in gfc_typebound_proc.
+ (resolve_fl_derived): Ensure extended type is resolved before the
+ extending one is.
+ * st.c (gfc_free_statement): Fix bug with free'ing EXEC_COMPCALL's.
+ * symbol.c (gfc_find_typebound_proc): Adapt for GENERIC changes.
+
+2008-08-29 Jan Hubicka <jh@suse.cz>
+
+ * parse.c (parse_interface): Silence uninitialized var warning.
+
+2008-08-29 Jakub Jelinek <jakub@redhat.com>
+
+ * trans.h (struct lang_type): Add span.
+ (GFC_TYPE_ARRAY_SPAN): Define.
+ * trans-decl.c (gfc_get_symbol_decl): For subref array pointers,
+ copy TREE_STATIC from decl to span instead of setting it
+ unconditionally, set DECL_ARTIFICIAL, fix type of initializer
+ and set GFC_TYPE_ARRAY_SPAN on decl's type.
+ * trans-types.c (gfc_get_array_descr_info): If
+ GFC_TYPE_ARRAY_SPAN is non-NULL, use it as element size.
+
+ * trans-decl.c (check_constant_initializer,
+ gfc_emit_parameter_debug_info): New functions.
+ (gfc_generate_module_vars, gfc_generate_function_code): Emit
+ PARAMETERs and unreferenced variables with initializers into
+ debug info.
+
+ * gfortran.h (gfc_use_list): Add where field.
+ * module.c (use_locus): New static variable.
+ (gfc_match_use): Set it.
+ (gfc_use_module): Copy it to gfc_use_list's where field.
+ * trans-decl.c (gfc_generate_module_vars): Call gfc_trans_use_stmts.
+ (gfc_trans_use_stmts): Set backend locus before calling the debug
+ hook. Allow non-VAR_DECLs to be created even for non-external
+ module. Don't emit anything so far for renames from different
+ modules.
+
+ PR fortran/24790
+ * trans-decl.c (create_function_arglist): Set DECL_BY_REFERENCE on
+ PARM_DECLs with pointer or reference type.
+
+ * trans-decl.c (gfc_build_qualified_array): Build non-flat
+ array type for debug info purposes.
+
+ PR fortran/29635
+ PR fortran/23057
+ * f95-lang.c (gfc_init_ts): New function.
+ (LANG_HOOKS_INIT_TS): Define.
+ * gfortran.h (gfc_use_rename): New type, moved from module.c.
+ (gfc_get_use_rename): New macro, moved from module.c.
+ (gfc_use_list): New type.
+ (gfc_get_use_list): New macro.
+ (gfc_namespace): Add use_stmts field.
+ (gfc_free_use_stmts): New prototype.
+ * Make-lang.in (fortran/trans-decl.o): Depend on debug.h.
+ * module.c (gfc_use_rename, gfc_get_use_rename): Moved to
+ gfortran.h.
+ (gfc_use_module): Chain the USE statement info to
+ ns->use_stmts.
+ (gfc_free_use_stmts): New function.
+ * symbol.c (gfc_free_namespace): Call gfc_free_use_stmts.
+ * trans.h (struct module_htab_entry): New type.
+ (gfc_find_module, gfc_module_add_decl): New functions.
+ * trans.c (gfc_generate_module_code): Create NAMESPACE_DECL for
+ the module, adjust DECL_CONTEXTs of module procedures and
+ call gfc_module_add_decl for them.
+ * trans-common.c (build_common_decl): Set DECL_IGNORED_P
+ on the common variable.
+ (create_common): Set DECL_IGNORED_P for use associated vars.
+ * trans-decl.c: Include debug.h.
+ (gfc_get_symbol_decl): Set DECL_IGNORED_P on use_assoc vars from
+ modules.
+ (build_function_decl): Allow current_function_decl's context
+ to be a NAMESPACE_DECL.
+ (module_htab, cur_module): New variables.
+ (module_htab_do_hash, module_htab_eq, module_htab_decls_hash,
+ module_htab_decls_eq, gfc_find_module, gfc_module_add_decl): New
+ functions.
+ (gfc_create_module_variable): Adjust DECL_CONTEXTs of module
+ variables and types and call gfc_module_add_decl for them.
+ (gfc_generate_module_vars): Temporarily set cur_module.
+ (gfc_trans_use_stmts): New function.
+ (gfc_generate_function_code): Call it.
+ (gfc_generate_block_data): Set DECL_IGNORED_P on decl.
+ * trans-types.c (gfc_get_derived_type): Adjust DECL_CONTEXT
+ and TYPE_CONTEXT of module derived types.
+
+2008-08-28 Daniel Kraft <d@domob.eu>
+
+ * gfortran.h (enum expr_t): New value `EXPR_COMPCALL'.
+ (gfc_get_typebound_proc): New macro.
+ (struct gfc_expr): New union-member `compcall' for EXPR_COMPCALL.
+ (enum gfc_exec_op): New value `EXEC_COMPCALL'.
+ (gfc_find_typebound_proc): New argument.
+ (gfc_copy_ref), (gfc_match_varspec): Made public.
+ * decl.c (match_procedure_in_type): Use gfc_get_typebound_proc.
+ * expr.c (free_expr0), (gfc_copy_expr): Handle EXPR_COMPCALL.
+ (gfc_copy_ref): Made public and use new name.
+ (simplify_const_ref): Use new name of gfc_copy_ref.
+ (simplify_parameter_variable): Ditto.
+ (gfc_simplify_expr): gcc_unreachable for EXPR_COMPCALL.
+ * match.c (match_typebound_call): New method.
+ (gfc_match_call): Allow for CALL's to typebound procedures.
+ * module.c (binding_passing), (binding_overriding): New variables.
+ (expr_types): Add EXPR_COMPCALL.
+ (mio_expr): gcc_unreachable for EXPR_COMPCALL.
+ (mio_typebound_proc), (mio_typebound_symtree): New methods.
+ (mio_f2k_derived): Handle type-bound procedures.
+ * primary.c (gfc_match_varspec): Made public and parse trailing
+ references to type-bound procedures; new argument `sub_flag'.
+ (gfc_match_rvalue): New name and argument of gfc_match_varspec.
+ (match_variable): Ditto.
+ * resolve.c (update_arglist_pass): New method.
+ (update_compcall_arglist), (resolve_typebound_static): New methods.
+ (resolve_typebound_call), (resolve_compcall): New methods.
+ (gfc_resolve_expr): Handle EXPR_COMPCALL.
+ (resolve_code): Handle EXEC_COMPCALL.
+ (resolve_fl_derived): New argument to gfc_find_typebound_proc.
+ (resolve_typebound_procedure): Ditto and removed not-implemented error.
+ * st.c (gfc_free_statement): Handle EXEC_COMPCALL.
+ * symbol.c (gfc_find_typebound_proc): New argument `noaccess' and
+ implement access-checking.
+ * trans-expr.c (gfc_apply_interface_mapping_to_expr): gcc_unreachable
+ on EXPR_COMPCALL.
+ * trans-intrinsic.c (gfc_conv_intrinsic_bound): Add missing break.
+ * trans-openmp.c (gfc_trans_omp_array_reduction): Add missing
+ intialization of ref->type.
+
+2008-08-28 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/37253
+ * module.c (ab_attribute,attr_bits,mio_symbol_attribute): Take care of
+ saving attr.procedure and attr.proc_ptr to the module file.
+
+2008-08-25 Daniel Kraft <d@domob.eu>
+
+ * gfortran.h (gfc_find_component): Add new arguments.
+ * parse.c (parse_derived_contains): Check if the derived-type containing
+ the CONTAINS section is SEQUENCE/BIND(C).
+ * resolve.c (resolve_typebound_procedure): Check for name collision with
+ components.
+ (resolve_fl_derived): Check for name collision with inherited
+ type-bound procedures.
+ * symbol.c (gfc_find_component): New arguments `noaccess' and `silent'.
+ (gfc_add_component): Adapt for new arguments.
+ * primary.c (match_varspec), (gfc_match_structure_constructor): Ditto.
+
2008-08-24 Tobias Burnus <burnus@net-b.de>
PR fortran/37201