If a type is renamed on import and then an unrenamed copy is also imported, and overloaded functions are called then gfortran fails to compile with a blocked by an incompatible object error. The code compiles cleanly with {NAG, ifort, g95}.
Not sure if this is a bug or non-standard code, though I suspect the former. Thanks, Joanthan Hogg Full test case: [EMAIL PROTECTED] ~/bugs/gfortran-4.3/import_rename $ make gfortran-4.3 -c stype.f90 gfortran-4.3 -c dtype.f90 gfortran-4.3 -c test.f90 test.f90:15.29: subroutine fred(sval, dval) 1 test.f90:16.15: use stype 2 Error: The type 'overloaded_type' cannot be host associated at (1) because it is blocked by an incompatible object of the same name declared at (2) make: *** [test.o] Error 1 [EMAIL PROTECTED] ~/bugs/gfortran-4.3/import_rename $ gfortran-4.3 -v Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ../configure --program-suffix=-4.3 Thread model: posix gcc version 4.3.0 (GCC) [EMAIL PROTECTED] ~/bugs/gfortran-4.3/import_rename $ cat test.f90 program test use stype, overloaded_type_s => overloaded_type use dtype, overloaded_type_d => overloaded_type implicit none type(overloaded_type_s) :: sval type(overloaded_type_d) :: dval sval%part = 1 dval%part = 2 call fred(sval, dval) contains subroutine fred(sval, dval) use stype type(overloaded_type_s), intent(in) :: sval type(overloaded_type_d), intent(in) :: dval call overloaded_sub(sval) call overloaded_sub(dval) end subroutine end program [EMAIL PROTECTED] ~/bugs/gfortran-4.3/import_rename $ cat stype.f90 module stype implicit none type overloaded_type real :: part end type interface overloaded_sub module procedure overloaded_sub_s end interface contains subroutine overloaded_sub_s(otype) type(overloaded_type), intent(in) :: otype print *, "s type = ", otype%part end subroutine end module [EMAIL PROTECTED] ~/bugs/gfortran-4.3/import_rename $ cat dtype.f90 module dtype implicit none type overloaded_type double precision :: part end type interface overloaded_sub module procedure overloaded_sub_d end interface contains subroutine overloaded_sub_d(otype) type(overloaded_type), intent(in) :: otype print *, "d type = ", otype%part end subroutine end module -- Summary: Complex module-based overloading fails Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: J dot Hogg at rl dot ac dot uk GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35945