43 lines
1 KiB
Fortran
43 lines
1 KiB
Fortran
|
! 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
|