https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113338
--- Comment #1 from anlauf at gcc dot gnu.org --- NAG also rejects the code. The code compiles with gfortran if one declares t interoperable: type, bind(c) :: t Note that F2008 still had: "(5) any dummy argument without the VALUE attribute corresponds to a formal parameter of the prototype that is of a pointer type, and the dummy argument is interoperable with an entity of the referenced type (ISO/IEC 9899:1999, 6.2.5, 7.17, and 7.18.1) of the formal parameter, ..." I wonder why the interoperability requirement was dropped.