aboutsummaryrefslogtreecommitdiff
blob: 392b320afdb317e290d140e93cd39943983b9098 (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
56
57
58
! RUN: %S/test_modfile.sh %s %t %f18
! Ensure that intrinsics in module files retain their 'private' attribute,
! if they are private.

module m1
  intrinsic :: selected_real_kind
  public :: selected_real_kind
end module
!Expect: m1.mod
!module m1
!intrinsic::selected_real_kind
!end

module m2
  use m1, only: foo => selected_real_kind
  real(foo(5,10)) :: x
end module
!Expect: m2.mod
!module m2
!use m1,only:foo=>selected_real_kind
!real(4)::x
!end

module m3
  intrinsic :: selected_real_kind
  private :: selected_real_kind
end module
!Expect: m3.mod
!module m3
!intrinsic::selected_real_kind
!private::selected_real_kind
!end

module m4
  use m3
  external :: selected_real_kind
end module
!Expect: m4.mod
!module m4
!procedure()::selected_real_kind
!end

module m5
  private
  intrinsic :: selected_real_kind
end module
!Expect: m5.mod
!module m5
!intrinsic::selected_real_kind
!private::selected_real_kind
!end

use m2
use m4
use m5
print *, kind(x)
end