|  | ! RUN: %python %S/test_errors.py %s %flang_fc1 | 
|  | module m | 
|  | public i | 
|  | integer, private :: j | 
|  | !ERROR: The accessibility of 'i' has already been specified as PUBLIC | 
|  | private i | 
|  | !WARNING: The accessibility of 'j' has already been specified as PRIVATE | 
|  | private j | 
|  | end | 
|  |  | 
|  | module m2 | 
|  | interface operator(.foo.) | 
|  | module procedure ifoo | 
|  | end interface | 
|  | public :: operator(.foo.) | 
|  | !ERROR: The accessibility of 'OPERATOR(.foo.)' has already been specified as PUBLIC | 
|  | private :: operator(.foo.) | 
|  | interface operator(+) | 
|  | module procedure ifoo | 
|  | end interface | 
|  | public :: operator(+) | 
|  | !ERROR: The accessibility of 'OPERATOR(+)' has already been specified as PUBLIC | 
|  | private :: operator(+) , ifoo | 
|  | contains | 
|  | integer function ifoo(x, y) | 
|  | logical, intent(in) :: x, y | 
|  | end | 
|  | end module | 
|  |  | 
|  | module m3 | 
|  | type t | 
|  | end type | 
|  | private :: operator(.lt.) | 
|  | interface operator(<) | 
|  | logical function lt(x, y) | 
|  | import t | 
|  | type(t), intent(in) :: x, y | 
|  | end function | 
|  | end interface | 
|  | !ERROR: The accessibility of 'OPERATOR(<)' has already been specified as PRIVATE | 
|  | public :: operator(<) | 
|  | interface operator(.gt.) | 
|  | logical function gt(x, y) | 
|  | import t | 
|  | type(t), intent(in) :: x, y | 
|  | end function | 
|  | end interface | 
|  | public :: operator(>) | 
|  | !ERROR: The accessibility of 'OPERATOR(.GT.)' has already been specified as PUBLIC | 
|  | private :: operator(.gt.) | 
|  | end | 
|  |  | 
|  | module m4 | 
|  | private | 
|  | type, public :: foo | 
|  | end type | 
|  | interface foo | 
|  | procedure fun | 
|  | end interface | 
|  | contains | 
|  | function fun | 
|  | end | 
|  | end | 
|  |  | 
|  | subroutine s4 | 
|  | !ERROR: 'fun' is PRIVATE in 'm4' | 
|  | use m4, only: foo, fun | 
|  | type(foo) x ! ok | 
|  | print *, foo() ! ok | 
|  | end | 
|  |  | 
|  | module m5 | 
|  | public | 
|  | type, private :: foo | 
|  | end type | 
|  | interface foo | 
|  | procedure fun | 
|  | end interface | 
|  | contains | 
|  | function fun | 
|  | end | 
|  | end | 
|  |  | 
|  | subroutine s5 | 
|  | !ERROR: 'foo' is PRIVATE in 'm5' | 
|  | use m5, only: foo, fun | 
|  | print *, fun() ! ok | 
|  | end |