1! { dg-do compile } 2! 3! PR fortran/48810 4! 5! Contributed by Andrew Baldwin 6! 7 module qtest 8 type foobar 9 integer :: x 10 contains 11 private 12 procedure :: gimmex 13 generic, public :: getx => gimmex 14 end type foobar 15 contains 16 function gimmex(foo) 17 class (foobar) :: foo 18 integer :: gimmex 19 gimmex = foo%x 20 end function gimmex 21 end module qtest 22 23 module qtestPriv 24 type foobarPriv 25 integer :: x 26 contains 27 private 28 procedure :: gimmexPriv 29 generic, private :: getxPriv => gimmexPriv 30 end type foobarPriv 31 contains 32 function gimmexPriv(foo) 33 class (foobarPriv) :: foo 34 integer :: gimmex 35 gimmex = foo%x 36 end function gimmexPriv 37 end module qtestPriv 38 39 program quicktest 40 use qtest 41 use qtestPriv 42 type (foobar) :: foo 43 type (foobarPriv) :: fooPriv 44 integer :: bar 45 bar = foo%getx() ! OK 46 bar = fooPriv%getxPriv() ! { dg-error " is PRIVATE " } 47 end program quicktest 48