+2009-11-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ * resolve.c (is_illegal_recursion): Return false if sym is program.
+
+2009-11-06 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ * resolve.c (check_typebound_override): Remove duplicate "in" in error
+ message.
+
+2009-11-05 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/41918
+ * fortran/trans-decl.c: Silence intent(out) warning for derived type
+ dummy arguments with default initialization.
+
+2009-11-05 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/41556
+ * interface.c (matching_typebound_op,gfc_extend_assign): Handle CLASS
+ variables.
+
+2009-11-05 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/41556
+ PR fortran/41873
+ * resolve.c (resolve_function,resolve_call): Prevent abstract interfaces
+ from being called, but allow deferred type-bound procedures with
+ abstract interface.
+
+2009-11-04 Tobias Burnus <burnus@gcc.gnu.org>
+ Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/41556
+ PR fortran/41937
+ * interface.c (gfc_check_operator_interface): Handle CLASS arguments.
+ * resolve.c (resolve_allocate_expr): Handle allocatable components of
+ CLASS variables.
+
+2009-11-04 Richard Guenther <rguenther@suse.de>
+
+ * options.c (gfc_post_options): Rely on common code processing
+ LTO options. Only enable -fwhole-file here.
+
+2009-11-03 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/41907
+ * trans-expr.c (gfc_conv_procedure_call): Fix presence check
+ for optional arguments.
+
+2009-11-01 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/41872
+ * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
+ autodeallocated allocatable scalars at the end of scope.
+ (gfc_generate_function_code): Fix indention.
+ * trans-expr.c (gfc_conv_procedure_call): For allocatable
+ scalars, fix calling by reference and autodeallocating
+ of intent out variables.
+
+2009-11-01 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/41850
+ * trans-expr.c (gfc_conv_procedure_call): Deallocate intent-out
+ variables only when present. Remove unneccessary present check.
+
+2009-10-29 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/41777
+ * trans-expr.c (gfc_conv_procedure_call,gfc_conv_expr_reference):
+ Use for generic EXPR_FUNCTION the attributes of the specific
+ function.
+
+2009-10-29 Janne Blomqvist <jb@gcc.gnu.org>
+
+ PR fortran/41860
+ * resolve.c (apply_default_init_local): Treat -fno-automatic as if
+ var was saved.
+
+2009-10-28 Rafael Avila de Espindola <espindola@google.com>
+
+ * trans-common.c (create_common): Set TREE_PUBLIC to false on
+ fake variables.
+
+2009-10-26 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/41714
+ * trans.c (gfc_trans_code): Remove call to
+ 'tree_annotate_all_with_location'. Location should already be set.
+ * trans-openmp.c (gfc_trans_omp_workshare): Ditto.
+ * trans-stmt.c (gfc_trans_allocate): Do correct data initialization for
+ CLASS variables with SOURCE tag, plus some cleanup.
+
+2009-10-24 Janus Weil <janus@gcc.gnu.org>
+ Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/41784
+ * module.c (load_derived_extensions): Skip symbols which are not being
+ loaded.
+
+2009-10-24 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/41772
+ * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Stop'extent'
+ from going negative.
+
+2009-10-23 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/41800
+ * trans-expr.c (gfc_trans_scalar_assign): Handle CLASS variables.
+
+2009-10-23 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/41758
+ * match.c (conformable_arrays): Move to resolve.c.
+ (gfc_match_allocate): Don't resolve SOURCE expr yet, and move some
+ checks to resolve_allocate_expr.
+ * resolve.c (conformable_arrays): Moved here from match.c.
+ (resolve_allocate_expr): Moved some checks here from gfc_match_allocate.
+ (resolve_code): Resolve SOURCE tag for ALLOCATE expressions.
+
+2009-10-22 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/41781
+ * resolve.c (resolve_codes): Don't clear 'cs_base' for BLOCK constructs,
+ to make sure labels are treated correctly.
+ * symbol.c (gfc_get_st_label): Create labels in the right namespace.
+ For BLOCK constructs go into the parent namespace.
+
+2009-10-21 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/41706
+ PR fortran/41766
+ * match.c (select_type_set_tmp): Set flavor for temporary.
+ * resolve.c (resolve_class_typebound_call): Correctly resolve actual
+ arguments.
+
+2009-10-20 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/41706
+ * resolve.c (resolve_arg_exprs): New function.
+ (resolve_class_compcall): Call the above.
+ (resolve_class_typebound_call): The same.
+
+2009-10-19 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/41586
+ * parse.c (parse_derived): Correctly set 'alloc_comp' and 'pointer_comp'
+ for CLASS variables.
+ * trans-array.c (structure_alloc_comps): Handle deallocation and
+ nullification of allocatable scalar components.
+ * trans-decl.c (gfc_get_symbol_decl): Remember allocatable scalars for
+ automatic deallocation.
+ (gfc_trans_deferred_vars): Automatically deallocate allocatable scalars.
+
+2009-10-19 Tobias Burnus <burnus@net-b.de>
+ Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/41755
+ * symbol.c (gfc_undo_symbols): Add NULL check.
+ * match.c (gfc_match_equivalence): Add check for
+ missing comma.
+
+2009-10-19 Richard Guenther <rguenther@suse.de>
+
+ PR fortran/41494
+ * trans-expr.c (gfc_trans_scalar_assign): Do not call
+ gfc_evaluate_now.
+
+2009-10-17 Janus Weil <janus@gcc.gnu.org>
+ Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/41608
+ * decl.c (gfc_match_data_decl): Add BT_CLASS for undefined type
+ and empty type errors.
+ * parse.c (gfc_build_block_ns): Only set recursive if parent ns
+ has a proc_name.
+
+ PR fortran/41629
+ PR fortran/41618
+ PR fortran/41587
+ * gfortran.h : Add class_ok bitfield to symbol_attr.
+ * decl.c (build_sym): Set attr.class_ok if dummy, pointer or
+ allocatable.
+ (build_struct): Use gfc_try 't' to carry errors past the call
+ to encapsulate_class_symbol.
+ (attr_decl1): For a CLASS object, apply the new attribute to
+ the data component.
+ * match.c (gfc_match_select_type): Set attr.class_ok for an
+ assigned selector.
+ * resolve.c (resolve_fl_variable_derived): Check a CLASS object
+ is dummy, pointer or allocatable by testing the class_ok and
+ the use_assoc attribute.
+
+2009-10-16 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/41719
+ * resolve.c (resolve_ordinary_assign): Reject intrinsic assignments
+ to polymorphic variables.
+
+2009-10-16 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/41648
+ PR fortran/41656
+ * trans-expr.c (select_class_proc): Convert the expression for the
+ vindex, carried on the first member of the esym list.
+ * gfortran.h : Add the vindex field to the esym_list structure.
+ and eliminate the class_object field.
+ * resolve.c (check_class_members): Remove the setting of the
+ class_object field.
+ (vindex_expr): New function.
+ (get_class_from_expr): New function.
+ (resolve_class_compcall): Call the above to find the ultimate
+ class or derived component. If derived, do not generate the
+ esym list. Add and expression for the vindex to the esym list
+ by calling the above.
+ (resolve_class_typebound_call): The same.
+
+2009-10-15 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/41712
+ * intrinsic.texi: Explicitly state that ETIME and DTIME take
+ REAL(4) arguments. Fix nearby typographically errors where
+ /leq was used instead of \leq.
+
+2009-10-13 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/41581
+ * decl.c (encapsulate_class_symbol): Add new component '$size'.
+ * resolve.c (resolve_allocate_expr): Move CLASS handling to
+ gfc_trans_allocate.
+ (resolve_class_assign): Replaced by gfc_trans_class_assign.
+ (resolve_code): Remove calls to resolve_class_assign.
+ * trans.c (gfc_trans_code): Use new function gfc_trans_class_assign.
+ * trans-expr.c (get_proc_ptr_comp): Fix a memory leak.
+ (gfc_conv_procedure_call): For CLASS dummies, set the
+ $size component.
+ (gfc_trans_class_assign): New function, replacing resolve_class_assign.
+ * trans-stmt.h (gfc_trans_class_assign): New prototype.
+ * trans-stmt.c (gfc_trans_allocate): Use correct size when allocating
+ CLASS variables. Do proper initialization. Move some code here from
+ resolve_allocate_expr.
+
+2009-10-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/38439
+ * io.c (check_format): Fix locus for error messages and fix a comment.
+
+2009-10-11 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/41583
+ * decl.c (hash_value): New function.
+ (gfc_match_derived_decl): Call it.
+
+2009-10-09 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/41585
+ * decl.c (build_struct): Bugfix for CLASS components.
+
+2009-10-09 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/41582
+ * decl.c (encapsulate_class_symbol): Save attr.abstract.
+ * resolve.c (resolve_allocate_expr): Reject class allocate
+ without typespec or source=.
+ * trans-stmt.c (gfc_trans_allocate): Change gfc_warning
+ into gfc_error for "not yet implemented".
+
+2009-10-09 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/41579
+ * gfortran.h (gfc_select_type_stack): New struct, to be used as a stack
+ for SELECT TYPE statements.
+ (select_type_stack): New global variable.
+ (type_selector,select_type_tmp): Removed.
+ * match.c (type_selector,type_selector): Removed.
+ (select_type_stack): New variable, serving as a stack for
+ SELECT TYPE statements.
+ (select_type_push,select_type_set_tmp): New functions.
+ (gfc_match_select_type): Call select_type_push.
+ (gfc_match_type_is): Call select_type_set_tmp.
+ * parse.c (select_type_pop): New function.
+ (parse_select_type_block): Call select_type_pop.
+ * symbol.c (select_type_insert_tmp): New function.
+ (gfc_find_sym_tree): Call select_type_insert_tmp.
+
+2009-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * arith.c (arith_power): Use mpc_pow_z.
+ * gfortran.h (HAVE_mpc_pow_z): Define.
+
+2009-10-07 Daniel Kraft <d@domob.eu>
+
+ PR fortran/41615
+ * resolve.c (resolve_contained_fntype): Clarify error message for
+ invalid assumed-length character result on module procedures.
+
+2009-10-07 Janus Weil <janus@gcc.gnu.org>
+
+ * expr.c (gfc_check_pointer_assign): Do the correct type checking when
+ CLASS variables are involved.
+ * match.c (gfc_match_select_type): Parse associate-name in SELECT TYPE
+ statements, and set up a local namespace for the SELECT TYPE block.
+ * parse.h (gfc_build_block_ns): New prototype.
+ * parse.c (parse_select_type_block): Return from local namespace to its
+ parent after SELECT TYPE block.
+ (gfc_build_block_ns): New function for setting up the local namespace
+ for a BLOCK construct.
+ (parse_block_construct): Use gfc_build_block_ns.
+ * resolve.c (resolve_select_type): Insert assignment for the selector
+ variable, in case an associate-name is given, and put the SELECT TYPE
+ statement inside a BLOCK.
+ (resolve_code): Call resolve_class_assign after checking the assignment.
+ * symbol.c (gfc_find_sym_tree): Moved some code here from
+ gfc_get_ha_sym_tree.
+ (gfc_get_ha_sym_tree): Moved some code to gfc_find_sym_tree.
+
+2009-10-07 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/41613
+ * resolve.c (check_class_members): Reset compcall.assign.
+
+2009-10-05 Paul Thomas <pault@gcc.gnu.org>
+
+ * trans-expr.c (select_class_proc): New function.
+ (conv_function_val): Deal with class methods and call above.
+ * symbol.c (gfc_type_compatible): Treat case where both ts1 and
+ ts2 are BT_CLASS.
+ gfortran.h : Add structure gfc_class_esym_list and include in
+ the structure gfc_expr.
+ * module.c (load_derived_extensions): New function.
+ (read_module): Call above.
+ (write_dt_extensions): New function.
+ (write_derived_extensions): New function.
+ (write_module): Use the above.
+ * resolve.c (resolve_typebound_call): Add a function expression
+ for class methods. This carries the chain of symbols for the
+ dynamic dispatch in select_class_proc.
+ (resolve_compcall): Add second, boolean argument to indicate if
+ a function is being handled.
+ (check_members): New function.
+ (check_class_members): New function.
+ (resolve_class_compcall): New function.
+ (resolve_class_typebound_call): New function.
+ (gfc_resolve_expr): Call above for component calls..
+
+2009-10-05 Daniel Kraft <d@domob.eu>
+
+ PR fortran/41403
+ * trans-stmt.c (gfc_trans_goto): Ignore statement list on assigned goto
+ if it is present.
+
+2009-10-03 Richard Guenther <rguenther@suse.de>
+
+ * options.c (gfc_post_options): Handle -flto and -fwhopr.
+
+2009-10-02 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/41479
+ * trans-decl.c (gfc_init_default_dt): Check for presence of
+ the argument only if it is optional or in entry master.
+ (init_intent_out_dt): Ditto; call gfc_init_default_dt
+ for all derived types with initializers.
+
+2009-10-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR fortran/33197
+ * gfortran.h (HAVE_mpc_arc): Define.
+ * simplify.c (gfc_simplify_acos): Handle complex acos.
+ (gfc_simplify_acosh): Likewise for acosh.
+ (gfc_simplify_asin): Likewise for asin.
+ (gfc_simplify_asinh): Likewise for asinh.
+ (gfc_simplify_atan): Likewise for atan.
+ (gfc_simplify_atanh): Likewise for atanh.
+
+2009-10-01 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/41515
+ * decl.c (do_parm): Call add_init_expr_to_sym.
+
+2009-09-30 Dennis Wassel <dennis.wassel@gmail.com>
+
+ * gcc/fortran/trans-array.c (gfc_trans_array_bound_check): Improved
+ bounds checking error messages. (gfc_conv_array_ref): Likewise.
+ (gfc_conv_ss_startstride): Likewise.
+
+2009-09-30 Janus Weil <janus@gcc.gnu.org>
+
+ * resolve.c (check_typebound_baseobject): Don't check for
+ abstract types for CLASS.
+ (resolve_class_assign): Adapt for RHS being a CLASS.
+ * trans-intrinsic.c (gfc_conv_associated): Add component ref
+ if expr is a CLASS.
+
+2009-09-30 Janus Weil <janus@gcc.gnu.org>
+
+ * check.c (gfc_check_same_type_as): New function for checking
+ SAME_TYPE_AS and EXTENDS_TYPE_OF.
+ * decl.c (encapsulate_class_symbol): Set ABSTRACT attribute for class
+ container, if the contained type has it. Add an initializer for the
+ class container.
+ (add_init_expr_to_sym): Handle BT_CLASS.
+ (vindex_counter): New counter for setting vindices.
+ (gfc_match_derived_decl): Set vindex for all derived types, not only
+ those which are being extended.
+ * expr.c (gfc_check_assign_symbol): Handle NULL initialization of class
+ pointers.
+ * gfortran.h (gfc_isym_id): New values GFC_ISYM_SAME_TYPE_AS and
+ GFC_ISYM_EXTENDS_TYPE_OF.
+ (gfc_type_is_extensible): New prototype.
+ * intrinsic.h (gfc_check_same_type_as): New prototype.
+ * intrinsic.c (add_functions): Add SAME_TYPE_AS and EXTENDS_TYPE_OF.
+ * primary.c (gfc_expr_attr): Handle CLASS-valued functions.
+ * resolve.c (resolve_structure_cons): Handle BT_CLASS.
+ (type_is_extensible): Make non-static and rename to
+ 'gfc_type_is_extensible.
+ (resolve_select_type): Renamed type_is_extensible.
+ (resolve_class_assign): Handle NULL pointers.
+ (resolve_fl_variable_derived): Renamed type_is_extensible.
+ (resolve_fl_derived): Ditto.
+ * trans-expr.c (gfc_trans_subcomponent_assign): Handle NULL
+ initialization of class pointer components.
+ (gfc_conv_structure): Handle BT_CLASS.
+ * trans-intrinsic.c (gfc_conv_same_type_as,gfc_conv_extends_type_of):
+ New functions.
+ (gfc_conv_intrinsic_function): Handle SAME_TYPE_AS and EXTENDS_TYPE_OF.
+
+2009-09-30 Janus Weil <janus@gcc.gnu.org>
+
+ * gfortran.h (type_selector, select_type_tmp): New global variables.
+ * match.c (type_selector, select_type_tmp): New global variables,
+ used for SELECT TYPE statements.
+ (gfc_match_select_type): Better error handling. Remember selector.
+ (gfc_match_type_is): Create temporary variable.
+ * module.c (ab_attribute): New value 'AB_IS_CLASS'.
+ (attr_bits): New string.
+ (mio_symbol_attribute): Handle 'is_class'.
+ * resolve.c (resolve_select_type): Insert pointer assignment statement,
+ to assign temporary to selector.
+ * symbol.c (gfc_get_ha_sym_tree): Replace selector by a temporary
+ in SELECT TYPE statements.
+
+2009-09-30 Janus Weil <janus@gcc.gnu.org>
+
+ * dump-parse-tree.c (show_code_node): Renamed 'alloc_list'.
+ * gfortran.h (gfc_code): Rename 'alloc_list'. Add member 'ts'.
+ (gfc_expr_to_initialize): New prototype.
+ * match.c (alloc_opt_list): Correctly check type compatibility.
+ Renamed 'alloc_list'.
+ (dealloc_opt_list): Renamed 'alloc_list'.
+ * resolve.c (expr_to_initialize): Rename to 'gfc_expr_to_initialize'
+ and make it non-static.
+ (resolve_allocate_expr): Set vindex for CLASS variables correctly.
+ Move initialization code to gfc_trans_allocate. Renamed 'alloc_list'.
+ (resolve_allocate_deallocate): Renamed 'alloc_list'.
+ (check_class_pointer_assign): Rename to 'resolve_class_assign'. Change
+ argument type. Adjust to work with ordinary assignments.
+ (resolve_code): Call 'resolve_class_assign' for ordinary assignments.
+ Renamed 'check_class_pointer_assign'.
+ * st.c (gfc_free_statement): Renamed 'alloc_list'.
+ * trans-stmt.c (gfc_trans_allocate): Renamed 'alloc_list'. Handle
+ size determination and initialization of CLASS variables. Bugfix for
+ ALLOCATE statements with default initialization and SOURCE block.
+ (gfc_trans_deallocate): Renamed 'alloc_list'.
+
+2009-09-30 Paul Thomas <pault@gcc.gnu.org>
+
+ * trans-expr.c (gfc_conv_procedure_call): Convert a derived
+ type actual to a class object if the formal argument is a
+ class.
+
+2009-09-30 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/40996
+ * decl.c (build_struct): Handle allocatable scalar components.
+ * expr.c (gfc_add_component_ref): Correctly set typespec of expression,
+ after inserting component reference.
+ * match.c (gfc_match_type_is,gfc_match_class_is): Make sure that no
+ variables are being used uninitialized.
+ * primary.c (gfc_match_varspec): Handle CLASS array components.
+ * resolve.c (resolve_select_type): Transform EXEC_SELECT_TYPE to
+ EXEC_SELECT.
+ * trans-array.c (structure_alloc_comps,gfc_trans_deferred_array):
+ Handle allocatable scalar components.
+ * trans-expr.c (gfc_conv_component_ref): Ditto.
+ * trans-types.c (gfc_get_derived_type): Ditto.
+
+2009-09-30 Janus Weil <janus@gcc.gnu.org>
+
+ * decl.c (encapsulate_class_symbol): Modify names of class container
+ components by prefixing with '$'.
+ (gfc_match_end): Handle COMP_SELECT_TYPE.
+ * expr.c (gfc_add_component_ref): Modify names of class container
+ components by prefixing with '$'.
+ * gfortran.h (gfc_statement): Add ST_SELECT_TYPE, ST_TYPE_IS and
+ ST_CLASS_IS.
+ (gfc_case): New field 'ts'.
+ (gfc_exec_op): Add EXEC_SELECT_TYPE.
+ (gfc_type_is_extension_of): New prototype.
+ * match.h (gfc_match_select_type,gfc_match_type_is,gfc_match_class_is):
+ New prototypes.
+ * match.c (match_derived_type_spec): New function.
+ (match_type_spec): Use 'match_derived_type_spec'.
+ (match_case_eos): Modify error message.
+ (gfc_match_select_type): New function.
+ (gfc_match_case): Modify error message.
+ (gfc_match_type_is): New function.
+ (gfc_match_class_is): Ditto.
+ * parse.h (gfc_compile_state): Add COMP_SELECT_TYPE.
+ * parse.c (decode_statement): Handle SELECT TYPE, TYPE IS and CLASS IS
+ statements.
+ (next_statement): Handle ST_SELECT_TYPE.
+ (gfc_ascii_statement): Handle ST_SELECT_TYPE, ST_TYPE_IS, ST_CLASS_IS.
+ (parse_select_type_block): New function.
+ (parse_executable): Handle ST_SELECT_TYPE.
+ * resolve.c (resolve_deallocate_expr): Handle BT_CLASS. Modify names of
+ class container components by prefixing with '$'.
+ (resolve_allocate_expr): Ditto.
+ (resolve_select_type): New function.
+ (gfc_resolve_blocks): Handle EXEC_SELECT_TYPE.
+ (check_class_pointer_assign): Modify names of class container
+ components by prefixing with '$'.
+ (resolve_code): Ditto.
+ * st.c (gfc_free_statement): Ditto.
+ * symbol.c (gfc_type_is_extension_of): New function.
+ (gfc_type_compatible): Use 'gfc_type_is_extension_of', plus a bugfix.
+ * trans.c (gfc_trans_code): Handel EXEC_SELECT_TYPE.
+
+2009-09-30 Janus Weil <janus@gcc.gnu.org>
+ Paul Thomas <pault@gcc.gnu.org>
+
+ * check.c (gfc_check_move_alloc): Arguments don't have to be arrays.
+ The second argument needs to be type-compatible with the first (not the
+ other way around, which makes a difference for CLASS entities).
+ * decl.c (encapsulate_class_symbol): New function.
+ (build_sym,build_struct): Handle BT_CLASS, call
+ 'encapsulate_class_symbol'.
+ (gfc_match_decl_type_spec): Remove warning, use BT_CLASS.
+ (gfc_match_derived_decl): Set vindex;
+ * expr.c (gfc_add_component_ref): New function.
+ (gfc_copy_expr,gfc_check_pointer_assign,gfc_check_assign_symbol):
+ Handle BT_CLASS.
+ * dump-parse-tree.c (show_symbol): Print vindex.
+ * gfortran.h (bt): New basic type BT_CLASS.
+ (symbol_attribute): New field 'is_class'.
+ (gfc_typespec): Remove field 'is_class'.
+ (gfc_symbol): New field 'vindex'.
+ (gfc_get_ultimate_derived_super_type): New prototype.
+ (gfc_add_component_ref): Ditto.
+ * interface.c (gfc_compare_derived_types): Pointer equality check
+ moved here from gfc_compare_types.
+ (gfc_compare_types): Handle BT_CLASS and use
+ gfc_type_compatible.
+ * match.c (gfc_match_allocate,gfc_match_deallocate,gfc_match_call):
+ Handle BT_CLASS.
+ * misc.c (gfc_clear_ts): Removed is_class.
+ (gfc_basic_typename,gfc_typename): Handle BT_CLASS.
+ * module.c (bt_types,mio_typespec): Handle BT_CLASS.
+ (mio_symbol): Handle vindex.
+ * primary.c (gfc_match_varspec,gfc_variable_attr): Handle BT_CLASS.
+ * resolve.c (find_array_spec,check_typebound_baseobject):
+ Handle BT_CLASS.
+ (resolve_ppc_call,resolve_expr_ppc): Don't call 'gfc_is_proc_ptr_comp'
+ inside 'gcc_assert'.
+ (resolve_deallocate_expr,resolve_allocate_expr): Handle BT_CLASS.
+ (check_class_pointer_assign): New function.
+ (resolve_code): Handle BT_CLASS, call check_class_pointer_assign.
+ (resolve_fl_var_and_proc,type_is_extensible,resolve_fl_variable_derived,
+ resolve_fl_variable): Handle BT_CLASS.
+ (check_generic_tbp_ambiguity): Add special case.
+ (resolve_typebound_procedure,resolve_fl_derived): Handle BT_CLASS.
+ * symbol.c (gfc_get_ultimate_derived_super_type): New function.
+ (gfc_type_compatible): Handle BT_CLASS.
+ * trans-expr.c (conv_parent_component_references): Handle CLASS
+ containers.
+ (gfc_conv_initializer): Handle BT_CLASS.
+ * trans-types.c (gfc_typenode_for_spec,gfc_get_derived_type):
+ Handle BT_CLASS.
+
+2009-09-29 Daniel Kraft <d@domob.eu>
+
+ PR fortran/39626
+ * gfortran.h (enum gfc_statement): Add ST_BLOCK and ST_END_BLOCK.
+ (struct gfc_namespace): Convert flags to bit-fields and add flag
+ `construct_entities' for use with BLOCK constructs.
+ (enum gfc_exec_code): Add EXEC_BLOCK.
+ (struct gfc_code): Add namespace field to union for EXEC_BLOCK.
+ * match.h (gfc_match_block): New prototype.
+ * parse.h (enum gfc_compile_state): Add COMP_BLOCK.
+ * trans.h (gfc_process_block_locals): New prototype.
+ (gfc_trans_deferred_vars): Made public, new prototype.
+ * trans-stmt.h (gfc_trans_block_construct): New prototype.
+ * decl.c (gfc_match_end): Handle END BLOCK correctly.
+ (gfc_match_intent): Error if inside of BLOCK.
+ (gfc_match_optional), (gfc_match_value): Ditto.
+ * match.c (gfc_match_block): New routine.
+ * parse.c (decode_statement): Handle BLOCK statement.
+ (case_exec_markers): Add ST_BLOCK.
+ (case_end): Add ST_END_BLOCK.
+ (gfc_ascii_statement): Handle ST_BLOCK and ST_END_BLOCK.
+ (parse_spec): Check for statements not allowed inside of BLOCK.
+ (parse_block_construct): New routine.
+ (parse_executable): Parse BLOCKs.
+ (parse_progunit): Disallow CONTAINS in BLOCK constructs.
+ * resolve.c (is_illegal_recursion): Find real container procedure and
+ don't get confused by BLOCK constructs.
+ (resolve_block_construct): New routine.
+ (gfc_resolve_blocks), (resolve_code): Handle EXEC_BLOCK.
+ * st.c (gfc_free_statement): Handle EXEC_BLOCK statements.
+ * trans-decl.c (saved_local_decls): New static variable.
+ (add_decl_as_local): New routine.
+ (gfc_finish_var_decl): Add variable as local if inside BLOCK.
+ (gfc_trans_deferred_vars): Make public.
+ (gfc_process_block_locals): New routine.
+ * trans-stmt.c (gfc_trans_block_construct): New routine.
+ * trans.c (gfc_trans_code): Handle EXEC_BLOCK statements.
+
+2009-09-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/35862
+ * io.c (format_token): Add enumerators for rounding format specifiers.
+ (format_lex): Tokenize the rounding format specifiers.
+ (gfc_match_open): Enable rounding modes in OPEN statement.
+
+2009-09-28 Richard Henderson <rth@redhat.com>
+
+ * f95-lang.c (gfc_init_builtin_functions): Update call to
+ build_common_builtin_nodes.
+
+2009-09-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * simplify.c (gfc_simplify_acos, gfc_simplify_acosh,
+ gfc_simplify_asin, gfc_simplify_asinh, gfc_simplify_atan,
+ gfc_simplify_atanh): Fix error message.
+
+2009-09-24 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/41459
+ * error.c(gfc_warning_now): Move warnings_are_errors test to
+ after actual emitting of the warning.
+ * parse.c (next_free): Improve error locus printing.
+ (next_fixed): Change gfc_warn to gfc_warning_now, and improve
+ locus reporting.
+
+2009-09-16 Michael Matz <matz@suse.de>
+
+ PR fortran/41212
+ * trans.h (struct lang_type): Remove nontarget_type member.
+ * trans.c (gfc_add_modify): Don't access it.
+ * trans-decl.c (gfc_finish_var_decl): Don't allocate and set it,
+ instead set DECL_RESTRICTED_P on affected decls.
+
+2009-09-14 Richard Henderson <rth@redhat.com>
+
+ * f95-lang.c (gfc_init_builtin_functions): Update call to
+ build_common_builtin_nodes.
+ (gfc_maybe_initialize_eh): Don't call
+ default_init_unwind_resume_libfunc.
+
+2009-09-13 Richard Guenther <rguenther@suse.de>
+ Rafael Avila de Espindola <espindola@google.com>
+
+ * f95-lang.c (gfc_maybe_initialize_eh): Do not init
+ eh_personality_libfunc.
+
+2009-09-11 Janus Weil <janus@gcc.gnu.org>
+
+ 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 <kargl@gcc.gnu.org>
+
+ 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 <rguenther@suse.de>
+
+ 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 <tkoenig@gcc.gnu.org>
PR fortran/41197