http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58557
--- Comment #2 from janus at gcc dot gnu.org --- I think the conversion errors are simply due to declaration issues in the test case, e.g.: program main implicit none type t end type t interface function f_type_na() import :: t type(t) :: f_type end function end interface type(t) :: b b = f_type_na() end program b = f_type_na() 1 Error: Can't convert REAL(4) to TYPE(t) at (1) But the following variant yields a different error: program main implicit none type t end type t type(t) :: b b = f_type_na() contains function f_type_na() type(t) :: f_type end function end program function f_type_na() 1 Error: Contained function 'f_type_na' at (1) has no IMPLICIT type c0.f90:11.6: b = f_type_na() 1 Error: Can't convert UNKNOWN to TYPE(t) at (1) Apparently we apply implicit typing to the INTERFACE version (although IMPLICIT NONE is given).