[flang] Enforce a program not including more than one main program
authorPeixin-Qiao <qiaopeixin@huawei.com>
Mon, 9 May 2022 02:47:47 +0000 (10:47 +0800)
committerPeixin-Qiao <qiaopeixin@huawei.com>
Mon, 9 May 2022 02:48:06 +0000 (10:48 +0800)
commitc207e36025f7a7889f1f26cf8a1b797656060e78
tree074380922d40446fce4c79a17e6f8b92e61a8cf9
parent36d4f42c36ea9c64e2d29f6d5bc3ac0384d7eb92
[flang] Enforce a program not including more than one main program

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
18 files changed:
flang/lib/Semantics/check-declarations.cpp
flang/lib/Semantics/resolve-names.cpp
flang/test/Semantics/call02.f90
flang/test/Semantics/case01.f90
flang/test/Semantics/modfile41.f90
flang/test/Semantics/multi-programs01.f90 [new file with mode: 0644]
flang/test/Semantics/multi-programs02.f90 [new file with mode: 0644]
flang/test/Semantics/multi-programs03.f90 [new file with mode: 0644]
flang/test/Semantics/multi-programs04.f90 [new file with mode: 0644]
flang/test/Semantics/multi-programs05.f90 [new file with mode: 0644]
flang/test/Semantics/multi-programs06.f90 [new file with mode: 0644]
flang/test/Semantics/omp-do04.f90
flang/test/Semantics/omp-do11.f90
flang/test/Semantics/resolve102.f90
flang/test/Semantics/resolve14.f90
flang/test/Semantics/resolve49.f90
flang/test/Semantics/resolve61.f90
flang/test/Semantics/symbol16.f90