xref: /llvm-project/flang/test/Semantics/modfile40.f90 (revision dc453dcf760e6d558da3a4d7fff301baa5f37aba)
1! RUN: %python %S/test_modfile.py %s %flang_fc1
2! Ensure that intrinsics in module files retain their 'private' attribute,
3! if they are private.
4
5module m1
6  intrinsic :: selected_real_kind
7  public :: selected_real_kind
8end module
9!Expect: m1.mod
10!module m1
11!intrinsic::selected_real_kind
12!end
13
14module m2
15  use m1, only: foo => selected_real_kind
16  real(foo(5,10)) :: x
17end module
18!Expect: m2.mod
19!module m2
20!use m1,only:foo=>selected_real_kind
21!real(4)::x
22!end
23
24module m3
25  intrinsic :: selected_real_kind
26  private :: selected_real_kind
27end module
28!Expect: m3.mod
29!module m3
30!intrinsic::selected_real_kind
31!private::selected_real_kind
32!end
33
34module m4
35  use m3
36  external :: selected_real_kind
37end module
38!Expect: m4.mod
39!module m4
40!procedure()::selected_real_kind
41!end
42
43module m5
44  private
45  intrinsic :: selected_real_kind
46end module
47!Expect: m5.mod
48!module m5
49!intrinsic::selected_real_kind
50!private::selected_real_kind
51!end
52
53use m2
54use m4
55use m5
56print *, kind(x)
57end
58
59