| ! RUN: %python %S/test_modfile.py %s %flang_fc1 |
| ! Ensure that procedure name or derived type name that has been shadowed |
| ! behind a generic interface gets its proper USE statement in a module file. |
| module m1 |
| contains |
| subroutine foo |
| end subroutine |
| end module |
| module m2 |
| use m1 |
| interface foo |
| procedure foo |
| end interface |
| end module |
| module m3 |
| type foo |
| end type |
| end module |
| module m4 |
| use m4 |
| interface foo |
| procedure bar |
| end interface |
| contains |
| integer function bar |
| end function |
| end module |
| |
| !Expect: m1.mod |
| !module m1 |
| !contains |
| !subroutine foo() |
| !end |
| !end |
| |
| !Expect: m2.mod |
| !module m2 |
| !use m1,only:foo |
| !interface foo |
| !procedure::foo |
| !end interface |
| !end |
| |
| !Expect: m3.mod |
| !module m3 |
| !type::foo |
| !end type |
| !end |
| |
| !Expect: m4.mod |
| !module m4 |
| !interface foo |
| !procedure::bar |
| !end interface |
| !contains |
| !function bar() |
| !integer(4)::bar |
| !end |
| !end |