https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71764
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kargl at gcc dot gnu.org --- Comment #3 from kargl at gcc dot gnu.org --- Minimum testcase. module sqlite3_primitive use iso_c_binding, only: c_funptr end module sqlite3_primitive module fsqlite_runtime use sqlite3_primitive use, intrinsic :: iso_c_binding, only : c_null_funptr, c_funptr implicit none contains subroutine fsqlite_exec type(c_funptr) to_cb to_cb = c_null_funptr end subroutine end module Another workaround is use PRIVATE in sqlite3_primitive and only declare those items that need to by PUBLIC.