! { 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 <tkoenig@gcc.gnu.org>
!
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
