| ! { dg-do compile } |
| ! |
| ! PR fortran/51816 |
| ! |
| ! Contributed by Harald Anlauf |
| ! |
| module foo |
| implicit none |
| type t |
| integer :: i |
| end type t |
| interface operator (*) |
| module procedure mult |
| end interface |
| contains |
| function mult (i, j) |
| type(t), intent(in) :: i, j |
| integer :: mult |
| mult = i%i * j%i |
| end function mult |
| end module foo |
| |
| module bar |
| implicit none |
| type t2 |
| integer :: i |
| end type t2 |
| interface operator (>) |
| module procedure gt |
| end interface |
| contains |
| function gt (i, j) |
| type(t2), intent(in) :: i, j |
| logical :: gt |
| gt = i%i > j%i |
| end function gt |
| end module bar |
| |
| use bar, only : t2, operator(>) , operator(>) |
| use foo, only : t |
| use foo, only : operator (*) |
| use foo, only : t |
| use foo, only : operator (*) |
| implicit none |
| type(t) :: i = t(1), j = t(2) |
| type(t2) :: k = t2(1), l = t2(2) |
| print *, i*j |
| print *, k > l |
| end |