1//===-- lib/Semantics/check-coarray.h ---------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef FORTRAN_SEMANTICS_CHECK_COARRAY_H_
10#define FORTRAN_SEMANTICS_CHECK_COARRAY_H_
11
12#include "flang/Semantics/semantics.h"
13#include <list>
14
15namespace Fortran::semantics {
16
17class CoarrayChecker : public virtual BaseChecker {
18public:
19 CoarrayChecker(SemanticsContext &context) : context_{context} {}
20 void Leave(const parser::ChangeTeamStmt &);
21 void Leave(const parser::EndChangeTeamStmt &);
22 void Leave(const parser::SyncAllStmt &);
23 void Leave(const parser::SyncImagesStmt &);
24 void Leave(const parser::SyncMemoryStmt &);
25 void Leave(const parser::SyncTeamStmt &);
26 void Leave(const parser::NotifyWaitStmt &);
27 void Leave(const parser::EventPostStmt &);
28 void Leave(const parser::EventWaitStmt &);
29 void Leave(const parser::LockStmt &);
30 void Leave(const parser::UnlockStmt &);
31 void Leave(const parser::CriticalStmt &);
32 void Leave(const parser::ImageSelector &);
33 void Leave(const parser::FormTeamStmt &);
34
35 void Enter(const parser::CriticalConstruct &);
36 void Enter(const parser::ChangeTeamConstruct &);
37
38private:
39 SemanticsContext &context_;
40
41 void CheckNamesAreDistinct(const std::list<parser::CoarrayAssociation> &);
42 void Say2(const parser::CharBlock &, parser::MessageFixedText &&,
43 const parser::CharBlock &, parser::MessageFixedText &&);
44};
45} // namespace Fortran::semantics
46#endif // FORTRAN_SEMANTICS_CHECK_COARRAY_H_
47

Provided by KDAB

Privacy Policy
Improve your Profiling and Debugging skills
Find out more

source code of flang/lib/Semantics/check-coarray.h