| ! 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 |
| |