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

--- Comment #15 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
(In reply to anlauf from comment #14)
> (In reply to Thomas Koenig from comment #13)
> > I think we have quite a few bad choices here, each with different drawbacks.
> > I don't think we should do nothing, or pessimize existing code.
> > 
> > Hmm... what about adding an option which sets ASYNCHRONOUS on every
> > assumed size and explicit size (i.e. F77-style) arguments?  This
> > would restrict the effect to those users who explicitly ask for it.
> 
> Why adding an option?  Why not doing it for all cases where SRA kicks in?

Because that would pessimize existing code (don't know how
much it would matter, but I do not think we would like to
have escaping pointers be the default.  This would mean that
the compiler would have to assume that, in

   call foo(x)
   call bar(y)

the call to bar can change x, and that is not what Fortran
is about.

> 
> And does assumed size really fail, or only explicit size?

Assumed size is

      SUBROUTINE FOO(X)
      REAL X(*)

It took me a long time to keep the terminology separated
from assumed shape, which is

  subroutine foo(x)
     real, dimension(:) :: x

I browsed the github repository for a bit, but I didn't find the
(erroneous) declarations.  Does anybody have them?




> > And no, it would not be elegant.
> 
> That's why I think it should either not be an option, or an option that
> is on by default.

I disagree (see above).

Reply via email to