| ! { dg-do compile } |
| ! PR fortran/45786 - operators were not correctly marked as public |
| ! if the alternative form was used. |
| ! Test case contributed by Neil Carlson. |
| module foo_type |
| private |
| public :: foo, operator(==) |
| type :: foo |
| integer :: bar |
| end type |
| interface operator(.eq.) |
| module procedure eq_foo |
| end interface |
| contains |
| logical function eq_foo (a, b) |
| type(foo), intent(in) :: a, b |
| eq_foo = (a%bar == b%bar) |
| end function |
| end module |
| |
| subroutine use_it (a, b) |
| use foo_type |
| type(foo) :: a, b |
| print *, a == b |
| end subroutine |