https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100989
Thomas Koenig <tkoenig at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2021-06-09 Ever confirmed|0 |1 Status|UNCONFIRMED |WAITING --- Comment #1 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- F2018, 8.5.4: " An entity with the ASYNCHRONOUS attribute is a variable, and may be subject to asynchronous input/output or asynchronous communication." So, the variable can be changed without going through normal program flow. A pointer marked as escaping isn't enough, because there can also be a change during code which does not invoke any other procedures. (such as by an MPI call). If volatile isn't the right model, what is?