1! { dg-do compile } 2 3! Type-bound procedures 4! Check for correct access-checking on type-bound procedures. 5 6MODULE m 7 IMPLICIT NONE 8 9 TYPE t 10 CONTAINS 11 PROCEDURE, NOPASS, PRIVATE :: priv => proc 12 PROCEDURE, NOPASS, PUBLIC :: publ => proc 13 END TYPE t 14 15CONTAINS 16 17 SUBROUTINE proc () 18 END SUBROUTINE proc 19 20 ! This is inside the module. 21 SUBROUTINE test1 () 22 IMPLICIT NONE 23 TYPE(t) :: obj 24 25 CALL obj%priv () ! { dg-bogus "PRIVATE" } 26 CALL obj%publ () 27 END SUBROUTINE test1 28 29END MODULE m 30 31! This is outside the module. 32SUBROUTINE test2 () 33 USE m 34 IMPLICIT NONE 35 TYPE(t) :: obj 36 37 CALL obj%priv () ! { dg-error "PRIVATE" } 38 CALL obj%publ () 39END SUBROUTINE test2 40