https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103931
--- Comment #22 from anlauf at gcc dot gnu.org ---
Here another invalid example which ICEs because the clash is not detected:
module AModule
implicit none
type, bind(C) :: c_ptr
private
integer(8) :: c_address
end type c_ptr
end module
module GModule
use AModule, only: C_PTR
use, intrinsic :: ISO_C_BINDING, only: C_PTR
implicit none
type(c_ptr) :: ptr
end module
This hits an assert a few lines above the place you looked at...
(Interchanging the use statements helps here.)