llvm/flang/test/Semantics/modfile40.f90

! RUN: %python %S/test_modfile.py %s %flang_fc1
! 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