1! { dg-do compile } 2module op 3 4 implicit none 5 6 type a 7 integer i 8 end type a 9 10 type b 11 real i 12 end type b 13 14 interface operator(==) 15 module procedure f1 16 end interface operator(.eq.) 17 interface operator(.eq.) 18 module procedure f2 19 end interface operator(==) 20 21 interface operator(/=) 22 module procedure f1 23 end interface operator(.ne.) 24 interface operator(.ne.) 25 module procedure f2 26 end interface operator(/=) 27 28 interface operator(<=) 29 module procedure f1 30 end interface operator(.le.) 31 interface operator(.le.) 32 module procedure f2 33 end interface operator(<=) 34 35 interface operator(<) 36 module procedure f1 37 end interface operator(.lt.) 38 interface operator(.lt.) 39 module procedure f2 40 end interface operator(<) 41 42 interface operator(>=) 43 module procedure f1 44 end interface operator(.ge.) 45 interface operator(.ge.) 46 module procedure f2 47 end interface operator(>=) 48 49 interface operator(>) 50 module procedure f1 51 end interface operator(.gt.) 52 interface operator(.gt.) 53 module procedure f2 54 end interface operator(>) 55 56 contains 57 58 function f2(x,y) 59 logical f2 60 type(a), intent(in) :: x, y 61 end function f2 62 63 function f1(x,y) 64 logical f1 65 type(b), intent(in) :: x, y 66 end function f1 67 68end module op 69