! RUN: %python %S/test_symbols.py %s %flang_fc1
! Regression test of name resolution bug
!DEF: /m Module
module m
!DEF: /m/base ABSTRACT, PUBLIC DerivedType
type, abstract :: base
contains
!DEF: /m/base/foo Generic
!DEF: /m/base/spec DEFERRED ProcBinding
generic :: foo => spec
!DEF: /m/iface ABSTRACT, PUBLIC (Subroutine) Subprogram
!REF: /m/base/spec
procedure(iface), deferred :: spec
end type
abstract interface
!REF: /m/iface
!DEF: /m/iface/this ObjectEntity CLASS(base)
subroutine iface (this)
!REF: /m/base
import :: base
!REF: /m/base
!REF: /m/iface/this
class(base) :: this
end subroutine
end interface
!REF: /m/base
!DEF: /m/ext PUBLIC DerivedType
type, extends(base) :: ext
contains
!DEF: /m/ext/spec ProcBinding
!DEF: /m/foo PUBLIC (Subroutine) Subprogram
procedure :: spec => foo
end type
contains
!REF: /m/foo
!DEF: /m/foo/this ObjectEntity CLASS(ext)
subroutine foo (this)
!REF: /m/ext
!REF: /m/foo/this
class(ext) :: this
end subroutine
end module