https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120958
--- Comment #3 from Martin Jambor <jamborm at gcc dot gnu.org> --- SRA is "Scalar Replacement of Aggregates" pass. It is one of our optimization passes which can split up aggregates into scalar components and thus allow further optimizations. To "escape" means that the address of the parameter is stored somewhere in the global state of the program during the execution of the called function and so it can be modified through an alias or in a subsequent call to some function. My knowledge of Fortran is limited but my understanding is that later versions of Fortran introduced the ASYNCHRONOUS attribute to deal with thee situations.