https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66973
--- Comment #4 from Scot Breitenfeld <brtnfld at hdfgroup dot org> --- The work around is instead to do: PROGRAM main USE H5T IMPLICIT NONE REAL, TARGET :: val TYPE(C_PTR) :: f_ptr f_ptr = C_LOC(val) CALL pickone(f_ptr) END PROGRAM main