! 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