2011-04-29 Tobias Burnus <burnus@net-b.de>
[official-gcc.git] / gcc / testsuite / gfortran.dg / typebound_proc_22.f90
blobf7691c5f283d15a44c3dc0943b420473d8339ff2
1 ! { dg-do compile }
3 ! PR fortran/48810
5 ! Contributed by Andrew Baldwin
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
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
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
49 ! { dg-final { cleanup-modules "qtest qtestpriv" } }