! RUN: %python %S/test_symbols.py %s %flang_fc1
! Exercise generic redefinitions in inner procedures with conflicting subprograms.
!DEF: /m Module
module m
!DEF: /m/generic PUBLIC (Subroutine) Generic
interface generic
!DEF: /m/specific1 PUBLIC (Subroutine) Subprogram
module procedure :: specific1
end interface
contains
!REF: /m/specific1
subroutine specific1
print *, 1
end subroutine
!DEF: /m/specific2 PUBLIC (Subroutine) Subprogram
subroutine specific2
print *, 2
end subroutine
!DEF: /m/test PUBLIC (Subroutine) Subprogram
subroutine test
!REF: /m/specific1
call generic
end subroutine
!DEF: /m/outer PUBLIC (Subroutine) Subprogram
subroutine outer
!DEF: /m/outer/inner1 (Subroutine) Subprogram
call inner1
contains
!REF: /m/outer/inner1
subroutine inner1
!DEF: /m/outer/inner1/generic (Subroutine) Generic
interface generic
!REF: /m/specific2
module procedure :: specific2
end interface
!REF: /m/specific2
call generic
end subroutine inner1
end subroutine outer
end module m
!DEF: /main MainProgram
program main
!REF: /m
use :: m
!REF: /m/specific1
call generic
!DEF: /main/inner2 (Subroutine) Subprogram
call inner2
contains
!REF: /main/inner2
subroutine inner2
!DEF: /main/inner2/generic (Subroutine) Generic
interface generic
!DEF: /main/specific2 (Subroutine) Use
module procedure :: specific2
end interface
!REF: /main/specific2
call generic
end subroutine inner2
end program