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).