! { dg-do compile } ! ! PR 42677: [4.5 Regression] Bogus Error: Ambiguous interfaces '...' in intrinsic assignment operator ! ! Contributed by Harald Anlauf module mod1 implicit none type t_m integer :: i = 0 end type t_m !------------------------------------------------------------------------------ interface assignment (=) module procedure assign_m end interface !------------------------------------------------------------------------------ contains subroutine assign_m (y, x) type(t_m) ,intent(inout) :: y type(t_m) ,intent(in) :: x end subroutine assign_m end module mod1 !============================================================================== module mod2 use mod1, only: t_m, assignment(=) implicit none type t_atm integer :: k end type t_atm !------------------------------------------------------------------------------ interface assignment(=) module procedure assign_to_atm end interface !------------------------------------------------------------------------------ interface pure subroutine delete_m (x) use mod1 type(t_m) ,intent(in) :: x end subroutine delete_m end interface !------------------------------------------------------------------------------ contains subroutine assign_to_atm (atm, r) type(t_atm) ,intent(inout) :: atm integer ,intent(in) :: r end subroutine assign_to_atm end module mod2