52 lines
1.2 KiB
Fortran
52 lines
1.2 KiB
Fortran
|
! { dg-do compile }
|
||
|
! { dg-options "-c" }
|
||
|
|
||
|
MODULE mod_t
|
||
|
type :: t
|
||
|
integer :: x
|
||
|
end type
|
||
|
|
||
|
! user defined operator
|
||
|
INTERFACE OPERATOR(.FOO.)
|
||
|
MODULE PROCEDURE t_foo
|
||
|
END INTERFACE
|
||
|
|
||
|
INTERFACE OPERATOR(.FOO.)
|
||
|
MODULE PROCEDURE t_foo ! { dg-error "already present" }
|
||
|
END INTERFACE
|
||
|
|
||
|
INTERFACE OPERATOR(.FOO.)
|
||
|
MODULE PROCEDURE t_bar ! { dg-error "Ambiguous interfaces" }
|
||
|
END INTERFACE
|
||
|
|
||
|
! intrinsic operator
|
||
|
INTERFACE OPERATOR(==)
|
||
|
MODULE PROCEDURE t_foo
|
||
|
END INTERFACE
|
||
|
|
||
|
INTERFACE OPERATOR(.eq.)
|
||
|
MODULE PROCEDURE t_foo ! { dg-error "already present" }
|
||
|
END INTERFACE
|
||
|
|
||
|
INTERFACE OPERATOR(==)
|
||
|
MODULE PROCEDURE t_bar ! { dg-error "Ambiguous interfaces" }
|
||
|
END INTERFACE
|
||
|
|
||
|
INTERFACE OPERATOR(.eq.)
|
||
|
MODULE PROCEDURE t_bar ! { dg-error "already present" }
|
||
|
END INTERFACE
|
||
|
|
||
|
CONTAINS
|
||
|
LOGICAL FUNCTION t_foo(this, other)
|
||
|
TYPE(t), INTENT(in) :: this, other
|
||
|
t_foo = .FALSE.
|
||
|
END FUNCTION
|
||
|
|
||
|
LOGICAL FUNCTION t_bar(this, other)
|
||
|
TYPE(t), INTENT(in) :: this, other
|
||
|
t_bar = .FALSE.
|
||
|
END FUNCTION
|
||
|
END MODULE
|
||
|
|
||
|
! { dg-final { cleanup-modules "mod_t" } }
|