! { dg-do compile } ! ! PR fortran/38665, in which checking for host association ! was wrongly trying to substitute mod_symmon(mult) with ! mod_sympoly(mult) in the user operator expression on line ! 43. ! ! Contributed by Thomas Koenig ! module mod_symmon implicit none public :: t_symmon, operator(*) private type t_symmon integer :: ierr = 0 end type t_symmon interface operator(*) module procedure mult end interface contains elemental function mult(m1,m2) result(m) type(t_symmon), intent(in) :: m1, m2 type(t_symmon) :: m end function mult end module mod_symmon module mod_sympoly use mod_symmon implicit none type t_sympol type(t_symmon), allocatable :: mons(:) end type t_sympol contains elemental function mult(p1,p2) result(p) type(t_sympol), intent(in) :: p1,p2 type(t_sympol) :: p type(t_symmon), allocatable :: mons(:) mons(1) = p1%mons(1)*p2%mons(2) end function end module