[PATCH] Automatics in equivalence statements
Bernhard Reutner-Fischer
rep.dot.nop@gmail.com
Mon Jun 24 13:20:00 GMT 2019
On Fri, 21 Jun 2019 07:10:11 -0700
Steve Kargl <sgk@troutmask.apl.washington.edu> wrote:
> On Fri, Jun 21, 2019 at 02:31:51PM +0100, Mark Eggleston wrote:
> > Currently variables with the AUTOMATIC attribute can not appear in an
> > EQUIVALENCE statement. However its counterpart, STATIC, can be used in
> > an EQUIVALENCE statement.
> >
> > Where there is a clear conflict in the attributes of variables in an
> > EQUIVALENCE statement an error message will be issued as is currently
> > the case.
> >
> > If there is no conflict e.g. a variable with a AUTOMATIC attribute and a
> > variable(s) without attributes all variables in the EQUIVALENCE will
> > become AUTOMATIC.
> >
> > Note: most of this patch was written by Jeff Law <law@redhat.com>
> >
> > Please review.
> >
> > ChangeLogs:
> >
> > gcc/fortran
> >
> > Jeff Law <law@redhat.com>
> > Mark Eggleston <mark.eggleston@codethink.com>
> >
> > * gfortran.h: Add check_conflict declaration.
>
> This is wrong. By convention a routine that is not static
> has the gfc_ prefix.
>
Furthermore doesn't this export indicate that you're committing a
layering violation somehow?
> * symbol.c (check_conflict): Remove automatic in equivalence conflict
> check.
> * symbol.c (save_symbol): Add check for in equivalence to stop the
> the save attribute being added.
> * trans-common.c (build_equiv_decl): Add is_auto parameter and
> add !is_auto to condition where TREE_STATIC (decl) is set.
> * trans-common.c (build_equiv_decl): Add local variable is_auto,
> set it true if an atomatic attribute is encountered in the variable
atomatic? I read atomic but you mean automatic.
> list. Call build_equiv_decl with is_auto as an additional parameter.
> flag_dec_format_defaults is enabled.
> * trans-common.c (accumulate_equivalence_attributes) : New subroutine.
> * trans-common.c (find_equivalence) : New local variable dummy_symbol,
> accumulated equivalence attributes from each symbol then check for
> conflicts.
I'm just curious why you don't gfc_copy_attr for the most part of accumulate_equivalence_attributes?
thanks,
More information about the Fortran
mailing list