Lines Matching defs:construct

48     const parser::ForallConstruct &construct) {
50 std::get<parser::Statement<parser::ForallConstructStmt>>(construct.t)};
271 void Post(const parser::ExecutableConstruct &construct) {
272 if (IsImageControlStmt(construct)) {
274 GetImageControlStmtLocation(construct)};
277 if (auto coarrayMsg{GetImageControlStmtCoarrayMsg(construct)}) {
390 // Mark this DO construct as a point of definition for the DO variables
393 // the variable in the DO construct so that we can remove it when we leave
394 // the DO construct and use its location in error messages.
405 // Called at the end of a DO construct to deactivate the DO construct
441 void Check(const parser::ForallConstruct &construct) {
442 CheckConcurrentHeader(GetConcurrentHeader(construct));
581 // the names up in the scope that encloses the DO construct to avoid getting
583 // construct-associations to get the root symbols
928 void DoForallChecker::Enter(const parser::ForallConstruct &construct) {
930 doContext.ActivateIndexVars(GetControls(construct));
932 doContext.Check(construct);
934 void DoForallChecker::Leave(const parser::ForallConstruct &construct) {
936 doContext.DeactivateIndexVars(GetControls(construct));
961 static parser::CharBlock GetNodePosition(const ConstructNode &construct) {
963 [&](const auto &x) { return GetConstructPosition(*x); }, construct);
967 const char *enclosingStmtName, const ConstructNode &construct) const {
971 .Attach(GetNodePosition(construct), "The construct that was left"_en_US);
975 const ConstructNode &construct) {
977 std::get_if<const parser::DoConstruct *>(&construct)}) {
984 static bool ConstructIsDoConcurrent(const ConstructNode &construct) {
985 const parser::DoConstruct *doConstruct{MaybeGetDoConstruct(construct)};
992 StmtType stmtType, const ConstructNode &construct) const {
998 SayBadLeave(stmtType, "DO CONCURRENT", construct);
1003 SayBadLeave(stmtType, "CRITICAL", construct);
1007 SayBadLeave(stmtType, "CHANGE TEAM", construct);
1011 construct);
1016 const ConstructNode &construct) {
1017 bool inDoConstruct{MaybeGetDoConstruct(construct) != nullptr};
1029 StmtType stmtType, const ConstructNode &construct) const {
1030 if (stmtType == StmtType::EXIT && ConstructIsDoConcurrent(construct)) {
1031 SayBadLeave(StmtType::EXIT, "DO CONCURRENT", construct);
1036 // nesting levels looking for a construct that matches the CYCLE or EXIT
1037 // statment. At every construct, check for a violation. If we find a match
1043 const ConstructNode &construct{*iter};
1045 MaybeGetNodeName(construct)};
1046 if (StmtMatchesConstruct(stmtName, stmtType, constructName, construct)) {
1047 CheckDoConcurrentExit(stmtType, construct);
1050 CheckForBadLeave(stmtType, construct);
1055 context_.Say("No matching construct for EXIT statement"_err_en_US);
1057 context_.Say("No matching DO construct for CYCLE statement"_err_en_US);