http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25829
--- Comment #21 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-04-15 09:10:56 UTC --- (In reply to comment #19) > A brute-force method would be to add a __sync_synchronize Actually, this idea does not work properly - neither for INQUIRE(...,PENDING=) nor for ASYNCHRONOUS with MPI 3. (Cf. link below) (In reply to comment #20) > If ASYNCHRONOUS expands to volatile, no barrier should be necessary. Well, VOLATILE has the wrong semantics, i.e. it will only partially solve the problem. Additionally, you create huge missed-optimization issues. I have now asked at GCC@ (and fortran@) for some suggestions: http://gcc.gnu.org/ml/fortran/2011-04/msg00143.html (There is currently also a vivid discussion on J3's interop and MPI Forum's MPI3-Fortran mailing lists about ASYNCHRONOUS and nonblocking MPI calls.)