OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [fortran/] [ChangeLog-2011] - Rev 824

Go to most recent revision | Compare with Previous | Blame | View Log

2011-12-31  Thomas König  <tkoenig@gcc.gnu.org>

        PR fortran/51502
        * expr.c (gfc_check_vardef_context):  When determining
        implicit pure status, also check for variable definition
        context.  Walk up namespaces until a procedure is
        found to reset the implict pure attribute.
        * resolve.c (gfc_implicit_pure):  Walk up namespaces
        until a procedure is found.

2011-12-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

        * dependency.c (gfc_dep_compare_functions):  Document
        new behavior for REALs and complex.  Add comment to cases
        where only INTEGERs are handled.  Compare REAL and COMPLEX
        constants, returning 0 and -2 only.  Add assert to make
        sure that only integer constants are compared.

2011-12-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51605
        * parse.c (gfc_fixup_sibling_symbols): Regard FL_LABEL as
        local symbol.

2011-12-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51605
        * match.c (gfc_match_select_type): Handle
        scalar polymophic coarrays.
        (select_type_set_tmp, ): Ditto; avoid segfault if !class_ok.
        * primary.c (gfc_match_rvalue): Avoid segfault if !class_ok.
        * resolve.c (resolve_select_type): Ditto.
        (resolve_assoc_var): Fix setting the TARGET attribute for
        polymorphic selectors which are pointers.

2011-12-19  Tobias Burnus  <burnus@net-b.de>

        * check.c (coarray_check): Add class ref if needed.
        * resolve.c (resolve_fl_var_and_proc,
        resolve_fl_derived0, resolve_symbol): Fix checking
        for BT_CLASS.

2011-12-15  Paul Thomas  <pault@gcc.gnu.org>

        * trans-expr.c (gfc_walk_function_expr): Detect elemental
        procedure components as well as elemental procedures.
        * trans-array.c (gfc_conv_procedure_call): Ditto.
        * trans-decl.c (gfc_trans_deferred_vars): Correct erroneous
        break for class pointers to continue.

2011-12-15  Toon Moene  <toon@moene.org>

        PR fortran/51310
        * resolve.c (build_default_init_expr): Allow non-allocatable,
        non-compile-time-constant-shape arrays to have a default
        initializer.
        * invoke.texi: Delete the restriction on automatic arrays not
        being initialized by -finit-<type>=<constant>.

2011-12-15  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51550
        PR fortran/47545
        PR fortran/49050
        PR fortran/51075        
        * resolve.c (resolve_fl_derived0): Print not-implemented error
        for deferred-length character components.

2011-12-15  Tobias Burnus  <burnus@net-b.de>

        * primary.c (gfc_match_varspec): Match array spec for
        polymorphic coarrays.
        (gfc_match_rvalue): If a symbol of unknown flavor has a
        codimension, mark it as a variable.
        * simplify.c (gfc_simplify_image_index): Directly call
        simplify_cobound.
        * trans-intrinsic.c (trans_this_image): Fix handling of
        corank = 1 arrays.

2011-12-15  Jakub Jelinek  <jakub@redhat.com>

        PR debug/51517
        * trans-decl.c (gfc_get_symbol_decl): Don't set DECL_INITAL on span.
        (gfc_trans_deferred_vars): Instead add its runtime initialization
        here.

2011-12-11  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50923
        * trans-decl.c (generate_local_decl): Set TREE_NO_WARNING only
        if the front end has printed a warning.
        (gfc_generate_function_code): Fix unset-result warning.

2011-12-11  Paul Thomas  <pault@gcc.gnu.org>
        Tobias Burnus  <burnus@gcc.gnu.org>

        PR fortran/41539
        PR fortran/43214
        PR fortran/43969
        PR fortran/44568
        PR fortran/46356
        PR fortran/46990
        PR fortran/49074
        * interface.c (symbol_rank): Return the rank of the _data
        component of class objects.
        (compare_parameter): Also compare the derived type of the class
        _data component for type mismatch.  Similarly, return 1 if the
        formal and _data ranks match.
        (compare_actual_formal): Do not compare storage sizes for class
        expressions. It is an error if an actual class array, passed to
        a formal class array is not full.
        * trans-expr.c (gfc_class_data_get, gfc_class_vptr_get,
        gfc_vtable_field_get, gfc_vtable_hash_get, gfc_vtable_size_get,
        gfc_vtable_extends_get, gfc_vtable_def_init_get,
        gfc_vtable_copy_get): New functions for class API.
        (gfc_conv_derived_to_class): For an array reference in an
        elemental procedure call retain the ss to provide the
        scalarized array reference. Moved in file.
        (gfc_conv_class_to_class): New function.
        (gfc_conv_subref_array_arg): Use the type of the
        class _data component as a basetype.
        (gfc_conv_procedure_call): Ensure that class array expressions
        have both the _data reference and an array reference. Use 
        gfc_conv_class_to_class to handle class arrays for elemental
        functions in scalarized loops, class array elements and full
        class arrays. Use a call to gfc_conv_subref_array_arg in order
        that the copy-in/copy-out for passing class arrays to derived
        type arrays occurs correctly.
        (gfc_conv_expr): If it is missing, add the _data component
        between a class object or component and an array reference.
        (gfc_trans_class_array_init_assign): New function.
        (gfc_trans_class_init_assign): Call it for array expressions.
        * trans-array.c (gfc_add_loop_ss_code): Do not use a temp for
        class scalars since their size will depend on the dynamic type.
        (build_class_array_ref): New function.
        (gfc_conv_scalarized_array_ref): Call build_class_array_ref.
        (gfc_array_init_size): Add extra argument, expr3, that represents
        the SOURCE argument. If present,use this for the element size.
        (gfc_array_allocate): Also add argument expr3 and use it when
        calling gfc_array_init_size.
        (structure_alloc_comps): Enable class arrays.
        * class.c (gfc_add_component_ref): Carry over the derived type
        of the _data component.
        (gfc_add_class_array_ref): New function.
        (class_array_ref_detected): New static function.
        (gfc_is_class_array_ref): New function that calls previous.
        (gfc_is_class_scalar_expr): New function.
        (gfc_build_class_symbol): Throw not implemented error for
        assumed size class arrays.  Remove error that prevents
        CLASS arrays.
        (gfc_build_class_symbol): Prevent pointer/allocatable conflict.
        Also unset codimension.
        (gfc_find_derived_vtab): Make 'copy' elemental and set the
        intent of the arguments accordingly.: 
        * trans-array.h: Update prototype for gfc_array_allocate.
        * array.c (gfc_array_dimen_size): Return failure if class expr.
        (gfc_array_size): Likewise.
        * gfortran.h: New prototypes for gfc_add_class_array_ref,
        gfc_is_class_array_ref and gfc_is_class_scalar_expr.
        * trans-stmt.c (trans_associate_var): Exclude class targets
        from test. Move the allocation of the _vptr to an earlier time
        for class objects.
        (trans_associate_var): Assign the descriptor directly for class
        arrays.
        (gfc_trans_allocate): Add expr3 to gfc_array_allocate arguments.
        Convert array element references into sections. Do not invoke
        gfc_conv_procedure_call, use gfc_trans_call instead.
        * expr.c (gfc_get_corank): Fix for BT_CLASS.
        (gfc_is_simply_contiguous): Exclude class from test.
        * trans.c (gfc_build_array_ref): Include class array refs.
        * trans.h: Include prototypes for class API functions that are
        new in trans-expr. Define GFC_DECL_CLASS(node).
        * resolve.c (check_typebound_baseobject ): Remove error for
        non-scalar base object.
        (resolve_allocate_expr): Ensure that class _data component is
        present. If array, call gfc_expr_to_intialize.
        (resolve_select): Remove scalar error for SELECT statement as a
        temporary measure.
        (resolve_assoc_var): Update 'target' (aka 'selector') as
        needed. Ensure that the target expression has the right rank.
        (resolve_select_type): Ensure that target expressions have a
        valid locus.
        (resolve_allocate_expr, resolve_fl_derived0): Fix for BT_CLASS.
        * trans-decl.c (gfc_get_symbol_decl): Set GFC_DECL_CLASS, where
        appropriate.
        (gfc_trans_deferred_vars): Get class arrays right.
        * match.c(select_type_set_tmp): Add array spec to temporary.
        (gfc_match_select_type): Allow class arrays.
        * check.c (array_check): Ensure that class arrays have refs.
        (dim_corank_check, dim_rank_check): Retrun success if class.
        * primary.c (gfc_match_varspec): Fix for class arrays and
        co-arrays. Make sure that class _data is present.
        (gfc_match_rvalue): Handle class arrays.
        *trans-intrinsic.c (gfc_conv_intrinsic_size): Add class array
        reference.
        (gfc_conv_allocated): Add _data component to class expressions.
        (gfc_add_intrinsic_ss_code): ditto.
        * simplify.c (simplify_cobound): Fix for BT_CLASS.
        (simplify_bound): Return NULL for class arrays.
        (simplify_cobound): Obtain correct array_spec. Use cotype as
        appropriate. Use arrayspec for bounds.

2011-12-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/50690
        * frontend-passes.c (in_omp_workshare):  New variable.
        (cfe_expr_0):  Don't eliminiate common function if it would put
        the variable immediately into a WORKSHARE construct.
        (optimize_namespace):  Set in_omp_workshare.
        (gfc_code_walker):  Keep track of OMP PARALLEL and OMP WORKSHARE
        constructs.

2011-12-10  Tobias Burnus  <burnus@net-b.de>

        * trans-decl.c (add_argument_checking): Fix syntax.

2011-12-10  Tobias Burnus  <burnus@net-b.de>
            Kai Tietz  <ktietz@redhat.com>

        * trans-decl.c (add_argument_checking): Check ts.deferred earlier.
        * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Use %ld with long.

2011-12-08  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50815
        * trans-decl.c (add_argument_checking): Skip bound checking
        for deferred-length strings.

2011-12-08  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51378
        * symbol.c (gfc_find_component): Fix access check of parent
        components.

2011-12-08  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51407
        * io/transfer.c (require_numeric_type): New function.
        (formatted_transfer_scalar_read, formatted_transfer_scalar_write):
        Use it, allow BOZ edit descriptors with F2008.

2011-12-08  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51448
        * fortran/trans-array.c (get_std_lbound): Fix handling of
        conversion functions.

2011-12-08  Toon Moene  <toon@moene.org>

        PR fortran/51310
        * invoke.texi: Itemize the cases for which
        -finit-<type>=<constant> doesn't work.

2011-12-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51435
        * expr.c (gfc_has_default_initializer): Fix handling of
        DT with initialized pointer components.

2011-12-05  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/51338
        * dependency.c (are_identical_variables):  Handle case where
        end fields of substring references are NULL.

2011-12-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51383
        * resolve.c (find_array_spec): Use ref->u.c.component
        directly without starting from ts.u.derived.

2011-12-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48887
        * match.c (select_type_set_tmp): Don't set allocatable/pointer
        attribute.
        * class.c (gfc_build_class_symbol): Handle
        attr.select_type_temporary.

2011-12-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50684
        * check.c (variable_check): Fix intent(in) check.

2011-12-03  Tobias Burnus  <burnus@net-b.de>

        * check.c (gfc_check_move_alloc): Allow nonpolymorphic
        FROM with polymorphic TO.
        * trans-intrinsic.c (conv_intrinsic_move_alloc): Handle
        nonpolymorphic FROM with polymorphic TO.

2011-12-01  Janne Blomqvist  <jb@gcc.gnu.org>

        * module.c (dt_lower_string): Make static.
        (dt_upper_string): Likewise.

2011-12-01  Janne Blomqvist  <jb@gcc.gnu.org>

        PR fortran/25708
        * module.c (parse_string): Read string into resizable array
        instead of parsing twice and seeking.
        (peek_atom): New implementation avoiding seeks.
        (require_atom): Save and set column and line explicitly for error
        handling.

2011-12-01  Janne Blomqvist  <jb@gcc.gnu.org>

        * misc.c (gfc_open_file): Don't call stat.

2011-11-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/40958
        * module.c (prev_module_line):  New variable.
        (prev_module_column):  New variable.
        (prev_character):  New variable.
        (module_char):  Update the new variables.
        (module_unget_char):  New function.
        (parse_string):  Use module_unget_char.
        (parse_integer):  Likewise.
        (parse_name):  Likewise.

2011-11-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51306
        PR fortran/48700
        * check.c (gfc_check_move_alloc): Make sure that from/to
        are both polymorphic or neither.
        * trans-intrinsic.c (conv_intrinsic_move_alloc): Cleanup,
        generate inline code.

2011-11-28  Tobias Burnus  <burnus@net-b.de>
            Steven G. Kargl  <kargl@gcc.gnu.org>

        PR fortran/51308
        * symbol.c (check_conflict): Ignore BIND(C) + PARAMETER
        conflicts for ISO_C_BINDING variables.
        (gen_special_c_interop_ptr): Don't mark c_ptr_null/c_funptr_null
        as SAVE.

2011-11-25  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (set_loop_bounds): Remove dead conditions.

2011-11-25  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/51250
        PR fortran/43829
        * trans-array.c (gfc_trans_create_temp_array): Get dimension from
        the right gfc_ss struct.

2011-11-25  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50408
        * trans-decl.c (gfc_get_module_backend_decl): Also copy
        ts.u.derived from the gsym if the ts.type is BT_CLASS.
        (gfc_get_extern_function_decl): Copy also the backend_decl
        for the symbol's ts.u.{derived,cl} from the gsym.
        * trans-types.c (gfc_copy_dt_decls_ifequal): Directly
        return if "from" and "to" are the same.

2011-11-25  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51302
        * trans-stmt.c (gfc_trans_simple_do): Add a fold_convert.

2011-11-24  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51218
        * resolve.c (pure_subroutine): If called subroutine is
        impure, unset implicit_pure.
        (resolve_function): Move impure check to simplify code.

2011-11-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51207
        * class.c (gfc_find_derived_vtab): Mark __def_init as PARAMETER
        and hence as TREE_READONLY; add subroutine attribute to
        __copy_ procedure.

        PR fortran/50640
        * trans.h (GFC_DECL_PUSH_TOPLEVEL): New DECL_LANG_FLAG_7.
        * trans-decl.c (gfc_get_symbol_decl): Mark __def_init and vtab as
        GFC_DECL_PUSH_TOPLEVEL.
        (gfc_generate_function_code): If GFC_DECL_PUSH_TOPLEVEL, push it there.
        (build_function_decl): Push __copy_ procedure to the toplevel.

2011-11-16  Tobias Burnus  <burnus@net-b.de>

        PR fortran/39427
        PR fortran/37829
        * decl.c (match_data_constant, match_data_constant, variable_decl,
        gfc_match_decl_type_spec, access_attr_decl,
        check_extended_derived_type, gfc_match_derived_decl,
        gfc_match_derived_decl, gfc_match_derived_decl) Modified to deal
        with DT constructors.
        * gfortran.h (gfc_find_dt_in_generic,
        gfc_convert_to_structure_constructor): New function prototypes.
        * interface.c (check_interface0, check_interface1,
        gfc_search_interface): Ignore DT constructors in generic list.
        * match.h (gfc_match_structure_constructor): Update prototype.
        * match.c (match_derived_type_spec): Ensure that one uses the DT
        not the generic function.
        * module.c (MOD_VERSION): Bump.
        (dt_lower_string, dt_upper_string): New functions.
        (find_use_name_n, find_use_operator, compare_true_names,
        find_true_name, add_true_name, fix_mio_expr, load_needed,
        read_module, write_dt_extensions, write_symbol): Changes to deal with
        different symtree vs. sym names.
        (create_derived_type): Create also generic procedure.
        * parse.c (gfc_fixup_sibling_symbols): Don't regard DT and generic
        function as the same.
        * primary.c (gfc_convert_to_structure_constructor): New function.
        (gfc_match_structure_constructor): Restructured; calls
        gfc_convert_to_structure_constructor.
        (build_actual_constructor, gfc_match_rvalue): Update for DT generic
        functions.
        * resolve.c (resolve_formal_arglist, resolve_structure_cons,
        is_illegal_recursion, resolve_generic_f, resolve_variable,
        resolve_fl_variable_derived, resolve_fl_derived0,
        resolve_symbol): Handle DT and DT generic constructors.
        * symbol.c (gfc_use_derived, gfc_undo_symbols,
        gen_special_c_interop_ptr, gen_cptr_param,
        generate_isocbinding_symbol, gfc_get_derived_super_type): Handle
        derived-types, which are hidden in the generic type.
        (gfc_find_dt_in_generic): New function
        * trans-array.c (gfc_conv_array_initializer): Replace FL_PARAMETER
        expr by actual value.
        * trans-decl.c (gfc_get_module_backend_decl, gfc_trans_use_stmts):
        Ensure that we use the DT and not the generic function.
        * trans-types.c (gfc_get_derived_type): Ensure that we use the DT
        and not the generic procedure.

2011-11-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51073
        * trans-decl.c (generate_coarray_sym_init): Handle zero-sized arrays.

2011-11-09  Tobias Burnus  <burnus@net-b.de>

        * symbol.c (clear_sym_mark, traverse_ns): Remove functions.
        (count_st_nodes, do_traverse_symtree, fill_st_vector): New functions.
        (gfc_traverse_symtree, gfc_traverse_ns): Call do_traverse_symtree.

2011-11-09  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/50016
        * gfortran.texi (Data consistency and durability): New section.

2011-11-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR fortran/50540
        * resolve.c (resolve_forall_iterators): Transform internal errors
        to normal errors.

2011-11-09  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50960
        * class.c (gfc_find_derived_vtab): Make the vtab symbols FL_PARAMETER.
        * expr.c (gfc_simplify_expr): Prevent vtabs from being replaced with
        their value.
        * resolve.c (resolve_values): Use-associated symbols do not need to
        be resolved again.
        (resolve_fl_parameter): Make sure the symbol has a value.

2011-11-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR fortran/38718
        * intrinsic.c (add_functions): Allow dreal simplification.
        * intrinsic.h (gfc_simplify_dreal): New prototype.
        * simplify.c (gfc_simplify_dreal): New function.

2011-11-09  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR fortran/21881
        * trans-types.c (gfc_get_dtype): Issue a fatal error instead of
        an internal error.

2011-11-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR fortran/50404
        * io.c (gfc_resolve_close): CLOSE requires a UNIT.

2011-11-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR fortran/50409
        * expr.c (gfc_simplify_expr): Substrings can't have negative
        length.

2011-11-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR fortran/50334
        * invoke.texi (-finit-*): Document interaction with
        -Wuninitialized.

2011-11-07  François-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR libfortran/49188
        PR libfortran/49336
        * invoke.texi: Fix documentation of fsign-zero option. Remove
        contractions.
        * intrinsic.texi: Fix ATAN2 documentation for signed zeros.
        Remove contractions.
        * gfortran.texi: Remove contractions.

2011-11-07  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50919
        * class.c (add_proc_comp): Don't add non-overridable procedures to the
        vtable.
        * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
        Don't generate a dynamic _vptr call for non-overridable procedures.

2011-11-07  Janne Blomqvist  <jb@gcc.gnu.org>

        * intrinsic.texi (MCLOCK, MCLOCK8, TIME, TIME8): Functions clock
        and time are part of the C standard library.

2011-11-06  Janus Weil  <janus@gcc.gnu.org>

        * gfortran.h (gfc_extend_expr): Modified prototype.
        * interface.c (gfc_extend_expr): Return 'match' instead of 'gfc_try'.
        Remove argument 'real_error'.
        * resolve.c (resolve_operator): Modified call to 'gfc_extend_expr'.

2011-11-06  Andrew MacLeod  <amacleod@redhat.com>
            Aldy Hernandez  <aldyh@redhat.com>

        Merged from cxx-mem-model.

        * types.def: (BT_SIZE, BT_CONST_VOLATILE_PTR, BT_FN_VOID_INT,
        BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT,
        BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR,
        BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT,
        BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT,
        BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT,
        BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT): New types.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/43829
        * trans-array.c (gfc_conv_expr_descriptor): Accept the inline intrinsic
        case in the assertion.
        * trans-intrinsic (enter_nested_loop): New function.
        (gfc_conv_intrinsic_arith): Support non-scalar cases.
        (nest_loop_dimension, walk_inline_intrinsic_arith): New functions.
        (walk_inline_intrinsic_function): Handle sum and product.
        (gfc_inline_intrinsic_function_p): Ditto.
        * trans.h (gfc_get_loopinfo): New macro.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-intrinsic.c (gfc_conv_intrinsic_arith): Introduce parent
        expression variable.  Use it.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-intrinsic.c (gfc_conv_intrinsic.c): Introduce current loop
        pointer.  Use it.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-intrinsic.c (gfc_conv_intrinsic_arith): Small argument handling
        cleanup.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-intrinsic.c (gfc_conv_intrinsic_arith): Update conditions.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

        * frontend-passes.c (cfe_register_funcs): Return early in the case
        of an inline intrinsic function.
        (optimize_binop_array_assignment): Skip optimization in the case of
        an inline intrinsic function.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

        * array.c (match_subscript): Skip whitespaces before setting locus.
        * matchexp.c (match_level_1): Ditto.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-intrinsic.c (gfc_conv_intrinsic_minmaxval): Set loop's
        temporary rank to the loop rank. Mark ss chains for multiple loop
        if necessary.  Use gfc_trans_scalarized_loop_boundary to end one loop
        and start another.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set loop's
        temporary rank to the loop rank. Mark ss chains for multiple loop
        if necessary.  Use gfc_trans_scalarized_loop_boundary to end one loop
        and start another.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Don't calculate
        offset twice in generated code.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-expr.c (gfc_conv_procedure_call): Handle temporaries for
        arguments to elemental calls.
        * trans-stmt.c (replace_ss): New function.
        (gfc_conv_elemental_dependencies): Remove temporary loop handling.
        Create a new ss for the temporary and replace the original one with it.
        Remove fake array references. Recalculate all offsets.

2011-11-04  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.h (gfc_free_ss, gfc_set_delta): New prototypes.
        * trans-array.c (gfc_free_ss): Remove forward declaration.
        Make non-static.
        (set_delta, gfc_set_delta): Remove forward declaration.
        Make non-static and rename the former to the later. Update uses.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (gfc_inline_intrinsic_function_p): Move prototype...
        * gfortran.h (gfc_inline_intrinsic_function_p): ... here.
        * dependency.c (gfc_check_argument_var_dependency): Check dependencies
        of inline intrinsics' arguments.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_preloop_setup): New pointers to outer
        dimension's ss and loop. Use them.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (outermost_loop): New function.
        (gfc_trans_array_constructor, gfc_set_vector_loop_bounds,
        gfc_add_loop_ss_code): Put generated code out of the outermost loop.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (constant_array_constructor_loop_size):
        Handle multiple loops.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (get_rank, get_loop_upper_bound_for_array):
        New functions.
        (gfc_trans_array_constructor): Handle multiple loops.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_loopinfo): New field parent.
        * trans-array.c (gfc_cleanup_loop): Free nested loops.
        (gfc_add_ss_to_loop): Set nested_loop's parent loop.
        (gfc_trans_array_constructor): Update assertion.
        (gfc_conv_loop_setup): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_add_loop_ss_code): Skip non-nestedmost ss.
        Call recursively gfc_add_loop_ss_code for all the nested loops.
        (gfc_conv_ss_startstride): Only get the descriptor for the outermost
        ss. Call recursively gfc_conv_ss_startstride for all the nested loops.
        (set_loop_bounds): Call recursively for all the nested loops.
        (set_delta): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_loopinfo): New fields nested and next.
        * trans-array.c (gfc_add_ss_to_loop): Update list of nested list if
        ss has non-null nested_ss field.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_create_temp_array): Loop over the parents.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (get_array_ref_dim, get_scalarizer_dim_for_array_dim): 
        Rename the former to the latter and loop over the parents.
        (innermost_ss): New function.
        (get_array_ref_dim_for_loop_dim): New function.
        (gfc_trans_create_temp_array): Use get_scalarizer_dim_for_array_dim.
        (set_loop_bounds): Use get_array_dim_for_loop_dim).

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss): New field nested_ss.
        * trans-expr.c (gfc_advance_se_ss_chain): Update assertion.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (set_vector_loop_bounds): Loop over the parents.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_array_constructor): Loop over the parents.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_set_loop_bounds_from_array_spec): Loop over the
        parents.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss): New field parent.
        * trans-array.c (gfc_trans_scalarizing_loops): Skip clearing if a
        parent exists.
        * trans-expr.c (gfc_advance_se_ss_chain): Move to parent ss at the
        end of the chain.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.h (gfc_trans_create_temp_array): Remove loop argument.
        * trans-array.c (gfc_trans_create_temp_array): Ditto.  Get loop from ss.
        Update reference to loop.  Remove loop argument.
        (gfc_trans_array_constructor, gfc_conv_loop_setup): Update calls to
        gfc_trans_create_temp_array.
        * trans-expr.c (gfc_conv_procedure_call): Ditto.
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
        * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
        Set loop before calling gfc_trans_create_temp_array.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_create_temp_array): New variable total_dim.
        Set total_dim to loop's rank. Replace usages of loop's rank.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_array_constructor, trans_array_constructor):
        Rename the former to the later.  Get loop from ss.
        Remove loop argument.
        (gfc_add_loop_ss_code): Update call.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_set_vector_loop_bounds): Get loop from ss.
        Remove loop argument.
        (gfc_add_loop_ss_code): Update call.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss): New field loop.
        * trans-array.c (set_ss_loop): New function.
        (gfc_add_ss_to_loop): Call set_ss_loop.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss_info): New field refcount.
        * trans-array.c (free_ss_info): Decrement refcount. Return early if
        still non-zero.
        (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss): Increment
        refcount.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_create_temp_array): Move invariant condition
        out of the containing loop. 

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_conv_loop_setup, gfc_trans_create_temp_array):
        Move specloop arrays clearing from the former to the latter.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (set_loop_bounds): Separate the beginning of
        gfc_conv_loop_setup into a function of its own.
        (set_delta): Separate the end of gfc_conv_loop_setup into a function
        of its own.
        (gfc_conv_loop_setup): Call set_loop_bounds and set delta.
        (set_loop_bounds, set_delta, gfc_conv_loop_setup): Make loopspec a
        pointer to the specloop field from the loop struct.

2011-11-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50933
        * interface.c (gfc_compare_derived_types): Fix check for BIND(C).

2011-11-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50960
        * trans-decl.c (gfc_finish_var_decl): Mark PARAMETER as TREE_READONLY.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
        gfc_ss::where into gfc_ss_info.
        * trans-array.c (gfc_add_loop_ss_code):
        Update reference chains.
        * trans-stmt.c (gfc_trans_where_assign, gfc_trans_where_3): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
        gfc_ss::useflags into gfc_ss_info.
        * trans-array.c (gfc_mark_ss_chain_used, gfc_trans_preloop_setup,
        gfc_trans_scalarizing_loops, gfc_trans_scalarized_boundary):
        Update reference chains.
        * trans-expr.c (gfc_conv_procedure_call): Ditto.
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
        gfc_ss::data::info into gfc_ss_info::data and remove empty union
        gfc_ss::data.
        * trans-array.c (gfc_free_ss, gfc_trans_create_temp_array,
        gfc_trans_constant_array_constructor, gfc_trans_array_constructor,
        gfc_set_vector_loop_bounds, gfc_add_loop_ss_code,
        gfc_conv_ss_descriptor, gfc_trans_array_bound_check,
        gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
        add_array_offset, gfc_trans_preloop_setup,
        gfc_trans_scalarized_boundary, gfc_conv_section_startstride,
        gfc_conv_ss_startstride, gfc_could_be_alias,
        gfc_conv_loop_setup, gfc_conv_expr_descriptor,
        gfc_alloc_allocatable_for_assignment, gfc_walk_array_ref):
        Update reference chains and factor them where possible.
        * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg,
        gfc_conv_procedure_call, gfc_trans_subarray_assign): Updata reference
        chains.
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
        * trans-io.c (transfer_array_component): Ditto.
        * trans-stmt.c (gfc_conv_elemental_dependencies,
        gfc_trans_pointer_assign_need_temp): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct
        gfc_ss::data::temp into gfc_ss_info::data.
        * trans-array.c (gfc_get_temp_ss, gfc_conv_loop_setup): Update reference
        chains.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss, struct gfc_ss_info): Move member struct
        gfc_ss::data::scalar into newly created union gfc_ss_info::data,
        and rename subfield expr to value.
        * trans-array.c (gfc_add_loop_ss_code, gfc_conv_array_index_offset,
        gfc_conv_expr_descriptor): Update reference chains.
        * trans-const.c (gfc_conv_constant): Ditto.
        * trans-expr.c (gfc_conv_expr): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss, struct gfc_ss_info): Move field
        string_length from the former struct to the latter.
        * trans-array.c
        (gfc_get_temp_ss, gfc_trans_array_constructor, gfc_add_loop_ss_code,
        gfc_conv_ss_descriptor, gfc_conv_scalarized_array_ref,
        gfc_conv_resolve_dependencies, gfc_conv_loop_setup,
        gfc_conv_expr_descriptor): Update references to string_length and
        factor common reference chains where possible.
        * trans-const.c (gfc_conv_constant): Ditto.
        * trans-expr.c (gfc_conv_variable, gfc_conv_subref_array_arg,
        gfc_conv_expr): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss, struct gfc_ss_info): Move field expr from
        the former struct to the latter.
        * trans-array.c
        (gfc_get_array_ss, gfc_get_scalar_ss,
        gfc_trans_constant_array_constructor, gfc_trans_array_constructor,
        gfc_add_loop_ss_code, gfc_conv_ss_descriptor,
        gfc_trans_array_bound_check, gfc_conv_array_index_offset,
        gfc_conv_scalarized_array_ref, gfc_conv_ss_startstride,
        gfc_could_be_alias, gfc_conv_resolve_dependencies,
        gfc_conv_loop_setup, gfc_conv_expr_descriptor,
        gfc_alloc_allocatable_for_assignment): Update references to expr and
        factor common reference chains where possible.
        * trans-const.c (gfc_conv_constant): Ditto.
        * trans-expr.c (gfc_conv_variable, gfc_conv_procedure_call,
        gfc_conv_array_constructor_expr, gfc_conv_expr,
        gfc_conv_expr_reference): Ditto.
        * trans-intrinsic.c (trans_this_image, gfc_conv_intrinsic_bound,
        gfc_conv_intrinsic_cobound, gfc_conv_intrinsic_funcall,
        gfc_add_intrinsic_ss_code): Ditto.
        * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss_info): New struct.
        (gfc_get_ss_info): New macro.
        (struct gfc_ss): Move type field to struct gfc_ss_info.
        Add an info field of type gfc_ss_info.
        * trans-array.c (free_ss_info): New function.
        (gfc_free_ss): Call free_ss_info.
        (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss):
        Allocate gfc_ss_info field.
        (gfc_get_array_ss, gfc_get_temp_ss, gfc_get_scalar_ss,
        gfc_set_vector_loop_bounds, gfc_add_loop_ss_code,
        gfc_conv_array_index_offset, gfc_trans_preloop_setup,
        gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
        gfc_conv_ss_startstride, gfc_conv_resolve_dependencies,
        gfc_conv_loop_setup, transposed_dims, gfc_conv_expr_descriptor,
        gfc_walk_elemental_function_args): Update references to type.
        * trans-const.c (gfc_conv_constant): Factor common reference chains
        and update reference to type.
        * trans-expr.c (gfc_conv_procedure_call, gfc_trans_assignment_1):
        Update reference to type.
        (gfc_conv_array_constructor_expr, gfc_conv_expr,
        gfc_conv_expr_reference): Ditto. Factor common reference chains.
        * trans-intrinsic.c (walk_inline_intrinsic_transpose): Update references
        to type
        * trans-stmt.c (gfc_trans_where_assign): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss, struct gfc_array_info): Move shape field
        from the former struct to the latter.
        * trans-array.c (gfc_conv_ss_startstride, gfc_conv_loop_setup):
        Update field references.
        * trans-expr.c (gfc_trans_subarray_assign): Update field references
        and factor common reference chains.
        * trans-io.c (transfer_array_component): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_array_info): Move dim and dimen fields...
        (struct gfc_ss): ... here.  Remove gfc_ss::data::temp::dimen field.
        * trans-array.c (gfc_conv_loop_setup): Remove temp_ss dim array
        initialization.
        (gfc_get_temp_ss): Initialize dim and dimen.
        (gfc_free_ss, gfc_get_array_ss, gfc_get_temp_ss,
        gfc_set_loop_bounds_from_array_spec, get_array_ref_dim,
        gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
        gfc_set_vector_loop_bounds, gfc_conv_scalarized_array_ref,
        gfc_trans_preloop_setup, gfc_conv_ss_startstride,
        gfc_conv_resolve_dependencies, gfc_conv_loop_setup, transposed_dims,
        gfc_conv_expr_descriptor, gfc_alloc_allocatable_for_assignment,
        gfc_walk_array_ref): Update field references.
        * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call):
        Ditto.
        * trans-intrinsic.c (walk_inline_intrinsic_transpose): Ditto.
        * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans.h (struct gfc_ss_info, struct gfc_array_info):
        Rename the former to the latter.
        * trans-array.c (gfc_get_array_ss, gfc_trans_allocate_array_storage,
        get_array_ref_dim, gfc_trans_create_temp_array,
        gfc_trans_constant_array_constructor, gfc_set_vector_loop_bounds,
        gfc_conv_array_index_offset, gfc_conv_scalarized_array_ref,
        add_array_offset, gfc_trans_preloop_setup, gfc_conv_section_startstride,
        gfc_conv_ss_startstride, gfc_conv_loop_setup, transposed_dims,
        gfc_conv_expr_descriptor): Update all uses.
        * trans-expr.c (gfc_conv_subref_array_arg, gfc_conv_procedure_call):
        Ditto.
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer,
        walk_inline_intrinsic_transpose): Ditto.
        * trans-stmt.c (gfc_conv_elemental_dependencies,
        gfc_trans_pointer_assign_need_temp): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (dim_ok, transposed_dims): Rename the former to the
        latter.  Change argument type.  Invert return value.
        (gfc_conv_expr_descriptor): Update calls.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (get_array_ref_dim): Change argument type and name.
        Obtain previous argument from the new argument in the body.
        (gfc_trans_create_temp_arry, gfc_conv_loop_setup): Update calls.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_set_vector_loop_bounds, set_vector_loop_bounds):
        Rename the former to the latter.  Change type and name of argument.
        Get previous argument from the new one.
        (gfc_add_loop_ss_code): Update call.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.h (gfc_trans_create_temp_array): Replace info argument
        with ss argument.
        * trans-array.c (gfc_trans_create_temp_array): Ditto. Get info from ss.
        (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to
        gfc_trans_create_temp_array.
        * trans-expr.c (gfc_conv_procedure_call): Ditto.
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Ditto.
        * trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_array_bound_check): Use ss argument
        to get name.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_array_bound_check,
        trans_array_bound_check): Rename the former to the latter.
        Replace descriptor argument with ss argument.  Get descriptor from ss.
        (gfc_conv_array_index_offset, conv_array_index_offset): Rename the
        former to the latter.  Update call to trans_array_bound_check.
        Replace info argument with ss argument.  Get info from ss.
        (gfc_conv_scalarized_array_ref): Update call to conv_array_index_offset.
        (add_array_offset): Ditto

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_constant_array_constructor,
        trans_constant_array_constructor): Rename the former to the latter.
        Don't set the rank of the temporary for the loop.  Remove then unused
        loop argument.
        (gfc_trans_array_constructor): Update call.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_scalarizing_loops): Stop loop before end
        marker, not after it.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_conv_loop_setup): Also skip temporary arrays.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_conv_ss_startstride): Access array bounds along
        array dimensions instead of loop dimensions.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_preloop_setup): Assertify one condition.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_walk_array_ref): Skip coarray dimensions.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (get_array_ref_dim): Remove redundant condition.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_preloop_setup): Move common code...
        (add_array_offset): ...into that new function.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_preloop_setup): Use loop's dimension instead
        of array's dimention. Check that it is indeed the same.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_preloop_setup): Remove redundant assertion.
        Special case outermost loop.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_preloop_setup): Factor loop index
        initialization.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_preloop_setup): Move code earlier.

2011-11-03  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_trans_preloop_setup): Move array reference
        initialisation earlier. Factor subsequent array references.

2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * Makef-lang.in (gfortranspec.o): Pass SHLIB instead of SHLIB_LINK.

2011-10-30  Steven G. Kargl  <kargl@gcc.gnu.org>

        PR fortran/50573
        * check.c (gfc_check_dshift): Update argument checking for BOZ.
        Update checking SHIFT against BITSIZE of I or J.
        * intrinsic.texi: Update docs for DSHIFTL and DSHIFTR.

2011-10-28  Steven G. Kargl  <kargl@gcc.gnu.org>

        * check.c (gfc_check_atan_2): Typo in comment.
        (gfc_check_nearest): If 's' is constant, check that it is not 0.
        * simplify.c (simplify_dshift, gfc_simplify_ibclr, gfc_simplify_ibits,
        gfc_simplify_ibset, simplify_shift, gfc_simplify_ishftc,
        gfc_simplify_nearest): Remove dead code.

2011-10-23  Steven G. Kargl  <kargl@gcc.gnu.org>

        * simplify.c (simplify_transformation_to_array): Fix memory leak.

2011-10-20  Steven G. Kargl  <kargl@gcc.gnu.org>

        PR fortran/50821
        * check.c (gfc_check_ishftc): Check args are constant before 
        extracting the integer.

2011-10-20  Steven G. Kargl  <kargl@gcc.gnu.org>

        PR fortran/50514
        * check.c (less_than_bitsize1): Check |shift| <= bit_size(i).
        (gfc_check_ishftc):  Check |shift| <= bit_size(i) and check
        that size is positive.

2011-10-20  Steven G. Kargl  <kargl@gcc.gnu.org>

        PR fortran/50524
        * resolve.c (resolve_ref): Check return value of resolve_substring().

2011-10-20  Steven G. Kargl  <kargl@gcc.gnu.org>

        * io.c (match_dt_format): Match a user-defined operator or a kind
        type prefixed string.

2011-10-19  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47023
        * check.c (gfc_check_sizeof): Reject procedures as argument of SIZEOF.
        * intrinsinc.texi (SIZEOF): Document it.
        (STORAGE_SIZE): Fix special characters. Fix line breaks.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/50420
        * trans.c (gfc_build_array_ref): If type is not an array, check that
        there is nothing to do, and do nothing.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/50420
        * trans-types.c (gfc_build_array_type): Don't force lower bound to one
        in the deferred case.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/50420
        * simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays.
        Don't set already set array ref.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

        * array.c (gfc_find_array_ref): Remove coarray-specific handling.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/50420
        * check.c (dim_corank_check): Use gfc_get_corank to get corank.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/50420
        * trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION.

        PR fortran/50420
        * trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for
        the scalarization chain initialization. 

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/50420
        * trans-intrinsic.c (walk_coarray): Allow subreferences after a
        coarray object reference.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/50420
        * trans-array.c (gfc_walk_array_ref): Allow zero rank arrays
        if they are coarrays.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.h (gfc_walk_array_ref): New prototype.
        * trans-array.c (gfc_walk_array_ref): New function, containing
        all but the beginning of gfc_walk_variable_expr's code.
        (gfc_walk_variable_expr): Use gfc_walk_array_ref.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/50420
        * trans-array.c (gfc_conv_expr_descriptor): Use loop.dimen instead of
        ndim for the descriptor's rank.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/50420
        * trans-array.c (gfc_conv_expr_descriptor): Count codimensions starting
        from zero, and add then the relevant offset (either ndim or loop.dimen)
        depending on context.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_conv_expr_descriptor): Save some horizontal space.

2011-10-18  Mikael Morin  <mikael@gcc.gnu.org>

        * trans-array.c (gfc_conv_expr_descriptor): Move ndim initialization
        earlier.

2011-10-18  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47023
        * decl.c (verify_c_interop_param): Renamed to
        'gfc_verify_c_interop_param'. Add error message for polymorphic
        arguments.
        (verify_c_interop): Renamed to 'gfc_verify_c_interop'. Reject
        polymorphic variables.
        (verify_bind_c_sym): Renamed 'verify_c_interop'.
        * gfortran.h (verify_c_interop,verify_c_interop_param): Renamed.
        * check.c (gfc_check_sizeof): Ditto.
        * resolve.c (gfc_iso_c_func_interface,resolve_fl_procedure): Ditto.
        * symbol.c (verify_bind_c_derived_type): Ditto.

2011-10-15  Tom Tromey  <tromey@redhat.com>
            Dodji Seketeli  <dodji@redhat.com>

        * cpp.c (print_line, cb_define): Adjust to avoid using internals
        of struct line_map.  Use the public API instead.

2011-10-17  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47023
        PR fortran/50752
        * primary.c (match_kind_param): Avoid segfault.

2011-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

        * frontend-passes.c (current_ns):  Make static.
        (create_var):  Note parent of newly created namespace.
        (optimize_namespace):  Don't wak sibling namespaces
        if they are EXEC_BLOCK because this is handled...
        (gfc_code_walker):  ... here.  Also walk ASSOCIATE lists.

2011-10-16  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47023
        * primary.c (match_kind_param): Detect ISO_C_BINDING kinds.
        (get_kind): Pass on 'is_iso_c' flag.
        (match_integer_constant,match_real_constant,match_logical_constant):
        Set 'ts.is_c_interop'.

2011-10-16  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50547
        * resolve.c (resolve_formal_arglist): Remove unneeded error message.
        Some reshuffling.

2011-10-15  Tobias Burnus  <burnus@net-b.de>

        * gfortran.texi (Fortran 2008 status, TS 29113 status,
        Further Interoperability of Fortran with C): Update implementation
        status, change references from TR 29113 to TS 29113.
        * intrinsic.texi (RANK): Change TR 29113 to TS 29113.
        * invoke.text (-std=): Ditto, change -std=f2008tr to -std=f2008ts.
        * lang.opt (std=): Ditto.
        * options.c (gfc_handle_option, set_default_std_flags): Ditto and
        change GFC_STD_F2008_TR to GFC_STD_F2008_TS.
        * libgfortran.h: Ditto.
        * intrinsic.c (add_functions, gfc_check_intrinsic_standard): Ditto.
        * decl.c (verify_c_interop_param): Ditto.

2011-10-14  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50570
        * expr.c (gfc_check_vardef_context): Don't throw an error on
        non-pointer assignments involving an intent(in) pointer dummy.

2011-10-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50718
        * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
        for dummy arguments with VALUE attribute.

2011-10-11  Tobias Burnus  <burnus@net-b.de>
            Janus Weil  <janus@gcc.gnu.org>

        * invoke.texi (-fwhole-file): Update wording since -fwhole-file
        is now enabled by default.

2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

        * trans-expr.c (gfc_conv_power_op): Delete old interface with two
        parallel arrays to hold standard builtin declarations, and replace
        it with a function based interface that can support creating
        builtins on the fly in the future.  Change all uses, and poison
        the old names.  Make sure 0 is not a legitimate builtin index.
        (fill_with_spaces): Ditto.
        (gfc_trans_string_copy): Ditto.
        (gfc_trans_zero_assign): Ditto.
        (gfc_build_memcpy_call): Ditto.
        (alloc_scalar_allocatable_for_assignment): Ditto.
        * trans-array.c (gfc_trans_array_constructor_value): Ditto.
        (duplicate_allocatable): Ditto.
        (gfc_alloc_allocatable_for_assignment): Ditto.
        * trans-openmp.c (gfc_omp_clause_copy_ctor): Ditto.
        (gfc_omp_clause_assign_op): Ditto.
        (gfc_trans_omp_atomic): Ditto.
        (gfc_trans_omp_do): Ditto.
        (gfc_trans_omp_task): Ditto.
        * trans-stmt.c (gfc_trans_stop): Ditto.
        (gfc_trans_sync): Ditto.
        (gfc_trans_allocate): Ditto.
        (gfc_trans_deallocate): Ditto.
        * trans.c (gfc_call_malloc): Ditto.
        (gfc_allocate_using_malloc): Ditto.
        (gfc_call_free): Ditto.
        (gfc_deallocate_with_status): Ditto.
        (gfc_deallocate_scalar_with_status): Ditto.
        * f95-lang.c (gfc_define_builtin): Ditto.
        (gfc_init_builtin_functions): Ditto.
        * trans-decl.c (create_main_function): Ditto.
        * trans-intrinsic.c (builtin_decl_for_precision): Ditto.

2011-10-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/50564
        * frontend-passes (forall_level):  New variable.
        (cfe_register_funcs):  Don't register functions if we
        are within a forall loop.
        (optimize_namespace):  Set forall_level to 0 before entry.
        (gfc_code_walker):  Increase/decrease forall_level.

2011-10-09  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50273
        * trans-common.c (translate_common): Fix -Walign-commons check.

2011-10-09  Mikael Morin  <mikael.morin@sfr.fr>

        * interface.c (check_dummy_characteristics): Count dimensions starting
        from one in diagnostic.

2011-10-09  Tobias Burnus  <burnus@net-b.de>

        * Make-lang.in (F95_PARSER_OBJS, GFORTRAN_TRANS_DEPS): Add
        dependency on iso-c-binding.def and iso-fortran-env.def.
        * module.c (import_iso_c_binding_module): Add error when
        explicitly importing a nonstandard symbol; extend standard-
        depending loading.
        * iso-c-binding.def: Add c_float128 and c_float128_complex
        integer parameters (for -std=gnu).
        * intrinsic.texi (ISO_C_Binding): Document them.
        * symbol.c (generate_isocbinding_symbol): Change macros
        to ignore GFC_STD_* data.
        * trans-types.c (gfc_init_c_interop_kinds): Ditto; make
        nonstatic and renamed from "init_c_interop_kinds".
        (gfc_init_kinds): Don't call it
        * trans-types.h (gfc_init_c_interop_kinds): Add prototype.
        * f95-lang.c (gfc_init_decl_processing): Call it.

2011-10-09  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50659
        * expr.c (replace_symbol): Only do replacement if the symbol is a dummy.

2011-10-08  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/47844
        * trans-array.c (gfc_conv_array_index_offset): Use descriptor
        stride for pointer function results.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.c (gfc_conv_expr_descriptor): Remove trailing whitespace.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.c (gfc_conv_ss_startstride): Merge two switch cases.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.c (gfc_conv_section_startstride): Remove coarray argument.
        Remove conditions on coarray.
        (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
        (gfc_conv_expr_descriptor): Ditto. Add assertions before the call.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.c (gfc_conv_section_startstride): Remove coarray_last
        argument. Remove condition on coarray_last.
        (gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
        (gfc_conv_expr_descriptor): Ditto.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.c (gfc_walk_variable_expr): Remove scalar coarray
        handling.  Don't reset array ref's corank and codimensions' types
        in the full array ref case.  Update loop upper limit.
        Remove DIMEN_THIS_IMAGE case.  Remove unnecessary conditions.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans.h (gfc_ss_info): Remove codimen field.
        * trans-array.c (gfc_get_array_ss): Don't set codimen field.
        (gfc_trans_create_temp_array): Don't set descriptor's cobounds.
        (gfc_trans_constant_array_constructor): Update loop upper limit.
        (gfc_conv_ss_startstride): Don't set codimen field.
        Don't get descriptor's cobounds.
        (gfc_walk_variable_expr): Update dimension index.
        * trans-intrinsic.c (trans_this_image, trans_image_index,
        conv_intrinsic_cobound): Don't set codimen field

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans.h (gfc_loopinfo): Remove codimen field.
        * trans-array.c (gfc_set_vector_loop_bounds,
        gfc_trans_scalarizing_loops, gfc_conv_loop_setup): Update loop upper
        limit.
        (gfc_set_loop_bounds_from_array_spec): Ditto. Remove skip on last
        codimension.
        (gfc_start_scalarized_body): Update loop lower limit.
        (gfc_conv_ss_startstride): Don't set loop's codimen field.
        (gfc_conv_loop_setup): Remove unnecessary condition.
        (gfc_conv_expr_descriptor): Don't use loop's codimen field as corank.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans.h (gfc_ss): Remove data.temp.codimen field.
        * trans-array.c (gfc_conv_resolve_dependencies,
        gfc_conv_expr_descriptor): Don't set temp's codimen field.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * resolve.c (resolve_array_ref): Set array_ref's dimen field (and the
        associated dimen_type) in the full array ref case.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-intrinsic.c (walk_coarray): New function.
        (convert_element_to_coarray_ref): Move code to walk_coarray. Remove.
        (trans-this_image, trans_image_index, conv_intrinsic_cobound):
        Use walk_coarray.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.c (gfc_conv_expr_descriptor): Add out-of-the-scalarizer
        cobounds evaluation.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.c (gfc_conv_ss_startstride): Support zero rank loop.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.c (gfc_conv_section_startstride): Move code to
        evaluate_bound.  Use evaluate_bound.
        (evaluate_bound): New function.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.c (gfc_conv_section_startstride): Update assertion to
        also accept coarrays.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.c (gfc_conv_section_startstride): Factor common
        array ref references.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.c (gfc_conv_expr_descriptor): Use codim instead of
        loop.codimen as argument to gfc_get_array_type_bounds.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.h (struct gfc_se): New flag want_coarray.
        * trans-intrinsic.c (trans_this_image, trans_image_index,
        conv_intrinsic_cobound): Set want_coarray.
        * trans_array.c (gfc_conv_expr_descriptor): Evaluate codimension
        earlier and without relying on the scalarizer.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * expr.c (gfc_get_corank): Return 0 if input expression is not a
        coarray.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.c (gfc_conv_expr_descriptor): Simplify coarray
        descriptor setup code.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * resolve.c (compare_spec_to_ref): Move coarray ref initialization
        code...
        (resolve_array_ref): ... here.

2011-10-07  Mikael Morin  <mikael.morin@sfr.fr>

        * check.c (is_coarray): Remove.
        (coarray_check): Use gfc_is_coarray.

2011-10-07  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50625
        * class.c (gfc_build_class_symbol): Fix whitespace.
        * module.c (mio_symbol): Set 'class_ok' attribute.
        * trans-decl.c (gfc_get_symbol_decl): Make sure the backend_decl has
        been built for class symbols.

2011-10-04  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/35831
        * interface.c (check_dummy_characteristics): Check the array shape.

2011-10-01  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50585
        * interface.c (get_expr_storage_size): Check if 'length' component is
        associated.

2011-09-29  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50547
        * resolve.c (resolve_formal_arglist): Fix pureness check for dummy
        functions.

        PR fortran/50553
        * symbol.c (check_conflict): Forbid TARGET attribute for statement
        functions.

2011-09-27  Jakub Jelinek  <jakub@redhat.com>

        * trans-types.c (gfc_type_for_size): Return wider type
        if no suitable narrower type has been found.
        (gfc_type_for_mode): Return NULL_TREE if gfc_type_for_size
        returned type doesn't have expected TYPE_MODE.

2011-09-26  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50515
        * resolve.c (resolve_common_blocks): Check for EXTERNAL attribute.

        PR fortran/50517
        * interface.c (gfc_compare_interfaces): Bugfix in check for result type.

2011-09-22  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/41733
        * expr.c (gfc_check_pointer_assign): Check for nonintrinsic elemental
        procedures.
        * interface.c (gfc_compare_interfaces): Rename 'intent_flag'. Check
        for PURE and ELEMENTAL attributes.
        (compare_actual_formal): Remove pureness check here.

2011-09-20  Steven G. Kargl  <kargl@gcc.gnu.org>

        * check.c (gfc_check_c_sizeof): Remove redundant word.

2011-09-20  Simon Baldwin  <simonb@google.com>

        * module.c (gfc_dump_module): Omit timestamp from output.

2011-09-17  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50403
        * symbol.c (gfc_use_derived): Fix coding style.

2011-09-15  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50401
        * resolve.c (resolve_transfer): Check if component 'ref' is defined.

        PR fortran/50403
        * symbol.c (gfc_use_derived): Check if argument 'sym' is defined.

2011-09-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34547
        PR fortran/50375
        * check.c (gfc_check_null): Allow allocatables as MOLD to NULL.
        * resolve.c (resolve_transfer): Reject NULL without MOLD.
        * interface.c (gfc_procedure_use): Reject NULL without MOLD
        if no explicit interface is known.
        (gfc_search_interface): Reject NULL without MOLD if it would
        lead to ambiguity.

2011-09-13  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50379
        * symbol.c (check_conflict): Check conflict between GENERIC and RESULT
        attributes.

2011-09-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/50327
        * frontend-passes.c (dummy_expr_callback):  New function.
        (convert_do_while):  New function.
        (optimize_namespace):  Call code walker to convert do while loops.

2011-09-11  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/35831
        PR fortran/47978
        * interface.c (check_dummy_characteristics): New function to check the
        characteristics of dummy arguments.
        (gfc_compare_interfaces,gfc_check_typebound_override): Call it here.

2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.c (gfc_trans_constant_array_constructor): Remove
        superfluous initialisation of DIM field.
        (gfc_trans_array_constructor): Assert that DIMEN field is properly set.
        (gfc_conv_expr_descriptor): Ditto.
        * trans-expr.c (gfc_conv_procedure_call): Ditto.

2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.h (gfc_get_scalar_ss): New prototype.
        * trans-array.c (gfc_get_scalar_ss): New function.
        (gfc_walk_variable_expr, gfc_walk_op_expr,
        gfc_walk_elemental_function_args): Re-use gfc_get_scalar_ss.
        * trans-expr.c (gfc_trans_subarray_assign): Ditto.
        (gfc_trans_assignment_1): Ditto.
        * trans-stmt.c (compute_inner_temp_size, gfc_trans_where_assign,
        gfc_trans_where_3): Ditto.

2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.h (gfc_get_temp_ss): New prototype.
        * trans-array.c (gfc_get_temp_ss): New function.
        (gfc_conv_resolve_dependencies): Re-use gfc_get_temp_ss.
        (gfc_conv_expr_descriptor): Ditto.
        * trans-expr.c (gfc_conv_subref_array_arg): Ditto.

2011-09-08  Mikael Morin  <mikael.morin@sfr.fr>

        * trans-array.h (gfc_get_array_ss): New prototype.
        * trans-array.c (gfc_get_array_ss): New function.
        (gfc_walk_variable_expr, gfc_walk_function_expr,
        gfc_walk_array_constructor): Re-use gfc_get_array_ss.
        * trans-expr.c (gfc_trans_subarray_assign): Ditto.
        * trans-intrinsic.c (gfc_walk_intrinsic_bound,
        gfc_walk_intrinsic_libfunc): Ditto.
        * trans-io.c (transfer_array_component): Ditto.

2011-09-08  Tobias Burnus  <burnus@net-b.de>

        PR fortran/44646
        * decl.c (gfc_match_entry, gfc_match_end): Handle COMP_DO_CONCURRENT.
        * dump-parse-tree.c (show_code_node): Handle EXEC_DO_CONCURRENT.
        * gfortran.h (gfc_exec_op): Add EXEC_DO_CONCURRENT.
        * match.c (gfc_match_critical, match_exit_cycle, gfc_match_stopcode,
        lock_unlock_statement, sync_statement, gfc_match_allocate,
        gfc_match_deallocate, gfc_match_return): Add DO CONCURRENT diagnostic.
        (gfc_match_do): Match DO CONCURRENT.
        (match_derived_type_spec, match_type_spec, gfc_free_forall_iterator,
        match_forall_iterator, match_forall_header, match_simple_forall,
        gfc_match_forall): Move up in the file.
        * parse.c (check_do_closure, parse_do_block): Handle do concurrent.
        * parse.h (gfc_compile_state): Add COMP_DO_CONCURRENT.
        * resolve.c (do_concurrent_flag): New global variable.
        (resolve_function, pure_subroutine, resolve_branch,
        gfc_resolve_blocks, resolve_code, resolve_types): Add do concurrent
        diagnostic.
        * st.c (gfc_free_statement): Handle EXEC_DO_CONCURRENT.
        * trans-stmt.c (gfc_trans_do_concurrent): New function.
        (gfc_trans_forall_1): Handle do concurrent.
        * trans-stmt.h (gfc_trans_do_concurrent): New function prototype.
        * trans.c (trans_code): Call it.
        * frontend-passes.c (gfc_code_walker): Handle EXEC_DO_CONCURRENT.

2011-09-07  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/48095
        * primary.c (gfc_match_structure_constructor): Handle parsing of
        procedure pointers components in structure constructors.
        * resolve.c (resolve_structure_cons): Check interface of procedure
        pointer components. Changed wording of some error messages.

2011-09-04  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50227
        * trans-types.c (gfc_sym_type): Check for proc_name.

2011-08-30  Tobias Burnus  <burnus@net-b.de>

        PR fortran/45044
        * trans-common.c (build_common_decl): Warn if named common
        block's size is not everywhere the same.

2011-08-30  Steven G. Kargl  <kargl@gcc.gnu.org>

        PR fortran/45170
        * trans-stmt.c (gfc_trans_allocate): Evaluate the substring.

2011-08-29  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50225
        * trans-decl.c (gfc_generate_function_code): Nullify polymorphic
        allocatable function results.

2011-08-29  Tobias Burnus  <burnus@net-b.de>

        * trans-decl.c (generate_coarray_sym_init): Use
        GFC_CAF_COARRAY_STATIC for static coarrays.

2011-08-28  Dodji Seketeli  <dodji@redhat.com>

        * scanner.c (load_file): Don't abuse LC_RENAME reason while
        (indirectly) calling linemap_add.

2011-08-26  Jakub Jelinek  <jakub@redhat.com>

        * trans-decl.c (get_proc_pointer_decl): Set DECL_TLS_MODEL
        if threadprivate.
        * symbol.c (check_conflict): Allow threadprivate attribute with
        FL_PROCEDURE if proc_pointer.

2011-08-25  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/50050
        * expr.c (gfc_free_shape): Do nothing if shape is NULL.
        (free_expr0): Remove redundant NULL shape check.
        * resolve.c (check_host_association): Ditto.
        * trans-expr.c (gfc_trans_subarray_assign): Assert that shape is
        non-NULL.
        * trans-io.c (transfer_array_component): Ditto.

2011-08-25  Tobias Burnus  <burnus@net-b.de>

        * trans-array.c (gfc_conv_descriptor_token): Add assert.
        * trans-decl.c (gfc_build_qualified_array,
        create_function_arglist): Handle assumed-shape arrays.
        * trans-expr.c (gfc_conv_procedure_call): Ditto.
        * trans-types.c (gfc_get_array_descriptor_base): Ditto, don't
        add "caf_token" to assumed-shape descriptors, new akind argument.
        (gfc_get_array_type_bounds): Pass akind.
        * trans.h (lang_decl): New elements caf_offset and token.
        (GFC_DECL_TOKEN, GFC_DECL_CAF_OFFSET): New macros.

2011-08-25  Tobias Burnus  <burnus@net-b.de>

        * trans-array.c (structure_alloc_comps): Fix for allocatable
        scalar coarray components.
        * trans-expr.c (gfc_conv_component_ref): Ditto.
        * trans-type.c (gfc_get_derived_type): Ditto.

2011-08-24  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50163
        * expr.c (check_init_expr): Return when an error occured.

2011-08-24  Joseph Myers  <joseph@codesourcery.com>

        * Make-lang.in (fortran/cpp.o): Remove explicit compilation rule.

2011-08-23  Tobias Burnus  <burnus@net-b.de>

        PR fortran/31600
        * symbol.c (gfc_add_type): Better diagnostic if redefining
        use-associated symbol.
        * module.c (gfc_use_module): Use module name as locus.

2011-08-22  Gabriel Charette  <gchare@google.com>

        * cpp.c (gfc_cpp_init): Force BUILTINS_LOCATION for tokens
        defined in cpp_define_builtins.

2011-08-22  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/50050
        * gfortran.h (gfc_clear_shape, gfc_free_shape): New prototypes.
        * expr.c (gfc_clear_shape, gfc_free_shape): New functions.
        (free_expr0): Re-use gfc_free_shape.
        * trans-expr.c (gfc_trans_subarray_assign): Ditto.
        * trans-io.c (transfer_array_component): Ditto.
        * resolve.c (check_host_association): Ditto.
        (gfc_expr_to_initialize): Don't force the rank value and free the shape
        after updating the expression. Recalculate shape and rank.
        (resolve_where_shape): Re-use gfc_clear_shape.
        * array.c (gfc_array_ref_shape): Ditto.

2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/47659
        * expr.c (gfc_check_assign): Check for type conversions when the
        right-hand side is a constant REAL/COMPLEX contstant the left-hand
        side is also REAL/COMPLEX.  Don't warn when a narrowing conversion
        for REAL does not change the value of the constant.

2011-08-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/50130
        * resolve.c (resolve_array_ref):  Don't calculate upper bound
        if the stride is zero.

2011-08-20  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/49638
        * dependency.c (gfc_dep_compare_expr): Add new result value "-3".
        (gfc_check_element_vs_section,gfc_check_element_vs_element): Handle
        result value "-3".
        * frontend-passes.c (optimize_comparison): Ditto.
        * interface.c (gfc_check_typebound_override): Ditto.

2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>

        PR fortran/50129
        * parse.c (parse_where): Undo changes after emitting an error. 

2011-08-19  Jakub Jelinek  <jakub@redhat.com>

        PR fortran/49792
        * trans-expr.c (gfc_trans_assignment_1): Set OMPWS_SCALARIZER_WS
        bit in ompws_flags only if loop.temp_ss is NULL, and clear it if
        lhs needs reallocation.
        * trans-openmp.c (gfc_trans_omp_workshare): Don't return early if
        code is NULL, emit a barrier if workshare emitted no code at all
        and NOWAIT clause isn't present.

2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>

        PR fortran/50071
        * gfortran.h (gfc_exec_op): New constant EXEC_END_NESTED_BLOCK.
        * parse.c (check_statement_label): Accept ST_END_BLOCK and
        ST_END_ASSOCIATE as valid branch target.
        (accept_statement): Change EXEC_END_BLOCK to EXEC_END_NESTED_BLOCK.
        Add EXEC_END_BLOCK code in the ST_END_BLOCK and ST_END_ASSOCIATE cases.
        * resolve.c (find_reachable_labels): Change EXEC_END_BLOCK to
        EXEC_END_NESTED_BLOCK.
        (resolve_branch): Ditto.
        (resolve_code): Add EXEC_END_NESTED_BLOCK case.
        * st.c (gfc_free_statement): Ditto.
        * trans.c (trans_code): Ditto.

2011-08-18  Mikael Morin  <mikael.morin@sfr.fr>

        PR fortran/50071
        * symbol.c (gfc_get_st_label): Use the derived type namespace when
        we are parsing a derived type definition.

2011-08-18  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * parse.c (parse_derived): Add lock_type
        checks, improve coarray_comp handling.
        * resolve.c (resolve_allocate_expr,
        resolve_lock_unlock, resolve_symbol): Fix lock_type
        constraint checks.

2011-08-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/31461
        * trans-decl.c (generate_local_decl): Warn about
        unused explicitly imported module variables/parameters.

2011-08-17  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50070
        * resolve.c (resolve_fl_variable): Reject non-constant character lengths
        in COMMON variables.

2011-08-16  Tobias Burnus  <burnus@net-b.de>
            Dominique Dhumieres  <dominiq@lps.ens.fr>

        PR fortran/50094
        * resolve.c (resolve_symbol): Fix stupid typo.

2011-08-15  Tobias Burnus  <burnus@net-b.de>

        * resolve.c (resolve_symbol): Fix coarray result-var check.

2011-08-14  Steven G. Kargl  <kargl@gcc.gnu.org>

        * module.c (use_iso_fortran_env_module):  Spell 'referrenced' correctly.

2011-08-14  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/50073
        * decl.c (check_function_name): New function, separated off from
        'variable_decl' and slightly extended.
        (variable_decl,attr_decl1): Call it.

2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * Make-lang.in (gfortran$(exeext)): Add $(EXTRA_GCC_LIBS).

2011-08-07  Janus Weil  <janus@gcc.gnu.org>
            Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/49638
        * dependency.c (are_identical_variables): For dummy arguments only
        check for equal names, not equal symbols.
        * interface.c (gfc_check_typebound_override): Add checking for rank
        and character length.

2011-08-07  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/49638
        * dependency.h (gfc_is_same_range,gfc_are_identical_variables): Remove
        two prototypes.
        * dependency.c (gfc_are_identical_variables,are_identical_variables):
        Renamed the former to the latter and made static.
        (gfc_dep_compare_expr): Renamed 'gfc_are_identical_variables', handle
        commutativity of multiplication.
        (gfc_is_same_range,is_same_range): Renamed the former to the latter,
        made static and removed argument 'def'.
        (check_section_vs_section): Renamed 'gfc_is_same_range'.
        * gfortran.h (gfc_check_typebound_override): New prototype.
        * interface.c (gfc_check_typebound_override): Moved here from ...
        * resolve.c (check_typebound_override): ... here (and renamed).
        (resolve_typebound_procedure): Renamed 'check_typebound_override'.

2011-08-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/50004
        * target-memory.c (gfc_target_expr-size): Don't clobber typespec
        for derived types.
        * simplify.c (gfc_simplify_transfer): Don't calculate source_size
        twice.

2011-08-05  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/37211
        * gfortran.h (gfc_calculate_transfer_sizes):  Add prototype.
        * target-memory.h (gfc_target_interpret_expr):  Add boolean
        argument wether to convert wide characters.
        * target-memory.c (gfc_target_expr_size):  Also return length
        of characters for non-constant expressions if these can be
        determined from the cl.
        (interpret_array):  Add argument for gfc_target_interpret_expr.
        (gfc_interpret_derived):  Likewise.
        (gfc_target_interpret_expr):  Likewise.
        * check.c:  Include target-memory.h.
        (gfc_calculate_transfer_sizes):  New function.
        (gfc_check_transfer):  When -Wsurprising is in force, calculate
        sizes and warn if result is larger than size (check moved from
        gfc_simplify_transfer).
        * simplify.c (gfc_simplify_transfer):  Use
        gfc_calculate_transfer_sizes.  Remove warning.

2011-08-04  Richard Guenther  <rguenther@suse.de>

        PR fortran/49957
        * trans-array.c (add_to_offset): New function.
        (gfc_conv_array_ref): Build the array index expression in optimally
        associated order.
        (gfc_walk_variable_expr): Adjust for the backward walk.

2011-08-02  Daniel Kraft  <d@domob.eu>

        PR fortran/49885
        * trans-array.c (gfc_trans_auto_array_allocation): Change
        gfc_start_block to gfc_init_block to avoid spurious extra-scope.

2011-08-02  Tobias Burnus  <burnus@net-b.de>

        * trans-array.c (gfc_array_allocate): Pass token to
          gfc_allocate_allocatable for -fcoarray=lib.
        * trans-stmt.c (gfc_trans_allocate): Update
        gfc_allocate_allocatable call.
        * trans.h (gfc_allocate_allocatable): Update prototype.
        (gfc_allocate_using_lib): Remove.
        * trans.c (gfc_allocate_using_lib): Make static, handle token.
        (gfc_allocate_allocatable): Ditto.

2011-08-02  Jakub Jelinek  <jakub@redhat.com>

        PR fortran/46752
        * cpp.c (cpp_define_builtins): Change _OPENMP to 201107.
        * openmp.c (gfc_free_omp_clauses): Free also final_expr.
        (OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE): Define.
        (gfc_match_omp_clauses): Handle parsing final and mergeable
        clauses.
        (OMP_TASK_CLAUSES): Allow final and mergeable clauses.
        (gfc_match_omp_taskyield): New function.
        (resolve_omp_clauses): Resolve final clause.  Allow POINTERs and
        Cray pointers in clauses other than REDUCTION.
        (gfc_match_omp_atomic): Match optional
        read/write/update/capture keywords after !$omp atomic.
        (resolve_omp_atomic): Handle all OpenMP 3.1 atomic forms.
        * dump-parse-tree.c (show_omp_node): Handle EXEC_OMP_TASKYIELD,
        print final and mergeable clauses.
        (show_code_node): Handle EXEC_OMP_TASKYIELD.
        * trans-openmp.c (gfc_trans_omp_clauses): Handle final and
        mergeable clauses.
        (gfc_trans_omp_taskyield): New function.
        (gfc_trans_omp_directive): Handle EXEC_OMP_TASKYIELD.
        (gfc_trans_omp_atomic): Handle all OpenMP 3.1 atomic forms.
        (gfc_omp_clause_copy_ctor): Handle non-allocated allocatable.
        (gfc_omp_predetermined_sharing): Adjust comment.
        * gfortran.h (gfc_statement): Add ST_OMP_TASKYIELD and
        ST_OMP_END_ATOMIC.
        (gfc_omp_clauses): Add final_expr and mergeable fields.
        (gfc_exec_op): Add EXEC_OMP_TASKYIELD.
        (gfc_omp_atomic_op): New enum typedef.
        (struct gfc_code): Add ext.omp_atomic.
        * trans.c (trans_code): Handle EXEC_OMP_TASKYIELD.
        * frontend-passes.c (gfc_code_walker): Also walk final_expr.
        * resolve.c (gfc_resolve_blocks, resolve_code): Handle
        EXEC_OMP_TASKYIELD.
        * st.c (gfc_free_statement): Likewise.
        * match.h (gfc_match_omp_taskyield): New prototype.
        * parse.c (decode_omp_directive): Handle taskyield directive.
        Handle !$omp end atomic.
        (case_executable): Add ST_OMP_TASKYIELD case.
        (gfc_ascii_statement): Handle ST_OMP_TASKYIELD.
        (parse_omp_atomic): Return gfc_statement instead of void.
        For !$omp atomic capture parse two assignments instead of
        just one and require !$omp end atomic afterwards, for
        other !$omp atomic forms just allow !$omp end atomic at the
        end.
        (parse_omp_structured_block, parse_executable): Adjust
        parse_omp_atomic callers.

2011-08-02  Tobias Burnus  <burnus@net-b.de>

        * intrinsic.c (OMP_LIB): Updated openmp_version's
        value to 201107.
        * gfortran.texi (OpenMP): Update ref to OpenMP 3.1.
        * intrinsic.texi (OpenMP Modules): Update ref to OpenMP 3.1;
        remove deleted omp_integer_kind and omp_logical_kind constants.

2011-07-31  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/49112
        * resolve.c (resolve_structure_cons): Don't do the full dt resolution,
        only call 'resolve_fl_derived0'.
        (resolve_typebound_procedures): Resolve typebound procedures of
        parent type.
        (resolve_fl_derived0): New function, which does a part of the work
        for 'resolve_fl_derived'.
        (resolve_fl_derived): Call 'resolve_fl_derived0' and do some additional
        things.

2011-07-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/48876
        * expr.c (gfc_simplify_expr):  If end of a string is less
        than zero, set it to zero.

2011-07-28  Jakub Jelinek  <jakub@redhat.com>

        PR fortran/31067
        * frontend-passes.c (optimize_minmaxloc): New function.
        (optimize_expr): Call it.

2011-07-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/45586
        * trans-types.c (gfc_get_derived_type): Ensure that pointer
        component types are marked as nonrestricted.

2011-07-27  Daniel Carrera  <dcarrera@gmail.com>

        PR fortran/49755
        * trans.c (gfc_allocate_using_malloc): Change function signature.
        Return nothing. New parameter "pointer". Eliminate temorary variables. 
        (gfc_allocate_using_lib): Ditto.
        (gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib
        and gfc_allocate_using_malloc. Do not free and then reallocate a
        variable that is already allocated.
        (gfc_likely): New function. Basedon gfc_unlikely.
        * trans-array.c (gfc_array_init_size): New parameter "descriptor_block".
        Instructions to modify the array descriptor are stored in this block
        while other instructions continue to be stored in "pblock".
        (gfc_array_allocate): Update call to gfc_array_init_size. Move the
        descriptor_block so that the array descriptor is only updated if
        the array was allocated successfully.
        Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
        * trans.h (gfc_allocate_allocatable): Change function signature.
        Function now returns void.
        (gfc_allocate_using_lib): Ditto, and new function parameter.
        (gfc_allocate_using_malloc): Ditto.
        * trans-openmp.c (gfc_omp_clause_default_ctor,
        gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call
        to gfc_allocate_allocatable with gfc_allocate_using_malloc.
        * trans-stmt.c (gfc_trans_allocate): Update function calls for
        gfc_allocate_allocatable and gfc_allocate_using_malloc.

2011-07-26  Tobias Burnus  <burnus@net-b.de>

        * trans-array.c (CAF_TOKEN_FIELD): New macro constant.
        (gfc_conv_descriptor_token): New function.
        * trans-array.h (gfc_conv_descriptor_token): New prototype.
        * trans-types.c (gfc_get_array_descriptor_base): For coarrays
        with -fcoarray=lib, append "void *token" to the array descriptor.
        (gfc_array_descriptor_base_caf): New static variable.
        * trans-expr.c (gfc_conv_procedure_call): Handle token and offset
        when passing a descriptor coarray to a nondescriptor dummy. 

2011-07-23  Tobias Burnus  <burnus@net-b.de>

        * resolve.c (resolve_symbol): Fix coarray var decl check.

2011-07-21  Daniel Carrera  <dcarrera@gmail.com>

        * trans.c (gfc_allocate_with_status): Split into two functions
        gfc_allocate_using_malloc and gfc_allocate_usig_lib.
        (gfc_allocate_using_malloc): The status parameter is now the
        actual status rather than a pointer. Code cleanup.
        (gfc_allocate_using_lib): Ditto. Add new parametrs errmsg and
        errlen. Pass these to the coarray lib.
        * trans-openmp.c (gfc_omp_clause_default_ctor): Update calls to
        gfc_allocate_allocatable.
        (gfc_omp_clause_copy_ctor): Ditto.
        (gfc_trans_omp_array_reduction): Ditto.
        * trans-stmt.c (gfc_trans_allocate): Ditto. Update call to
        gfc_allocate_using_malloc. Pass stat rather than pstat to the allocate
        fuctions. If using coarray lib, pass errmsg and errlen to the allocate
        functions. Move error checking outside the if (!gfc_array_allocate)
        block so that it also affects trees produced by gfc_array_allocate.
        * trans-array.c (gfc_array_allocate): Add new parameters errmsg
        and errlen. Replace parameter pstat by status. Code cleanup. Update
        calls to gfc_allocate_allocatable and gfc_allocate_using_malloc.
        * trans-array.h (gfc_array_allocate): Update signature of
        gfc_array_allocate.

2011-07-21  Steven G. Kargl  <kargl@gcc.gnu.org>

        * gfortran.texi: Remove a duplicate word.

2011-07-21  Tobias Burnus  <burnus@net-b.de>

        * check.c (gfc_check_present): Allow coarrays.
        * trans-array.c (gfc_conv_array_ref): Avoid casting
        when a pointer is wanted.
        * trans-decl.c (create_function_arglist): For -fcoarray=lib,
        handle hidden token and offset arguments for nondescriptor
        coarrays.
        * trans-expr.c (get_tree_for_caf_expr): New function.
        (gfc_conv_procedure_call): For -fcoarray=lib pass the
        token and offset for nondescriptor coarray dummies.
        * trans.h (lang_type): Add caf_offset tree.
        (GFC_TYPE_ARRAY_CAF_OFFSET): New macro.

2011-07-19  Tobias Burnus  <burnus@net-b.de>

        * expr.c (gfc_is_coarray): New function.
        * gfortran.h (gfc_is_coarray): New prototype.
        * interface.c (compare_parameter): Use it.

2011-07-19  Richard Guenther  <rguenther@suse.de>

        * trans-expr.c (fill_with_spaces): Use fold_build_pointer_plus.
        (gfc_trans_string_copy): Likewise.
        * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Likewise.
        * trans-types.c (gfc_get_array_descr_info): Likewise.
        * trans.c (gfc_build_array_ref): Likewise.

2011-07-19  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/49708
        * resolve.c (resolve_allocate_expr): Fix diagnostics for pointers.

2011-07-18  Tobias Burnus  <burnus@net-b.de>

        * trans-decl.c (gfc_build_qualified_array): Make coarray's
        token TYPE_QUAL_RESTRICT.

2011-07-18  Tobias Burnus  <burnus@net-b.de>

        * resolve.c (resolve_transfer): Mention defined I/O
        in the diagnostic for alloc_comp/pointer_comp.

2011-07-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/34657
        * module.c (check_for_ambiguous): Check whether the name is matches
        the current program unit.

2011-07-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/49624
        * expr.c (gfc_check_pointer_assign): Fix checking for invalid
        pointer bounds.

2011-07-16  Tobias Burnus  <burnus@net-b.de>
        
        * expr.c (gfc_ref_this_image): New function.
        (gfc_is_coindexed): Use it.
        * gfortran.h (gfc_ref_this_image): New prototype.
        * resolve.c (resolve_deallocate_expr,
        resolve_allocate_expr): Support alloc scalar coarrays.
        * trans-array.c (gfc_conv_array_ref, gfc_array_init_size,
        gfc_conv_descriptor_cosize, gfc_array_allocate,
        gfc_trans_deferred_array): Ditto.
        * trans-expr.c (gfc_conv_variable) Ditto.:
        * trans-stmt.c (gfc_trans_deallocate): Ditto.
        * trans-types.c (gfc_get_element_type, gfc_get_array_type_bounds
        gfc_get_array_descr_info): Ditto.
        * trans-decl.c (gfc_get_symbol_decl): Ditto.

2011-07-11  Jakub Jelinek  <jakub@redhat.com>

        PR fortran/49698
        * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Initialize
        inner_size to gfc_index_one_node instead of integer_one_node.

2011-07-10  Tobias Burnus  <burnus@net-b.de>

        PR fortran/49690
        * intrinsic.c (add_functions): Use BT_VOID for 2nd argument of SIGNAL.

2011-07-09  Uros Bizjak  <ubizjak@gmail.com>

        PR fortran/48926
        * expr.c (gfc_get_corank): Change return value to int.
        * gfortran.h (gfc_get_corank): Update function prototype.

2011-07-07  Mikael Morin  <mikael.morin@sfr.fr>

        PR fortran/49648
        * resolve.c (resolve_symbol): Force resolution of function result's
        array specification.

2011-07-07  Tobias Burnus  <burnus@net-b.de>

        * trans.c (gfc_allocate_with_status): Call _gfortran_caf_register
        with NULL arguments for (new) stat=/errmsg= arguments.

2011-07-06  Daniel Carrera  <dcarrera@gmail.com>

        * trans-array.c (gfc_array_allocate): Rename allocatable_array to
        allocatable. Rename function gfc_allocate_array_with_status to
        gfc_allocate_allocatable_with_status. Update function call for
        gfc_allocate_with_status.
        * trans-opemp.c (gfc_omp_clause_default_ctor): Rename function
        gfc_allocate_array_with_status to gfc_allocate_allocatable_with_status.
        * trans-stmt.c (gfc_trans_allocate): Update function call for
        gfc_allocate_with_status. Rename function gfc_allocate_array_with_status
        to gfc_allocate_allocatable_with_status.
        * trans.c (gfc_call_malloc): Add new parameter gfc_allocate_with_status
        so it uses the library for memory allocation when -fcoarray=lib.
        (gfc_allocate_allocatable_with_status): Renamed from
        gfc_allocate_array_with_status.
        (gfc_allocate_allocatable_with_status): Update function call for
        gfc_allocate_with_status.
        * trans.h (gfc_coarray_type): New enum.
        (gfc_allocate_with_status): Update prototype.
        (gfc_allocate_allocatable_with_status): Renamed from
        gfc_allocate_array_with_status.
        * trans-decl.c (generate_coarray_sym_init): Use the new constant
        GFC_CAF_COARRAY_ALLOC in the call to gfor_fndecl_caf_register.

2011-07-06  Richard Guenther  <rguenther@suse.de>

        * f95-lang.c (gfc_init_decl_processing):
        Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.

2011-07-04  Jakub Jelinek  <jakub@redhat.com>

        PR fortran/49623
        * gfortranspec.c (lang_specific_driver): Ignore options with
        CL_ERR_MISSING_ARG errors.

2011-07-02  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/49562
        * expr.c (gfc_check_vardef_context): Handle type-bound procedures.

2011-06-30  Jakub Jelinek  <jakub@redhat.com>

        PR fortran/49540
        * gfortran.h (gfc_constructor): Add repeat field.
        * trans-array.c (gfc_conv_array_initializer): Handle repeat > 1.
        * array.c (current_expand): Add repeat field.
        (expand_constructor): Copy repeat.
        * constructor.c (node_free, node_copy, gfc_constructor_get,
        gfc_constructor_lookup): Handle repeat field.
        (gfc_constructor_lookup_next, gfc_constructor_remove): New functions.
        * data.h (gfc_assign_data_value): Add mpz_t * argument.
        (gfc_assign_data_value_range): Removed.
        * constructor.h (gfc_constructor_advance): Removed.
        (gfc_constructor_lookup_next, gfc_constructor_remove): New prototypes.
        * data.c (gfc_assign_data_value): Add REPEAT argument, handle it and
        also handle overwriting a range with a single entry.
        (gfc_assign_data_value_range): Removed.
        * resolve.c (check_data_variable): Adjust gfc_assign_data_value
        call.  Use gfc_assign_data_value instead of
        gfc_assign_data_value_expr.

2011-06-27  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/49466
        * trans-array.c (structure_alloc_comps): Make sure sub-components
        and extended types are correctly deallocated.

2011-06-21  Andrew MacLeod  <amacleod@redhat.com>

        * trans-openmp.c: Add sync_ or SYNC__ to builtin names.
        * trans-stmt.c: Add sync_ or SYNC__ to builtin names.
        * trans-decl.c: Add sync_ or SYNC__ to builtin names.

2011-06-21  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/49112
        * class.c (gfc_find_derived_vtab): Make vtab and default initialization
        symbols SAVE_IMPLICIT.

2011-06-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.h (gfc_check_vardef_context): Update prototype.
        (iso_fortran_env_symbol): Handle derived types.
        (symbol_attribute): Add lock_comp.
        * expr.c (gfc_check_vardef_context): Add LOCK_TYPE check.
        * interface.c (compare_parameter, gfc_procedure_use): Handle
        LOCK_TYPE.
        (compare_actual_formal): Update
        gfc_check_vardef_context call.
        * check.c (gfc_check_atomic_def, gfc_check_atomic_ref): Ditto.
        * intrinsic.c (check_arglist): Ditto.
        * io.c (resolve_tag, gfc_resolve_dt, gfc_resolve_inquire): Ditto.
        * iso-fortran-env.def (ISOFORTRAN_LOCK_TYPE): Add.
        * intrinsic.texi (ISO_FORTRAN_ENV): Document LOCK_TYPE.
        * module.c (mio_symbol_attribute): Handle lock_comp.
        (create_derived_type): New function.
        (use_iso_fortran_env_module): Call it to handle LOCK_TYPE.
        * parse.c (parse_derived): Add constraint check for LOCK_TYPE.
        * resolve.c (resolve_symbol, resolve_lock_unlock): Add constraint
        checks for LOCK_TYPE.
        (gfc_resolve_iterator, resolve_deallocate_expr,
        resolve_allocate_expr, resolve_code, resolve_transfer): Update
        gfc_check_vardef_context call.
        * trans-stmt.h (gfc_trans_lock_unlock): New prototype.
        * trans-stmt.c (gfc_trans_lock_unlock): New function.
        * trans.c (trans_code): Handle LOCK and UNLOCK.

2011-06-18  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/49400
        * decl.c (gfc_match_procedure): Allow PROCEDURE declarations inside
        BLOCK constructs.

2011-06-17  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/48699
        * check.c (gfc_check_move_alloc): If 'TO' argument is polymorphic,
        make sure the vtab is present.

2011-06-16  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/49074
        * interface.c (gfc_extend_assign): Propagate the locus from the
        assignment to the type-bound procedure call.

2011-06-16  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/49417
        * module.c (mio_component): Make sure the 'class_ok' attribute is set
        for use-associated CLASS components.
        * parse.c (parse_derived): Check for 'class_ok' attribute.
        * resolve.c (resolve_fl_derived): Ditto.

2011-06-13  Thomas Koenig  <tkoenig@gcc.gnu.org>

        * frontend-passes.c (remove_trim):  New function.
        (optimize_assignment):  Use it.
        (optimize_comparison):  Likewise.  Return correct status
        for previous change.

2011-06-12  Tobias Burnus

        PR fortran/49324
        * trans-expr.c (gfc_trans_assignment_1): Tell
        gfc_trans_scalar_assign to also deep-copy RHS nonvariables
        with allocatable components.
        * trans-array.c (gfc_conv_expr_descriptor): Ditto.

2011-05-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

        * frontend-passes.c (optimize_assignment): Follow chains
        of concatenation operators to the end for removing trailing
        TRIMS for assignments.

2011-06-10  Daniel Carrera  <dcarrera@gmail.com>

        * trans-decl.c (gfc_build_builtin_function_decls):
        Updated declaration of caf_sync_all and caf_sync_images.
        * trans-stmt.c (gfc_trans_sync): Function
        can now handle a "stat" variable that has an integer type
        different from integer_type_node.

2011-06-09  Richard Guenther  <rguenther@suse.de>

        * trans.c (gfc_allocate_array_with_status): Mark error path
        as unlikely.

2011-06-08  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.h (gfc_statement): Add ST_LOCK and ST_UNLOCK.
        (gfc_exec_op): Add EXEC_LOCK and EXEC_UNLOCK.
        (gfc_code): Add expr4.
        * match.h (gfc_match_lock, gfc_match_unlock): New prototypes.
        * match.c (gfc_match_lock, gfc_match_unlock,
        lock_unlock_statement): New functions.
        (sync_statement): Bug fix, avoiding double freeing.
        (gfc_match_if): Handle LOCK/UNLOCK statement.
        * parse.c (decode_statement, next_statement,
        gfc_ascii_statement): Ditto.
        * st.c (gfc_free_statement): Handle LOCK and UNLOCK.
        * resolve.c (resolve_lock_unlock): New function.
        (resolve_code): Call it.
        * dump-parse-tree.c (show_code_node): Handle LOCK/UNLOCK.

2011-06-07  Richard Guenther  <rguenther@suse.de>

        * f95-lang.c (gfc_init_decl_processing): Do not set
        size_type_node or call set_sizetype.

2011-06-05  Tobias Burnus  <burnus@net-b.de>

        PR fortran/49255
        * trans-expr.c (gfc_conv_procedure_call): Fix -fcheck=pointer
        for F2008.

2011-06-05  Andreas Schmidt  <andreas.schmidt.42@gmx.net>
        Thomas Koenig  <tkoenig@gcc.gnu.org>

        * dump-parse-tree.c (show_symbol):  Don't dump namespace
        for ENTRY to avoid infinite recursion.

2011-06-02  Asher Langton  <langton2@llnl.gov>

        PR fortran/49268
        * trans-decl.c (gfc_trans_deferred_vars): Treat assumed-size Cray
        pointees as AS_EXPLICIT.

2011-06-02  Asher Langton  <langton2@llnl.gov>

        PR fortran/37039
        * decl.c (variable_decl): Merge current_as before copying to cp_as.

2011-06-02  Steven G. Kargl  <kargl@gcc.gnu.org>

        PR fortran/49265
        * decl.c (gfc_match_modproc):  Allow for a double colon in a module
        procedure statement.
        * parse.c ( decode_statement): Deal with whitespace around :: in
        gfc_match_modproc.

2011-05-31  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * intrinsic.c (klass): Add CLASS_ATOMIC.
        (add_subroutines): Add atomic_ref/atomic_define.
        * intrinsic.texi (ATOMIC_REF, ATOMIC_DEFINE): Document.
        * intrinsic.h (gfc_check_atomic_def, gfc_check_atomic_ref,
        gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New prototypes.
        * gfortran.h (gfc_isym_id): Add GFC_ISYM_ATOMIC_DEF
        and GFC_ISYM_ATOMIC_REF.
        (gfc_atomic_int_kind, gfc_atomic_logical_kind): New global vars.
        * iresolve.c (gfc_resolve_atomic_def, gfc_resolve_atomic_ref): New
        functions.
        * check.c (gfc_check_atomic, gfc_check_atomic_def,
        gfc_check_atomic_ref): New functions.
        * iso-fortran-env.def (ISOFORTRANENV_FILE_ATOMIC_INT_KIND,
        ISOFORTRANENV_FILE_ATOMIC_LOGICAL_KIND): Change kind value.
        * trans-intrinsic.c (conv_intrinsic_atomic_def,
        conv_intrinsic_atomic_ref, gfc_conv_intrinsic_subroutine): New
        functions.
        (conv_intrinsic_move_alloc) Renamed from
        gfc_conv_intrinsic_move_alloc - and made static.
        * trans.h (gfc_conv_intrinsic_move_alloc): Remove.
        (gfc_conv_intrinsic_subroutine) Add prototype.
        * trans.c (trans_code): Call gfc_conv_intrinsic_subroutine.
        * trans-types (gfc_atomic_int_kind, gfc_atomic_logical_kind): New
        global vars.
        (gfc_init_kinds): Set them.

2011-05-31  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * trans-array.c (gfc_trans_dummy_array_bias): Handle
        cobounds of assumed-shape arrays.

2011-05-31  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * resolve.c (resolve_fl_variable): Handle static coarrays
        with non-constant cobounds.

2011-05-29  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47601
        * module.c (mio_component_ref): Handle components of extended types.
        * symbol.c (gfc_find_component): Return is sym is NULL.

2011-05-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * interface.c (compare_parameter): Add check for passing coarray
        to allocatable noncoarray dummy.

2011-05-29  Tobias Burnus  <burnus@net-b.de>
            Richard Guenther  <rguenther@suse.de>

        PR fortran/18918
        * trans-types.c (gfc_get_nodesc_array_type): Don't mess with
        the type's TREE_TYPE.
        * trans-array.c (gfc_conv_array_ref): Use TYPE_MAIN_VARIANT.
        * trans.c (gfc_build_array_ref): Ditto.

2011-05-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * check.c (gfc_check_associated, gfc_check_null): Add coindexed check.
        * match.c (gfc_match_nullify): Ditto.
        * resolve.c (resolve_deallocate_expr): Ditto.
        * trans-types.c (gfc_get_nodesc_array_type): Don't set restricted
        for nonpointers.

2011-05-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48820
        * gfortran.h (gfc_isym_id): Add GFC_ISYM_RANK.
        * intrinsic.c (add_functions): Add rank intrinsic.
        (gfc_check_intrinsic_standard): Handle GFC_STD_F2008_TR.
        * intrinsic.h (gfc_simplify_rank, gfc_check_rank): Add prototypes.
        * simplify.c (gfc_simplify_rank): New function.
        * intrinsic.texi (RANK): Add description for rank intrinsic.
        * check.c (gfc_check_rank): New function.

2011-05-26  Paul Thomas  <pault@gcc.gnu.org>
            Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/48955
        * trans-expr.c (gfc_trans_assignment_1): GFC_REVERSE_NOT_SET
        changed to GFC_ENABLE_REVERSE.
        * trans-array.c (gfc_init_loopinfo): GFC_CANNOT_REVERSE changed
        to GFC_INHIBIT_REVERSE.
        * gfortran.h: Enum gfc_reverse is now GFC_ENABLE_REVERSE,
        GFC_FORWARD_SET, GFC_REVERSE_SET and GFC_INHIBIT_REVERSE.
        * dependency.c (gfc_dep_resolver): Change names for elements of
        gfc_reverse as necessary. Change the logic so that forward
        dependences are remembered as well as backward ones. When both
        have appeared, force a temporary.

2011-05-26  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * trans-array.c (gfc_conv_array_ref): Handle pointer coarrays.
        * trans-decl.c (has_coarray_vars, caf_init_block,
        gfor_fndecl_caf_register): New file-global variables.
        (gfc_finish_var_decl): Make sure that coarrays in main are static.
        (gfc_build_qualified_array): Generate coarray token variable.
        (gfc_get_symbol_decl): Don't use a static initializer for coarrays.
        (gfc_build_builtin_function_decls): Set gfor_fndecl_caf_register.
        (gfc_trans_deferred_vars, gfc_emit_parameter_debug_info): Skip for
        static coarrays.
        (generate_local_decl): Check for local coarrays.
        (create_main_function): SYNC ALL before calling MAIN.
        (generate_coarray_sym_init): Register static coarray.
        (generate_coarray_init): Generate CAF registering constructor
        function.
        (gfc_generate_function_code): Call it, if needed, do not create
        cgraph twice.
        (gfc_generate_module_vars, gfc_process_block_locals): Call
        generate_coarray_init.
        * trans-types.c (gfc_get_nodesc_array_type): Generate pointers for
        -fcoarray=lib.
        * trans.h (gfor_fndecl_caf_register): New variable.
        (lang_type): New element caf_token.
        (GFC_TYPE_ARRAY_CAF_TOKEN): New macro.

2011-05-24  Joseph Myers  <joseph@codesourcery.com>

        * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o.
        (gfortran$(exeext)): Use libcommon-target.a.

2011-05-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

        * frontend-passes.c (cfe_register_funcs):  Also register
        character functions if their charlens are known and constant.
        Also register allocatable functions.

2011-05-21  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/48699
        * match.c (select_type_set_tmp): Make the temporary ALLOCATABLE if the
        selector is ALLOCATABLE.

2011-05-20  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/48706
        * module.c (write_dt_extensions): Do not write extended types which
        are local to a subroutine.

2011-05-20  Joseph Myers  <joseph@codesourcery.com>

        * Make-lang.in (GFORTRAN_D_OBJS): Remove version.o and intl.o.

2011-05-20  Janne Blomqvist  <jb@gcc.gnu.org>

        * gfortran.texi (set_fpe): Update documentation.
        * invoke.texi (-ffpe-trap): Likewise.
        * libgfortran.h (GFC_FPE_PRECISION): Rename to GFC_FPE_INEXACT.
        * options.c (gfc_handle_fpe_trap_option): Handle inexact and make
        precision an alias for it.

2011-05-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * trans-types.c (gfc_get_element_type): Handle scalar coarrays.
        (gfc_get_nodesc_array_type): Make a variant-type copy for scalar
        coarrays.
        * trans.c (gfc_build_array_ref): Return original type not variant
        copy for scalar coarrays.
        * trans-array.c (gfc_conv_array_ref): Ditto.

2011-05-18  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/48700
        * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO'
        argument to avoid memory leaks.

2011-05-16  Tobias Burnus  <burnus@net-b.de>

        * gfortran.texi (_gfortran_set_options): Add GFC_STD_F2008_TR.
        (Fortran 2008 status): Multi-image support for coarrays.
        (TR 19113 status): New section.

2011-05-15  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        actual argument is not an array; rank mismatch is diagnosted later.
        * trans-decl.c (gfc_get_symbol_decl, gfc_trans_deferred_vars): Handle
        scalar coarrays.
        * trans-types.c (gfc_get_array_type_bounds): Ditto.

2011-05-15  Joern Rennecke  <amylaar@spamcop.net>

        PR middle-end/46500
        * trans-types.c: Include "tm.h".
        [0] (c_size_t_size): Remove.

2011-05-15  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/48915
        * gfortran.texi (_gfortran_set_options): Even though -fbacktrace
        is now the default, the library defaults to backtracing disabled.

2011-05-14  Tobias Burnus  <burnus@net-b.de>

        * lang.opt (fdump-core): Re-add as ignored option
        for backward compatibility.

2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/48915
        * gfortran.texi: Update mixed-language programming section
        reflecting the removal of the fdump-core option, and that
        -fbacktrace is now enabled by default.

2011-05-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/22572
        * frontend-passes.c (cfe_register_funcs):  Also register functions
        for potential elimination if the rank is > 0, the shape is unknown
        and reallocate on assignment is active.
        (create_var):  For rank > 0 functions with unknown shape, create
        an allocatable temporary.

2011-05-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * interface.c (compare_parameter): Skip diagnostic if
        actual argument is not an array; rank mismatch is diagnosted later.

2011-05-14  Tobias Burnus  <burnus@net-b.de>

        * options.c (gfc_init_options, gfc_post_options): Enable
        -fstack-arrays by default if -Ofast is used.
        * invoke.texi (-fstack-arrays): Document this.

2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/48915
        * gfortran.h (gfc_option_t): Remove flag_dump_core.
        * gfortran.texi (GFORTRAN_ERROR_DUMPCORE): Remove section.
        (GFORTRAN_ERROR_BACKTRACE): Document that it's enabled by default.
        * intrinsic.texi (ABORT): Remove explanation of -fdump-core.
        * invoke.texi: Remove -fdump-core, document that -fbacktrace is
        enabled by default.
        * lang.opt: Remove -fdump-core.
        * options.c (gfc_init_options): Make backtrace default to enabled,
        remove dump_core.
        (gfc_handle_option): Remove OPT_fdump-core.
        * trans-decl.c: Pass a 0 to preserve ABI.

2011-05-14  Janne Blomqvist  <jb@gcc.gnu.org>

        * gfortran.texi: Remove GFORTRAN_USE_STDERR documentation.

2011-05-13  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48972
        * io.c (resolve_tag_format, resolve_tag): Make sure
        that the string is of default kind.
        (gfc_resolve_inquire): Also resolve decimal tag.

2011-05-12  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48972
        * resolve.c (resolve_intrinsic): Don't resolve module
        intrinsics multiple times.

2011-05-11  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48889
        * expr.c (gfc_is_constant_expr): Use e->value.function.esym
        instead of e->symtree->n.sym, if available.

2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>

        * f95-lang.c (global_bindings_p): Return bool and simplify.

2011-05-07  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        PR fortran/48919
        * trans.h: Move gfc_init_coarray_decl prototype ...
        * gfortran.h: ... to here.
        * parse.c (translate_all_program_units): Call gfc_init_coarray_decl.
        (gfc_parse_file): Update translate_all_program_units call.
        * trans-decl.c (gfc_init_coarray_decl): Fix variable declaration,
        new argument whether DECL_EXTERNAL should be used.
        (create_main_function): Update gfc_init_coarray_decl call.
        * trans-intrinsic.c (trans_this_image, trans_image_index,
        conv_intrinsic_cobound): Ditto.

2011-05-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * trans-array.c (gfc_walk_variable_expr): Continue walking
        for scalar coarrays.
        * trans-intrinsic.c (convert_element_to_coarray_ref): New function.
        (trans_this_image, trans_image_index, conv_intrinsic_cobound): Use it.
        (trans_this_image): Fix algorithm.
        * trans-types.c (gfc_get_element_type, gfc_get_array_descriptor_base,
        gfc_sym_type): Handle scalar coarrays.

2011-05-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48858
        PR fortran/48820
        * lang.opt (std=f2008tr): New.
        * libgfortran.h (GFC_STD_F2008_TR): New macro constant.
        * decl.c (verify_c_interop_param): Allow OPTIONAL in BIND(C)
        procedures for -std=f2008tr/gnu/legacy.
        (gfc_match_import): Set sym to NULL.
        * options.c (set_default_std_flags,gfc_handle_option): Handle
        -std=f2008tr.
        * invoke.texi (-std=): Document -std=f2008tr.

2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>

        * trans-decl.c (gfc_trans_entry_master_switch): Call build_case_label.
        * trans-io.c (add_case): Likewise.
        * trans-stmt.c (gfc_trans_integer_select): Likewise.
        (gfc_trans_character_select): Likewise.

2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>

        * trans-decl.c (trans_function_start): Do not set
        dont_save_pending_sizes_p.

2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>

        * trans.h (gfc_chainon_list): Delete.
        * trans.c (gfc_chainon_list): Delete.

2011-05-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48864
        * invoke.texi (fno-protect-parens): Document
        that -Ofast implies -fno-protect-parens.
        * options.c (gfc_init_options, gfc_post_options):
        Make -Ofast imply -fno-protect-parens.

2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>

        * trans-decl.c (build_library_function_decl_1): Call
        build_function_type_vec.  Adjust argument list building accordingly.
        * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
        * trans-types.c (gfc_get_function_type): Likewise.

2011-05-04  Richard Guenther  <rguenther@suse.de>

        * trans-array.c (gfc_trans_array_constructor_value): Use
        size_int for bounds of range types.
        (gfc_trans_array_constructor_value): Use size_type_node
        for memcpy argument.
        * trans-common.c (build_field): Use gfc_charlen_type_node
        for lengths.
        * trans-openmp.c (gfc_trans_omp_clauses): Do not pass NULL
        as type to build_int_cst.
        * trans-const.c (gfc_build_string_const): Use size_int
        for bounds of range types.
        (gfc_build_wide_string_const): Likewise.
        * trans-stmt.c (gfc_trans_label_assign): Use gfc_charlen_type_node
        for lengths.
        (gfc_trans_character_select): Likewise.
        (gfc_trans_character_select): Do not pass NULL
        as type to build_int_cst.
        (gfc_trans_character_select): Use size_int for bounds of range types.
        * trans-io.c (gfc_build_io_library_fndecls): Likewise.
        (add_case): Do not pass NULL as type to build_int_cst.
        (transfer_expr): Likewise.
        (transfer_array_desc): Likewise.
        * trans-decl.c (gfc_add_assign_aux_vars): Use gfc_charlen_type_node
        for lengths.
        (gfc_trans_assign_aux_var): Likewise.
        (create_main_function): Use size_int for bounds of range types.
        * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char): Do not pass
        NULL as type to build_int_cst.
        (gfc_conv_intrinsic_spacing): Likewise.
        (gfc_conv_intrinsic_rrspacing): Likewise.
        (gfc_conv_intrinsic_len): Use gfc_charlen_type_node for lengths.

2011-05-04  Richard Guenther  <rguenther@suse.de>

        * trans-types.c (gfc_get_array_type_bounds): Remove zero notrunc
        argument to int_const_binop.

2011-05-03  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * trans-intrinsic.c (trans_this_image): Implement version with
        coarray argument.
        (conv_intrinsic_cobound): Simplify code.
        (gfc_conv_intrinsic_function): Call trans_this_image for
        this_image(coarray) except for -fcoarray=single.

2011-05-02  Steven G. Kargl  <kargl@gcc.gnu.org>

        PR fortran/48720
        * gfortran.texi: Document the 'Q' exponent-letter extension.
        * invoke.texi: Document -Wreal-q-constant.
        * lang.opt: Add -Wreal-q-constant option.
        * gfortran.h: Add warn_real_q_constant to option struct.
        * primary.c (match_real_constant):  Use it.  Accept 'Q' as
        exponent-letter for REAL(16) real-literal-constant with a
        fallback to REAL(10) or error if REAL(10) is not available.
        * options.c (gfc_init_options, set_Wall) Set it.
        (gfc_handle_option): Handle new option.

2011-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

        * dump-prase-tree.c (show_code_node):  Set the current
        namespace to the BLOCK before displaying it; restore
        afterwards.

2011-04-30  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48821
        * decl.c (gfc_match_import): Don't try to find the
        symbol if already found.

2011-04-30  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/48746
        * trans-expr.c (fcncall_realloc_result): Set the bounds and the
        offset so that the lbounds are one.
        (gfc_trans_arrayfunc_assign): Add rank to arguments of above.

2011-04-29  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/48462
        * trans-expr.c (arrayfunc_assign_needs_temporary): Deal with
        automatic reallocation when the lhs is a target.

        PR fortran/48746
        * trans-expr.c (fcncall_realloc_result): Make sure that the
        result dtype field is set before the function call.

2011-04-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48810
        * resolve.c (resolve_typebound_generic_call): Don't check access
        flags of the specific function.

        PR fortran/48800
        * resolve.c (resolve_formal_arglist): Don't change AS_DEFERRED
        to AS_ASSUMED_SHAPE for function results.
        (resolve_fl_var_and_proc): Print also for function results with
        AS_DEFERRED an error, if they are not a pointer or allocatable.
        (resolve_types): Make sure arguments of procedures in interface
        blocks are resolved.

2011-04-29  Michael Matz  <matz@suse.de>

        * options.c (options.c): Set warn_maybe_uninitialized.

2011-04-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48112
        * resolve.c (resolve_fl_var_and_proc): Print diagnostic of
        function results only once.
        (resolve_symbol): Always resolve function results.

        PR fortran/48279
        * expr.c (gfc_check_vardef_context): Fix handling of generic
        EXPR_FUNCTION.
        * interface.c (check_interface0): Reject internal functions
        in generic interfaces, unless -std=gnu.

2011-04-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48788
        * resolve.c (resolve_global_procedure): Error recovery -
        avoid segfault for (non)character-returning functions.

2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

        * decl.c (gfc_match_end):  Check that the block name starts
        with "block@".
        * parse.c (gfc_build_block_ns):  Make block names unique by
        numbering them.

2011-04-26  Thomas Koenig  <tkoenig@gcc.gnu.org>

        * frontend-passes.c (inserted_block):  New variable.
        (changed_statement):  Likewise.
        (create_var):  Encase statement to be operated on in a BLOCK.
        Adjust code insertion for BLOCK.
        (cfe_code):  Set inserted_block and changed_statement to NULL.

2011-04-23  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * module.c (mio_array_spec): Set as->cotype on reading.
        * resolve.c (resolve_allocate_expr): Fix allocating coarray
        components.

2011-04-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/48405
        * frontend_passes (cfe_register_funcs): Remove workaround for DO
        loops.
        (gfc_code_walker):  Make sure the pointer to the current
        statement doen't change when other statements are inserted.

2011-04-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * array.c (gfc_match_array_spec): Fix maximal rank(+corank) check.

2011-04-20  Jim Meyering  <meyering@redhat.com>

        * expr.c (free_expr0): Remove useless if-before-free.
        * gfortranspec.c (lang_specific_pre_link): Likewise.
        * interface.c (gfc_extend_expr): Likewise.
        * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.

2011-04-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48588
        PR fortran/48692

        * module.c (fix_mio_expr): Commit created symbol.

2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>

        * scanner.c (load_file): Use XCNEWVAR instead of xcalloc.

2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>

        * frontend-passes.c (gfc_run_passes): Use XDELETEVEC instead of
        free.

2011-04-19  Janne Blomqvist  <jb@gcc.gnu.org>

        * misc.c (gfc_getmem): Remove function.
        * gfortran.h: Remove gfc_getmem prototype. Replace gfc_getmem
        usage with XCNEW or XCNEWVEC.
        * expr.c (gfc_check_assign_symbol): Replace gfc_getmem usage with
        XCNEW or XCNEWVEC.
        * options.c (gfc_handle_module_path_options)
        (gfc_get_option_string): Likewise.
        * resolve.c (gfc_resolve_forall): Likewise.
        * simplify.c (simplify_transformation_to_array): Likewise.
        * target-memory.c (gfc_target_interpret_expr): Likewise.
        * trans-common.c (get_segment_info, copy_equiv_list_to_ns)
        (get_init_field): Likewise.
        * trans-expr.c (gfc_conv_statement_function): Likewise.
        * trans-io.c (nml_full_name): Likewise.
        * trans-stmt.c (gfc_trans_forall_1): Likewise.
        * scanner.c (load_file): Replace gfc_getmem usage with xcalloc.

2011-04-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48588
        * parse.c (resolve_all_program_units): Skip modules.
        (translate_all_program_units): Handle modules.
        (gfc_parse_file): Defer code generation for modules.

2011-04-19  Martin Jambor  <mjambor@suse.cz>

        * trans-decl.c (gfc_generate_function_code): Call cgraph_create_node
        instead of cgraph_get_create_node.

2011-04-18  Jim Meyering  <meyering@redhat.com>

        remove now-unused definition of gfc_free
        * misc.c (gfc_free): Remove function.
        * gfortran.h (gfc_free): Remove its prototype.

2011-04-18  Jim Meyering  <meyering@redhat.com>

        convert each use of gfc_free (p) to free (p)
        Do that by running this command:
          perl -pi -e    's/\bgfc_free ?\(/free (/' \
            $(git grep -El '\bgfc_free ?\(')
        which also corrects the few uses that lacked a space between
        the function name and the open parenthesis.
        Manually undo the change to the function definition itself
        and its prototype.  They'll be removed next.
        * array.c (gfc_free_array_spec, gfc_set_array_spec): s/gfc_free/free/
        * constructor.c (node_free): Likewise.
        * cpp.c (dump_queued_macros): Likewise.
        * data.c (gfc_assign_data_value): Likewise.
        * decl.c (free_variable, free_value, gfc_free_data): Likewise.
        (gfc_free_data_all, match_old_style_init): Likewise.
        (gfc_set_constant_character_len, gfc_free_enum_history, NUM_DECL):
        Likewise.
        (gfc_match_modproc): Likewise.
        * dependency.c (check_section_vs_section): Likewise.
        * error.c (gfc_pop_error, gfc_free_error): Likewise.
        * expr.c (free_expr0, gfc_free_expr, gfc_free_actual_arglist): Likewise.
        (gfc_free_ref_list, gfc_replace_expr, gfc_copy_ref): Likewise.
        (find_substring_ref, gfc_simplify_expr, gfc_check_assign_symbol):
        Likewise.
        * frontend-passes.c (gfc_run_passes, cfe_expr_0): Likewise.
        (strip_function_call, optimize_comparison): Likewise.
        * interface.c (gfc_free_interface, arginfo, check_interface0): Likewise.
        (CHECK_OS_COMPARISON, gfc_extend_assign, gfc_free_formal_arglist):
        Likewise.
        * intrinsic.c (gfc_intrinsic_done_1, gfc_convert_type_warn): Likewise.
        (gfc_convert_chartype): Likewise.
        * io.c (gfc_free_open, compare_to_allowed_values, gfc_free_close):
        Likewise.
        (gfc_free_filepos, gfc_free_dt, gfc_free_inquire): Likewise.
        * match.c (gfc_free_iterator, gfc_match_associate): Likewise.
        (gfc_free_alloc_list, gfc_free_namelist, gfc_free_equiv_until):
        Likewise.
        (free_case, gfc_free_forall_iterator): Likewise.
        * misc.c: Likewise.
        * module.c (free_pi_tree, resolve_fixups, free_rename): Likewise.
        (free_true_name, peek_atom, mio_allocated_wide_string): Likewise.
        (mio_pool_string, mio_internal_string, mio_gmp_integer): Likewise.
        (mio_gmp_real, mio_expr, mio_typebound_proc): Likewise.
        (mio_full_typebound_tree, skip_list, load_equiv): Likewise.
        (free_written_common, gfc_use_module, gfc_free_use_stmts): Likewise.
        * openmp.c (gfc_free_omp_clauses): Likewise.
        * options.c (gfc_post_options): Likewise.
        * parse.c (select_type_pop, parse_omp_structured_block): Likewise.
        * primary.c (gfc_free_structure_ctor_component): Likewise.
        * resolve.c (resolve_structure_cons, check_host_association): Likewise.
        (gfc_resolve_forall, resolve_equivalence): Likewise.
        * scanner.c (gfc_scanner_done_1, gfc_release_include_path): Likewise.
        (gfc_define_undef_line, preprocessor_line, include_line): Likewise.
        (load_file, gfc_read_orig_filename): Likewise.
        * simplify.c (simplify_transformation_to_array): Likewise.
        (gfc_simplify_ibits, simplify_shift, gfc_simplify_ishftc, STRING):
        Likewise.
        (gfc_simplify_compiler_options): Likewise.
        * st.c (gfc_free_statement, gfc_free_statements): Likewise.
        (gfc_free_association_list): Likewise.
        * symbol.c (free_components, gfc_free_st_label, free_st_labels):
        Likewise.
        (gfc_delete_symtree, gfc_free_symbol, gfc_undo_symbols): Likewise.
        (free_old_symbol, gfc_commit_symbols, free_tb_tree): Likewise.
        (free_common_tree, free_uop_tree, free_sym_tree): Likewise.
        (gfc_free_dt_list, gfc_free_equiv_infos, gfc_free_equiv_lists):
        Likewise.
        (gfc_free_finalizer, gfc_free_charlen, free_entry_list): Likewise.
        (gfc_free_namespace): Likewise.
        * trans-array.c (gfc_free_ss, gfc_trans_array_bound_check): Likewise.
        (gfc_conv_array_ref, gfc_conv_ss_startstride): Likewise.
        (gfc_trans_dummy_array_bias, gfc_conv_array_parameter): Likewise.
        * trans-common.c (get_init_field, create_common): Likewise.
        * trans-const.c (gfc_build_wide_string_const): Likewise.
        (gfc_conv_string_init): Likewise.
        * trans-decl.c (gfc_generate_function_code): Likewise.
        * trans-expr.c (gfc_conv_substring, gfc_free_interface_mapping):
        Likewise.
        (SCALAR_POINTER, gfc_conv_statement_function): Likewise.
        (gfc_trans_subarray_assign): Likewise.
        * trans-intrinsic.c (conv_generic_with_optional_char_arg): Likewise.
        * trans-io.c (gfc_trans_io_runtime_check, set_string): Likewise.
        (transfer_namelist_element, transfer_array_component): Likewise.
        * trans-openmp.c (gfc_trans_omp_array_reduction): Likewise.
        * trans-stmt.c (cleanup_forall_symtrees, gfc_trans_forall_1): Likewise.
        * trans.c (trans_runtime_error_vararg, gfc_restore_backend_locus):
        Likewise.

2011-04-15  Jim Meyering  <meyering@redhat.com>

        gfortran: remove cpp definition of free, ...
        in preparation for the s/gfc_free/free/ transformation.
        * gfortran.h (free): Remove macro definition that would otherwise
        prevent direct use of the function.

2011-04-18  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * array.c (gfc_match_array_ref): Check for too many codimensions.
        * check.c (gfc_check_image_index): Check number of elements
        in SUB argument.
        * simplify.c (gfc_simplify_image_index): Remove unreachable checks.

2011-04-18  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * iresolve.c (gfc_resolve_image_index): Set ts.type.
        * simplify.c (gfc_simplify_image_index): Don't abort if the bounds
        are not known at compile time and handle -fcoarray=lib.
        * trans-intrinsics.c (gfc_conv_intrinsic_function): Handle
        IMAGE_INDEX.
        (conv_intrinsic_cobound): Fix comment typo.
        (trans_this_image): New function.
        * trans-array.c (gfc_unlikely): Move to trans.c.
        * trans.c (gfc_unlikely): Function moved from trans-array.c.
        (gfc_trans_runtime_check): Use it.
        * trans-io.c (gfc_trans_io_runtime_check): Ditto.
        * trans.h (gfc_unlikely): Add prototype.

2011-04-18  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/48462
        * trans-expr.c (fcncall_realloc_result): Renamed version of
        realloc_lhs_bounds_for_intrinsic_call that does not touch the
        descriptor bounds anymore but makes a temporary descriptor to
        hold the result.
        (gfc_trans_arrayfunc_assign): Modify the reference to above
        renamed function.

2011-05-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48624
        * trans-decl.c (gfc_get_extern_function_decl): Fix decl
        for external procedures with proc arguments.

2011-04-15  Michael Matz  <matz@suse.de>

        * trans-array.c (toplevel): Include gimple.h.
        (gfc_trans_allocate_array_storage): Check flag_stack_arrays,
        properly expand variable length arrays.
        (gfc_trans_auto_array_allocation): If flag_stack_arrays create
        variable length decls and associate them with their scope.
        * gfortran.h (gfc_option_t): Add flag_stack_arrays member.
        * options.c (gfc_init_options): Handle -fstack_arrays option.
        * lang.opt (fstack-arrays): Add option.
        * invoke.texi (Code Gen Options): Document it.
        * Make-lang.in (trans-array.o): Depend on GIMPLE_H.

2011-04-15  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * trans-intrinsic.c (conv_intrinsic_cobound): Remove unused
        code which is also causing an ICE.

2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>

        * f95-lang.c (poplevel): Use BLOCK_CHAIN and block_chainon.

2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>

        * f95-lang.c (union lang_tree_node): Check for TS_COMMON before
        calling TREE_CHAIN.

2011-04-12  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/48360
        PR fortran/48456
        * trans-array.c (get_std_lbound): For derived type variables
        return array valued component lbound.

2011-04-12  Martin Jambor  <mjambor@suse.cz>

        * trans-decl.c (gfc_generate_function_code): Call
        cgraph_get_create_node instead of cgraph_node.

2011-04-11  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * simplify.c (simplify_bound_dim): Exit for
        ucobound's last dimension unless -fcoarray=single.
        * trans-array (gfc_conv_descriptor_size_1): Renamed from
        gfc_conv_descriptor_size, made static, has now from_dim and
        to_dim arguments.
        (gfc_conv_descriptor_size): Call gfc_conv_descriptor_size.
        (gfc_conv_descriptor_cosize): New function.
        * trans-array.h (gfc_conv_descriptor_cosize): New prototype.
        * trans-intrinsic.c (conv_intrinsic_cobound): Add input_location
        and handle last codim of ucobound for when -fcoarray is not "single".

2011-04-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/48448
        * gfortran.h (gfc_option_t):  Add warn_function_elimination and
        flag_frontend_optimize.
        * lang.opt (Wfunction-elimination):  Add.
        (ffrontend-optimize):  Add.
        * invoke.texi:  Add documentation for -Wfunction-elimination
        and -ffrontend-optimize.  Add -faggressive-function-elimination
        to list of code generation options.
        * frontend-passes.c (gfc_run_passes):  Run optimizations if
        flag_frontend_optimize is set.
        (warn_function_elimination):  New function.
        (cfe_expr_0):  Call it if requested to do so.
        * options.c (gfc_init_options):  Initiate warn_function_elimination
        and flag_frontend_optimize.
        (gfc_post_options):  Set flag_frontend_optimize if not specified
        by user, depending on the optimization level.
        (gfc_handle_option):  Handle -Wfunction-elimination and
        -ffrontend-optimize.

2011-04-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * trans-intrinsic.c (gfc_conv_intrinsic_function): Fix
        call for this_image.

2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>

        * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Use
        build_function_type_list instead of build_function_type.  Correct
        argument order for func_frexp and func_scalbn.

2011-04-05  Duncan Sands  <baldrick@free.fr>

        * f95-lang.c (build_builtin_fntypes): Swap frexp parameter types.

2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

        * frontend-passes: (optimize_lexical_comparison): New function.
        (optimize_expr): Call it.
        (optimize_comparison): Also handle lexical comparison functions.
        Return false instad of -2 for unequal comparison.

2011-04-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/48412
        * frontend-passes (cfe_expr_0):  Reverse the order of going
        through the loops.

2011-04-04  Tobias Burnus  <burnus@net-b.de>
            Mikael Morin  <mikael.morin@sfr.fr>

        PR fortran/18918
        * check.c (is_coarray): Update - because of DIMEN_THIS_IMAGE.
        * expr.c (gfc_is_coindexed): Ditto.
        * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_THIS_IMAGE.
        * interface.c (compare_parameter): Use gfc_expr_attr and
        gfc_is_coindexed.
        * resolve.c (check_dimension, compare_spec_to_ref,
        resolve_allocate_expr, check_data_variable): Update for
        DIMEN_THIS_IMAGE.
        * simplify.c (gfc_simplify_lcobound, gfc_simplify_this_image,
        gfc_simplify_ucobound): Allow non-constant bounds.
        * trans-array.c (gfc_set_loop_bounds_from_array_spec,
        gfc_trans_create_temp_array, gfc_trans_constant_array_constructor,
        gfc_set_vector_loop_bounds, gfc_conv_array_index_offset,
        gfc_start_scalarized_body, gfc_trans_scalarizing_loops,
        gfc_trans_scalarized_loop_boundary, gfc_conv_section_startstride,
        gfc_conv_ss_startstride, gfc_conv_loop_setup,
        gfc_trans_array_bounds, gfc_conv_expr_descriptor,
        gfc_walk_variable_expr): Handle codimen.
        * trans-decl.c (gfc_build_qualified_array): Save cobounds.
        * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use arg2.
        (conv_intrinsic_cobound): New function.
        (gfc_conv_intrinsic_function): Call it.
        (gfc_walk_intrinsic_function, gfc_add_intrinsic_ss_code): Handle
        ucobound, lcobound, this_image.
        * fortran/trans-types.c (gfc_build_array_type): Save cobounds.
        (gfc_get_dtype): Honour corank.
        (gfc_get_nodesc_array_type): Save corank and codimensions.
        (gfc_get_array_type_bounds): Save cobound.
        * fortran/trans.h (gfc_ss_info,gfc_loopinfo): Add codimen item.
        (gfc_array_kind): Add corank item.
        (GFC_TYPE_ARRAY_CORANK): New macro.

2011-04-03  Kai Tietz  <ktietz@redhat.com>

        PR middle-end/48422
        * Make-lang.in (f95-lang.o): Add some missing dependencies.

2011-04-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/48352
        * frontend-passes (cfe_register_funcs):  Don't
        register functions if they appear as iterators in DO loops.

2011-03-30  Michael Matz  <matz@suse.de>

        PR fortran/47516
        * trans-expr.c (realloc_lhs_loop_for_fcn_call): Take loop as parameter,
        don't use local variable.
        (gfc_trans_arrayfunc_assign): Adjust caller.

2011-03-29  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/48095
        * decl.c (match_procedure_decl,match_ppc_decl): Set flavor of interface.
        * module.c (MOD_VERSION): Bump.
        (mio_typespec): Read/write 'interface' field.
        * primary.c (match_string_constant,match_logical_constant): Remove
        unneeded code.
        (match_complex_constant): Make sure to clear the typespec.

2011-03-29  Thomas Koenig  <tkoenig@gcc.gnu.org>

        * frontend-passes.c (create_var):  Warn about creating an
        array temporary if requested.

2011-03-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/47065
        * frontend-passes.c (optimize_trim): Also follow references, except
        when they are substring references or array references.

2011-03-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
        GFC_ISYM_NUM_IMAGES.
        (gfc_fcoarray): Add GFC_FCOARRAY_LIB.
        * intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
        rename.
        * invoke.texi (-fcoarray=): Document "lib" argument.
        * iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
        * libgfortran.h (libgfortran_stat_codes): Add comments.
        * options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
        * simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
        Handle GFC_FCOARRAY_LIB.
        * trans.h (gfc_init_coarray_decl): New prototype.
        (gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
        gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
        gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
        gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
        gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
        New global variables.
        * trans-decl.c: Declare several CAF functions (cf. above).
        (gfc_build_builtin_function_decls): Initialize those.
        (gfc_init_coarray_decl): New function.
        (create_main_function): Call CAF init/finalize functions.
        * trans-intrinsic.c (trans_this_image, trans_num_images): New.
        (gfc_conv_intrinsic_function): Call those.
        * trans-stmt.c (gfc_trans_stop, gfc_trans_sync, gfc_trans_critical):
        Add code for GFC_FCOARRAY_LIB.

2011-03-26  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/48291
        * class.c (get_unique_hashed_string): Adjust maximum allowable length
        for unique type string.

2011-03-25  Kai Tietz  <ktietz@redhat.com>

        * scanner.c (preprocessor_line): Use filename_cmp
        instead of strcmp.

2011-03-25  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48174
        PR fortran/45304
        * trans-types.c (gfc_get_function_type): Don't use varargs if the
        procedure is known to have no arguments.

2011-03-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/22572
        * gfortran.h (gfc_option_t): Add
        flag_aggressive_function_elimination.
        (gfc_dep_compare_functions):  Add prototype.
        * lang.opt: Add faggressive-function-elimination.
        * invoke.texi: Document -faggressive-function-elimination.
        * frontend_passes (expr_array):  New static variable.
        (expr_size):  Likewise.
        (expr_count):  Likewise.
        (current_code):  Likewise.
        (current_ns):  Likewise.
        (gfc_run_passes):  Allocate and free space for expressions.
        (cfe_register_funcs):  New function.
        (create_var):  New function.
        (cfc_expr_0):  New function.
        (cfe_code):  New function.
        (optimize_namespace):  Invoke gfc_code_walker with cfe_code
        and cfe_expr_0.
        * dependency.c (gfc_dep_compare_functions):  New function.
        (gfc_dep_compare_expr):  Use it.
        * options.c (gfc_init_options):  Handle
        flag_aggressive_function_elimination.
        (gfc_handle_option):  Likewise.

2011-03-15  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        * arith.c (arith_power): Plug memory leak.

2011-03-12  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/48059
        * trans-expr.c (gfc_apply_interface_mapping_to_expr): Replace base type
        for polymorphic arguments.

2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR fortran/48054
        * intrinsic.texi: Clarify doc of logarithm functions.

2011-03-12  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR fortran/47552
        * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Fix type of
        the string length variable.

2011-03-11  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47768
        * module.c (ab_attribute,attr_bits): Add AB_PROC_POINTER_COMP.
        (mio_symbol_attribute): Handle attribute 'proc_pointer_comp'.

2011-03-06  Paul Thomas  <pault@gcc.gnu.org>
            Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR fortran/47850
        * expr.c (gfc_is_constant_expr): Only use gfc_constant_ac if
        the expression has an iterator.  Otherwise, iterate through the
        array, checking for constant expressions for each element.

2011-03-04  Janne Blomqvist  <jb@gcc.gnu.org>

        PR libfortran/47802
        * intrinsic.texi: Update CTIME and FDATE documentation.

2011-03-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

        * invoke.texi (Option Summary, Fortran Dialect Options)
        (Preprocessing Options, Runtime Options, Code Gen Options):
        Fix vertical list spacing by using @itemx for additinoal
        items, empty line before @table.  Fix typos.

2011-02-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR fortran/47894
        * intrinsic.texi: Fix doc of the VERIFY intrinsic.

2011-02-26  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47846
        * trans-stmt.c (gfc_trans_allocate): Fix allocation with
        type-spec of deferred-length strings.

2011-02-26  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47886
        * openmp.c (gfc_resolve_omp_directive): Resolve if()
        condition of OpenMP's task.

2011-02-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

        PR fortran/47894
        * intrinsic.texi: Fix doc of the VERIFY intrinsic.

2011-02-24  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47872
        * intrinsic.texi (ALLOCATED, ATAN, BESSEL_JN, BESSEL_YN): Add
        multitable for linebreak between different syntax variants.

2011-02-24  Richard Guenther  <rguenther@suse.de>

        PR fortran/47839
        * f95-lang.c (pushdecl): For externs in non-global scope push
        a copy of the decl into the BLOCK.

2011-02-23  Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/40850
        * trans.c (gfc_prepend_expr_to_block): New function.
        * trans.h (gfc_prepend_expr_to_block): Declare.
        * trans-array.c (gfc_conv_array_parameter): Replace
        gfc_add_expr_to_block with gfc_prepend_expr_to_block.

2011-02-22  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/45743
        * trans-decl.c (gfc_get_extern_function_decl): Don't use the
        gsymbol backend_decl if the procedure has a formal argument
        that is a procedure.

2011-02-22  Tobias Burnus  <burnus@net-b.de>

        PR fortran/41359
        * trans-stmt.c (gfc_trans_if_1): Use correct line for
        expressions in the if condition.

2011-02-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47797
        * trans-decl.c (gfc_trans_deferred_vars): Use gfc_set_backend_locus and
        gfc_restore_backend_locus to have better debug locations.
        * trans-array.c (gfc_trans_deferred_array): Ditto.

2011-02-20  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/45077
        PR fortran/44945
        * trans-types.c (gfc_get_derived_type): Remove code that looks
        for decls in gsym and add call to gfc_get_module_backend_decl.
        * trans.h: Add prototype for gfc_get_module_backend_decl.
        * trans-decl.c (gfc_get_module_backend_decl): New function.
        (gfc_get_symbol_decl): Call it.

2011-02-19  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/47348
        * trans-array.c (get_array_ctor_all_strlen): Move up in file.
        (get_array_ctor_var_strlen): Add block dummy and add call to
        get_array_ctor_all_strlen instead of giving up on substrings.
        Call gcc_unreachable for default case.
        (get_array_ctor_strlen): Add extra argument to in call to
        get_array_ctor_var_strlen.

2011-02-18  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47789
        * primary.c (gfc_match_structure_constructor): Handle empty parent
        types.

2011-02-18  Tobias Burnus

        PR fortran/47775
        * trans-expr.c (arrayfunc_assign_needs_temporary): Use
        esym to check whether the specific procedure returns an
        allocatable or pointer.

2011-02-18  Michael Matz  <matz@suse.de>

        PR fortran/45586
        * gfortran.h (struct gfc_component): Add norestrict_decl member.
        * trans.h (struct lang_type): Add nonrestricted_type member.
        * trans-expr.c (gfc_conv_component_ref): Search fields with correct
        parent type.
        * trans-types.c (mirror_fields, gfc_nonrestricted_type): New.
        (gfc_sym_type): Use it.

2011-02-18  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47768
        * resolve.c (resolve_transfer): Reject variables with procedure pointer
        components.

2011-02-18  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47767
        * gfortran.h (gfc_check_access): Removed prototype.
        (gfc_check_symbol_access): Added prototype.
        * module.c (gfc_check_access): Renamed to 'check_access', made static.
        (gfc_check_symbol_access): New function, basically a shortcut for
        'check_access'.
        (write_dt_extensions,write_symbol0,write_generic,write_symtree): Use
        'gfc_check_symbol_access'.
        (write_operator,write_module): Renamed 'gfc_check_access'.
        * resolve.c (resolve_fl_procedure,resolve_fl_derived,
        resolve_fl_namelist,resolve_symbol,resolve_fntype): Use
        'gfc_check_symbol_access'.

2011-02-16  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47745
        * class.c (gfc_build_class_symbol): Set 'class_ok' attribute.
        * decl.c (build_sym,attr_decl1): Move setting of 'class_ok' into
        'gfc_build_class_symbol'.
        (gfc_match_decl_type_spec): Reject unlimited polymorphism.
        * interface.c (matching_typebound_op): Check for 'class_ok' attribute.
        * match.c (select_type_set_tmp): Move setting of 'class_ok' into
        'gfc_build_class_symbol'.
        * primary.c (gfc_variable_attr): Check for 'class_ok' attribute.

2011-02-15  Steven G. Kargl  <kargl@gcc.gnu.org>

        PR fortran/47633
        . simplify.c (gfc_simplify_compiler_version): Fix off-by-one issue.

2011-02-14  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47730
        * parse.c (gfc_build_block_ns): Commit 'block@' symbol.

2011-02-14  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47728
        * class.c (gfc_build_class_symbol): Give a fatal error on polymorphic
        arrays.
        * primary.c (gfc_match_varspec): Avoid ICE for invalid class
        declaration.

2011-02-14  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47349
        * interface.c (get_expr_storage_size): Handle derived-type components.

2011-02-13  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47569
        * interface.c (compare_parameter): Avoid ICE with
        character components.

2011-02-12  Janus Weil  <janus@gcc.gnu.org>

        * class.c (gfc_build_class_symbol): Reject polymorphic arrays.
        * decl.c (build_sym,build_struct,attr_decl1): Use return value of
        'gfc_build_class_symbol'.

2011-02-12  Michael Matz  <matz@suse.de>
            Janus Weil  <janus@gcc.gnu.org>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/45586
        * trans-expr.c (conv_parent_component_references): Avoid unintendent
        skipping of parent compounds.

2011-02-11  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47550
        * resolve.c (resolve_formal_arglist): PURE with VALUE
        and no INTENT: Add -std= diagnostics.

2011-02-09  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47352
        * resolve.c (resolve_procedure_interface): If interface has a result
        variable, copy the typespec and set result pointer to self.

2011-02-09  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47463
        * resolve.c (resolve_typebound_subroutine): Remove erroneous line.

2011-02-09  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47637
        * trans-decl.c (init_intent_out_dt): Handle CLASS arguments.

2011-02-08  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        * io.c (match_io_element): Do not set dt if not inquire.

2011-02-08  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/45290
        * expr.c (gfc_check_assign_symbol): Reject pointers as pointer
        initialization target.

2011-02-07  Janne Blomqvist  <jb@gcc.gnu.org>
            Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>

        * gfortran.texi (Thread-safety): texinfo styling fixes.
        * intrinsic.texi: Likewise.

2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>

        * gfortran.texi (Compiler Characteristics): Add reference to
        thread-safety section.

2011-02-06  Janne Blomqvist  <jb@gcc.gnu.org>

        * gfortran.texi (Thread-safety): New section.
        * intrinsic.texi (EXECUTE_COMMAND_LINE): Mention thread-safety.
        (GETENV): Likewise.
        (GET_ENVIRONMENT_VARIABLE): Likewise.
        (SYSTEM): Likewise.

2011-02-06  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/47592
        * trans-stmt.c (gfc_trans_allocate): For deferred character
        length allocations with SOURCE, store to the values and string
        length to avoid calculating twice.  Replace gfc_start_block
        with gfc_init_block to avoid unnecessary contexts and to keep
        declarations of temporaries where they should be. Tidy up the
        code a bit.

2011-02-05  Janne Blomqvist  <jb@gcc.gnu.org>

        PR fortran/42434
        * intrinsic.texi (SYSTEM_CLOCK): Update documentation.

2011-02-02  Janus Weil  <janus@gcc.gnu.org>
            Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/47082
        * trans-expr.c (gfc_trans_class_init_assign): Add call to
        gfc_get_derived_type.
        * module.c (read_cleanup): Do not use unique_symtrees for vtabs
        or vtypes.

2011-02-02  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47572
        * resolve.c (resolve_fl_variable): Handle polymorphic allocatables.

2011-02-01  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47565
        * trans-expr.c (gfc_conv_structure): Handle constructors for procedure
        pointer components with allocatable result.

2011-01-31  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47455
        * trans-expr.c (gfc_conv_procedure_call): Handle procedure pointers
        with pointer or allocatable result.

2011-01-31  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/47519
        * trans-stmt.c (gfc_trans_allocate): Improve handling of
        deferred character lengths with SOURCE.
        * iresolve.c (gfc_resolve_repeat): Calculate character
        length from source length and ncopies.
        * dump-parse-tree.c (show_code_node): Show MOLD and SOURCE
        expressions for ALLOCATE.

2011-01-31  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47463
        * resolve.c (resolve_typebound_subroutine): Bug fix for the case of
        an argument of a typebound assignment being a component.

2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

        * gfortranspec.c (add_arg_libgfortran) [HAVE_LD_STATIC_DYNAMIC] Use
        LD_STATIC_OPTION, LD_DYNAMIC_OPTION.

2011-01-31  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47042
        * resolve.c (resolve_fl_procedure): Reject stmt functions
        with pointer/allocatable attribute.

2011-01-31  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47042
        * interface.c (gfc_procedure_use): Add explicit interface check for
        pointer/allocatable functions.

2011-01-30  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/47523
        * trans-expr.c (gfc_trans_assignment_1): If the rhs is an op
        expr and is assigned to a deferred character length scalar,
        make sure that the function is called before reallocation,
        so that the length is available. Include procedure pointer
        and procedure pointer component rhs as well.

        PR fortran/45170
        PR fortran/35810
        PR fortran/47350
        * gfortran.dg/allocatable_function_5.f90: New test not added by
        mistake on 2011-01-28.

2011-01-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47531
        * check.c (gfc_check_shape): Support kind argument in SHAPE.
        * intrinsic.c (add_functions): Ditto.
        * resolve.c (gfc_resolve_shape): Ditto.
        * simplify.c (gfc_simplify_shape): Ditto.
        * intrinsic.h (gfc_check_shape, gfc_resolve_shape,
        gfc_simplify_shape): Update prototypes.
        * intrinisc.text (SHAPE): Document kind argument.

2011-01-28  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47507
        * resolve.c (resolve_formal_arglist): Allow arguments with VALUE
        attribute also without INTENT.

2011-01-28  Tobias Burnus  <burnus@net-b.de>

        * gfortran.texi (Fortran 2003 status): Mention support for
        nonconstant namelist variables.

2011-01-28  Paul Thomas  <pault@gcc.gnu.org>
            Tobias Burnus  <burnus@gcc.gnu.org>

        PR fortran/45170
        PR fortran/35810
        PR fortran/47350
        * interface.c (compare_actual_formal): An allocatable or pointer
        deferred length actual is only allowed if the formal argument
        is also deferred length. Clean up whitespace.
        * trans-expr.c (gfc_conv_procedure_call): Pass string length for
        deferred character length formal arguments by reference. Do the
        same for function results.
        (gfc_trans_pointer_assignment): Do not do runtime check of lhs
        and rhs character lengths, if deferred length lhs.  In this case
        set the lhs character length to that of the rhs.
        (gfc_conv_string_parameter): Remove assert that string length is
        an integer type.
        (is_scalar_reallocatable_lhs): New function.
        (alloc_scalar_allocatable_for_assignment): New function.
        (gfc_trans_assignment_1): Call above new function. If the rhs is
        a deferred character length itself, makes ure that the function
        is called before reallocation, so that the length is available.
        (gfc_trans_asssignment): Remove error about assignment to
        deferred length character variables.
        * gfortran.texi: Update entry about (re)allocation on
        assignment.
        * trans-stmt.c (gfc_trans_allocate): Add code to handle deferred
        length character variables.
        * module.c (mio_typespec): Transfer deferred characteristic.
        * trans-types.c (gfc_get_function_type): New code to generate
        hidden typelist, so that those character lengths that are
        passed by reference get the right type.
        * resolve.c (resolve_contained_fntype): Supress error for
        deferred character length functions.
        (resolve_function, resolve_fl_procedure) The same.
        (check_symbols): Remove the error that support for
        entity with deferred type parameter is not yet implemented.
        (resolve_fl_derived): The same.
        match.c (alloc_opt_list): Allow MOLD for deferred length object.
        * trans-decl.c (gfc_get_symbol_decl): For deferred character
        length dummies, generate a local variable for string length.
        (create_function_arglist): Hidden length can be a pointer.
        (gfc_trans_deferred_vars): For deferred character length
        results and dummies, assign the string length to the local
        variable from the hidden argument on entry and the other way
        round on exit, as appropriate.

2011-01-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47474
        * trans-decl.c (gfc_generate_function_code): Fix init
        of allocatable result variable with allocatable components.

2011-01-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47472
        * options.c (gfc_handle_module_path_options): Save
        module path without trailing slash as include path.

2011-01-25  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47448
        * interface.c (gfc_check_operator_interface): Fix
        defined-assignment check.

2011-01-23  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47421
        * trans-decl.c (gfc_trans_deferred_vars): Do not nullify
        scalar allocatable dummy arguments.

2011-01-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/38536
        * resolve.c (gfc_iso_c_func_interface):  For C_LOC,
        check for array sections followed by component references
        which are illegal.  Also check for coindexed arguments.

2011-01-22  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47399
        * primary.c (gfc_match_varspec): Relax gcc_assert to allow for
        PARAMETER TBP.

2011-01-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47394
        * error.c (gfc_error_now, gfc_fatal_error, gfc_error_check):
        Use defined instead of magic number exit status codes.
        * scanner.c (include_line, gfc_new_file): Ditto.

2011-01-21  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47377
        * expr.c (gfc_check_pointer_assign): Reject expr data-targets
        without pointer attribute.

2011-01-18  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47240
        * resolve.c (expression_rank): Fix rank of procedure poiner components.
        * trans-expr.c (gfc_conv_procedure_call): Take care of procedure
        pointer components as actual arguments.

2011-01-17  Jakub Jelinek  <jakub@redhat.com>

        PR fortran/47331
        * gfortran.h (struct gfc_omp_saved_state): New type.
        (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New prototypes.
        * resolve.c (resolve_global_procedure): Call it around gfc_resolve
        call.
        * openmp.c (gfc_omp_save_and_clear_state, gfc_omp_restore_state): New
        functions.

2011-01-17  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47327
        * invoke.texi (Options to request or suppress errors
        and warnings): Fix cross link.

2011-01-15  Tobias Burnus  <burnus@net-b.de>

        * gfortran.texi: Update Fortran 2003 Status section.

        PR fortran/47177
        * invoke.texi: Add missing "-E" to the -dM example.

2011-01-13  Tobias Burnus  <burnus@net-b.de>

        PR fortran/47268
        * intrinsic.texi (get_command_argument, get_environment_variable):
        Mark arguments as optional in the Arguments section.

2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
            Tobias Burnus  <burnus@net-b.de>

        PR fortran/47260
        * trans-decl.c (gfc_get_extern_function_decl,
        build_function_decl): Set TREE_PUBLIC/TREE_EXTERNAL before
        calling decl_attributes.

2011-01-13  Tobias Burnus  <burnus@net-b.de>
            Mikael Morin  <mikael@gcc.gnu.org>

        PR fortran/45848
        PR fortran/47204
        * gfortran.h (gfc_code): Move union ext's case_list into
        the struct block.
        * dump-parse-tree.c (show_code_node): Adapt by prefixing case_list
        by "block.".
        * frontend-passes.c (gfc_code_walker): Ditto.
        * match.c (gfc_match_goto, gfc_match_call, gfc_match_case,
        gfc_match_type_is, gfc_match_class_is): Ditto.
        * resolve.c (resolve_select, resolve_select_type): Ditto.
        * st.c (gfc_free_statement): Ditto.
        * trans-stmt.c (gfc_trans_integer_select, gfc_trans_logical_select,
        gfc_trans_character_select): Ditto.
        * parse.c (resolve_all_program_units): For error recovery, avoid
        segfault is proc_name is NULL.

2011-01-11  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/47051
        * trans-array.c (gfc_alloc_allocatable_for_assignment): Change
        to be standard compliant by testing for shape rather than size
        before skipping reallocation. Improve comments.

2011-01-09  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47224
        * resolve.c (resolve_actual_arglist): Remove unneeded and buggy piece
        of code.

2011-01-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/38536
        * resolve.c (is_scalar_expr_ptr):  For a substring reference,
        use gfc_dep_compare_expr to compare start and end expession.
        Add FIXME for using gfc_deb_compare_expr elsewhere.

2011-01-09  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/46313
        * class.c (get_unique_type_string): Make type name start with upper
        case letter.

2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/46405
        * invoke.texi:  Mention -ffree-line-length-none and
        -ffixed-line-length-none for preprocessing.

2011-01-08  Paul Thomas  <pault@gcc.gnu.org>

        PR fortran/46896
        * trans-expr.c (gfc_conv_procedure_call): With a non-copying
        procedure argument (eg TRANSPOSE) use a temporary if there is
        any chance of aliasing due to host or use association.
        (arrayfunc_assign_needs_temporary): Correct logic for function
        results and do not use a temporary for implicitly PURE
        variables.  Use a temporary for Cray pointees.
        * symbol.c (gfc_add_save): Explicit SAVE not compatible with
        implicit pureness of containing procedure.
        * decl.c (match_old_style_init, gfc_match_data): Where decl
        would fail in PURE procedure, set implicit_pure to zero.
        * gfortran.h: Add implicit_pure to structure symbol_attr and
        add prototype for function gfc_implicit_pure.
        * expr.c (gfc_check_pointer_assign, gfc_check_vardef_context):
        Where decl would fail in PURE procedure, reset implicit_pure.
        * io.c (match_vtag, gfc_match_open, gfc_match_close,
        gfc_match_print, gfc_match_inquire, gfc_match_wait): The same.
        * match.c (gfc_match_critical, gfc_match_stopcode,
        sync_statement, gfc_match_allocate, gfc_match_deallocate): The
        same.
        * parse.c (decode_omp_directive): The same.
        (parse_contained): If not PURE, set implicit pure attribute.
        * resolve.c (resolve_formal_arglist, resolve_structure_cons,
        resolve_function, resolve_ordinary_assign): The same.
        (gfc_implicit_pure): New function.
        * module.c (mio_symbol_attribute): Introduce AB_IMPLICIT_PURE
        to ab_attribute enum and use it in this function.

2011-01-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/45777
        * symbol.c (gfc_symbols_could_alias):  Strip gfc_ prefix,
        make static and move in front of its only caller, to ...
        * trans-array.c (symbols_could_alias): ... here.
        Pass information about pointer and target status as
        arguments.  Allocatable arrays don't alias anything
        unless they have the POINTER attribute.
        (gfc_could_be_alias):  Keep track of pointer and target
        status when following references.  Also check if typespecs
        of components match those of other components or symbols.

2011-01-07  Tobias Burnus  <burnus@net-b.de>

        PR fortran/41580
        * class.c (gfc_build_class_symbol): Mark __vtab as attr.vtab.
        * intrinsic.c (add_functions): Use simplify functions for
        EXTENDS_TYPE_OF and SAME_TYPE_AS.
        * intrinsic.h (gfc_simplify_extends_type_of,
        gfc_simplify_same_type_as): New prototypes.
        * simplify.c (is_last_ref_vtab, gfc_simplify_extends_type_of,
        gfc_simplify_same_type_as): New functions.

2011-01-07  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47189
        PR fortran/47194
        * gfortran.h (gfc_lval_expr_from_sym): Moved prototype.
        * class.c (gfc_class_null_initializer): Initialize _vptr to declared
        type.
        * expr.c (gfc_lval_expr_from_sym): Moved here from symbol.c.
        * resolve.c (resolve_deallocate_expr): _data component will be added
        at translation stage.
        * symbol.c (gfc_lval_expr_from_sym): Moved to expr.c.
        * trans-stmt.c (gfc_trans_deallocate): Reset _vptr to declared type.

2011-01-06  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/33117
        PR fortran/46478
        * parse.c (parse_interface): Remove check for procedure types.
        * interface.c (check_interface0): Verify that procedures are
        either all SUBROUTINEs or all FUNCTIONs.

2011-01-05  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47180
        * trans-expr.c (gfc_trans_class_assign): Bugfix for r168524 (make sure
        'vtab' is initialized).

2011-01-05  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47180
        * trans-expr.c (gfc_trans_class_assign): For a polymorphic NULL pointer
        assignment, set the _vptr component to the declared type.

2011-01-05  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/46017
        * resolve.c (resolve_allocate_deallocate): Follow references to
        check for duplicate occurence of allocation/deallocation objects.

2011-01-05  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/47024
        * trans-decl.c (gfc_trans_deferred_vars): Initialize the _vpr component
        of polymorphic allocatables according to their declared type.

2011-01-04  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/46448
        * class.c (gfc_find_derived_vtab): Set the module field for the copying
        routine to make sure it receives module name mangling.

2011-01-03  Jakub Jelinek  <jakub@redhat.com>

        * gfortranspec.c (lang_specific_driver): Update copyright notice
        dates.

2011-01-03  Janus Weil  <janus@gcc.gnu.org>

        * intrinsic.texi (LEADZ): Fix example.

2011-01-02  Janus Weil  <janus@gcc.gnu.org>

        PR fortran/46408
        * class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
        routine.


Copyright (C) 2011 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.