blob: 09878b690e91ec8324ec39c56df7f66849c8e072 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
! { dg-do compile }
! PR 23843
! IO of derived types with private components is allowed in the module itself,
! but not elsewhere
module gfortran2
type :: tp1
private
integer :: i
end type tp1
type :: tp1b
integer :: i
end type tp1b
type :: tp2
real :: a
type(tp1) :: t
end type tp2
contains
subroutine test()
type(tp1) :: x
type(tp2) :: y
write (*, *) x
write (*, *) y
end subroutine test
end module gfortran2
program prog
use gfortran2
implicit none
type :: tp3
type(tp2) :: t
end type tp3
type :: tp3b
type(tp1b) :: t
end type tp3b
type(tp1) :: x
type(tp2) :: y
type(tp3) :: z
type(tp3b) :: zb
write (*, *) x ! { dg-error "PRIVATE components" }
write (*, *) y ! { dg-error "PRIVATE components" }
write (*, *) z ! { dg-error "PRIVATE components" }
write (*, *) zb
end program prog
! { dg-final { cleanup-modules "gfortran2" } }
|