mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-17 03:26:48 +00:00

As Fortran 2018 5.2.2 states, a program shall consist of exactly one main program. Add this semantic check. Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D125186
28 lines
626 B
Fortran
28 lines
626 B
Fortran
! RUN: %python %S/test_symbols.py %s %flang_fc1
|
|
! 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 (Subroutine)Subprogram
|
|
subroutine 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 subroutine
|