forked from OSchip/llvm-project
48 lines
1.1 KiB
Fortran
48 lines
1.1 KiB
Fortran
! RUN: %python %S/test_symbols.py %s %flang_fc1
|
|
! Test handling of pernicious case in which it is conformant Fortran
|
|
! to use the name of a function in a CALL statement. Almost all
|
|
! other compilers produce bogus errors for this case and/or crash.
|
|
|
|
!DEF: /m Module
|
|
module m
|
|
contains
|
|
!DEF: /m/foo PUBLIC (Function) Subprogram
|
|
function foo()
|
|
!DEF: /m/bar PUBLIC (Subroutine) Subprogram
|
|
!DEF: /m/foo/foo EXTERNAL, POINTER (Subroutine) ProcEntity
|
|
procedure(bar), pointer :: foo
|
|
!REF: /m/bar
|
|
!DEF: /m/foo/baz EXTERNAL, POINTER (Subroutine) ProcEntity
|
|
procedure(bar), pointer :: baz
|
|
!REF: /m/foo/foo
|
|
!REF: /m/bar
|
|
foo => bar
|
|
!REF: /m/foo/foo
|
|
call foo
|
|
!DEF: /m/baz PUBLIC (Function) Subprogram
|
|
entry baz()
|
|
!REF: /m/foo/baz
|
|
!REF: /m/bar
|
|
baz => bar
|
|
!REF: /m/foo/baz
|
|
call baz
|
|
end function
|
|
!REF: /m/bar
|
|
subroutine bar
|
|
print *, "in bar"
|
|
end subroutine
|
|
end module
|
|
!DEF: /demo MainProgram
|
|
program demo
|
|
!REF: /m
|
|
use :: m
|
|
!DEF: /demo/bar (Subroutine) Use
|
|
!DEF: /demo/p EXTERNAL, POINTER (Subroutine) ProcEntity
|
|
procedure(bar), pointer :: p
|
|
!REF: /demo/p
|
|
!DEF: /demo/foo (Function) Use
|
|
p => foo()
|
|
!REF: /demo/p
|
|
call p
|
|
end program
|