| ! { dg-do compile } |
| ! |
| ! PR fortran/48810 |
| ! |
| ! Contributed by Andrew Baldwin |
| ! |
| module qtest |
| type foobar |
| integer :: x |
| contains |
| private |
| procedure :: gimmex |
| generic, public :: getx => gimmex |
| end type foobar |
| contains |
| function gimmex(foo) |
| class (foobar) :: foo |
| integer :: gimmex |
| gimmex = foo%x |
| end function gimmex |
| end module qtest |
| |
| module qtestPriv |
| type foobarPriv |
| integer :: x |
| contains |
| private |
| procedure :: gimmexPriv |
| generic, private :: getxPriv => gimmexPriv |
| end type foobarPriv |
| contains |
| function gimmexPriv(foo) |
| class (foobarPriv) :: foo |
| integer :: gimmex |
| gimmex = foo%x |
| end function gimmexPriv |
| end module qtestPriv |
| |
| program quicktest |
| use qtest |
| use qtestPriv |
| type (foobar) :: foo |
| type (foobarPriv) :: fooPriv |
| integer :: bar |
| bar = foo%getx() ! OK |
| bar = fooPriv%getxPriv() ! { dg-error " is PRIVATE " } |
| end program quicktest |