https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64952

--- Comment #5 from Mikael Morin <mikael at gcc dot gnu.org> ---
Author: mikael
Date: Mon Mar 23 07:53:31 2015
New Revision: 221586

URL: https://gcc.gnu.org/viewcvs?rev=221586&root=gcc&view=rev
Log:
2015-03-23  Paul Thomas  <pa...@gcc.gnu.org>
        Mikael Morin  <mik...@gcc.gnu.org>

    PR fortran/64952
fortran/
    * gfortran.h (struct symbol_attribute) : New field
    'array_outer_dependency'.
    * trans.h (struct gfc_ss_info): New field 'array_outer_dependency'.
    * module.c (enum ab_attribute): New value AB_ARRAY_OUTER_DEPENDENCY.
    (attr_bits): Append same value to initializer.
    (mio_symbol_attribute): Handle 'array_outer_dependency' attr
    in module read and write.
    * resolve.c (update_current_proc_outer_array_dependency): New function.
    (resolve_function, resolve_call): Add code to update current procedure's
    'array_outer_dependency' attribute.
    (resolve_variable): Mark current procedure with attribute
    array_outer_dependency if the variable is an array coming from outside
    the current namespace.
    (resolve_fl_procedure): Mark a procedure without body with attribute
    'array_outer_dependency'.
    * trans-array.c (gfc_conv_resolve_dependencies): If any ss is
    marked as 'array_outer_dependency' generate a temporary.
    (gfc_walk_function_expr): If the function may reference external arrays,
    mark the head gfc_ss with flag 'array_outer_dependency'.
testsuite/
    * gfortran.dg/elemental_dependency_4.f90: New.
    * gfortran.dg/elemental_dependency_5.f90: New.


Added:
    trunk/gcc/testsuite/gfortran.dg/elemental_dependency_4.f90
    trunk/gcc/testsuite/gfortran.dg/elemental_dependency_5.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/gfortran.h
    trunk/gcc/fortran/module.c
    trunk/gcc/fortran/resolve.c
    trunk/gcc/fortran/trans-array.c
    trunk/gcc/fortran/trans.h
    trunk/gcc/testsuite/ChangeLog

Reply via email to