xref: /llvm-project/flang/test/Semantics/modfile40.f90 (revision dc453dcf760e6d558da3a4d7fff301baa5f37aba)
1*dc453dcfSIvan Zhechev! RUN: %python %S/test_modfile.py %s %flang_fc1
28f16101cSpeter klausler! Ensure that intrinsics in module files retain their 'private' attribute,
38f16101cSpeter klausler! if they are private.
48f16101cSpeter klausler
58f16101cSpeter klauslermodule m1
68f16101cSpeter klausler  intrinsic :: selected_real_kind
78f16101cSpeter klausler  public :: selected_real_kind
88f16101cSpeter klauslerend module
98f16101cSpeter klausler!Expect: m1.mod
108f16101cSpeter klausler!module m1
118f16101cSpeter klausler!intrinsic::selected_real_kind
128f16101cSpeter klausler!end
138f16101cSpeter klausler
148f16101cSpeter klauslermodule m2
158f16101cSpeter klausler  use m1, only: foo => selected_real_kind
168f16101cSpeter klausler  real(foo(5,10)) :: x
178f16101cSpeter klauslerend module
188f16101cSpeter klausler!Expect: m2.mod
198f16101cSpeter klausler!module m2
208f16101cSpeter klausler!use m1,only:foo=>selected_real_kind
218f16101cSpeter klausler!real(4)::x
228f16101cSpeter klausler!end
238f16101cSpeter klausler
248f16101cSpeter klauslermodule m3
258f16101cSpeter klausler  intrinsic :: selected_real_kind
268f16101cSpeter klausler  private :: selected_real_kind
278f16101cSpeter klauslerend module
288f16101cSpeter klausler!Expect: m3.mod
298f16101cSpeter klausler!module m3
308f16101cSpeter klausler!intrinsic::selected_real_kind
318f16101cSpeter klausler!private::selected_real_kind
328f16101cSpeter klausler!end
338f16101cSpeter klausler
348f16101cSpeter klauslermodule m4
358f16101cSpeter klausler  use m3
368f16101cSpeter klausler  external :: selected_real_kind
378f16101cSpeter klauslerend module
388f16101cSpeter klausler!Expect: m4.mod
398f16101cSpeter klausler!module m4
408f16101cSpeter klausler!procedure()::selected_real_kind
418f16101cSpeter klausler!end
428f16101cSpeter klausler
438f16101cSpeter klauslermodule m5
448f16101cSpeter klausler  private
458f16101cSpeter klausler  intrinsic :: selected_real_kind
468f16101cSpeter klauslerend module
478f16101cSpeter klausler!Expect: m5.mod
488f16101cSpeter klausler!module m5
498f16101cSpeter klausler!intrinsic::selected_real_kind
508f16101cSpeter klausler!private::selected_real_kind
518f16101cSpeter klausler!end
528f16101cSpeter klausler
538f16101cSpeter klausleruse m2
548f16101cSpeter klausleruse m4
558f16101cSpeter klausleruse m5
568f16101cSpeter klauslerprint *, kind(x)
578f16101cSpeter klauslerend
588f16101cSpeter klausler
59