Files
clang-p2996/flang/test/Semantics/symbol16.f90
Tim Keith 7454acdf3b [flang] Fix implicit declarations in statement functions
If a symbol (that is not a dummy argument) is implicitly declared inside
a statement function, don't create it in the statement function's scope.
Instead, treat statement functions like blocks when finding the inclusive
scope and create the symbol there.

Add a new flag, StmtFunction, to symbols that represent statement functions.

Differential Revision: https://reviews.llvm.org/D84588
2020-07-26 12:13:39 -07:00

28 lines
598 B
Fortran

! RUN: %S/test_symbols.sh %s %t %f18
! Statement functions
!DEF: /p1 MainProgram
program p1
!DEF: /p1/f (Function, StmtFunction) Subprogram INTEGER(4)
!DEF: /p1/i ObjectEntity INTEGER(4)
!DEF: /p1/j ObjectEntity INTEGER(4)
integer f, i, j
!REF: /p1/f
!REF: /p1/i
!DEF: /p1/f/i ObjectEntity INTEGER(4)
f(i) = i + 1
!REF: /p1/j
!REF: /p1/f
j = f(2)
end program
!DEF: /p2 MainProgram
program p2
!DEF: /p2/f (Function, StmtFunction) Subprogram REAL(4)
!DEF: /p2/f/x (Implicit) ObjectEntity REAL(4)
!DEF: /p2/y (Implicit) ObjectEntity REAL(4)
f(x) = y
!REF: /p2/y
y = 1.0
end program