| ! { dg-do compile } |
| ! |
| ! PR 42677: [4.5 Regression] Bogus Error: Ambiguous interfaces '...' in intrinsic assignment operator |
| ! |
| ! Contributed by Harald Anlauf <anlauf@gmx.de> |
| |
| 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 |
| |