[Flang][OpenMP] NFC: Trivial changes in OmpCycleChecker (#91024)

Cycle is associated with construct-names and not labels. Change name of
a few variables to reflect this. Also add appropriate comment to
describe the else case of error checking.
This commit is contained in:
Kiran Chandramohan 2024-05-07 08:13:32 +01:00 committed by GitHub
parent fc866fd2a2
commit 6ad37a41b5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -94,9 +94,10 @@ public:
bool Pre(const parser::DoConstruct &dc) {
cycleLevel_--;
const auto &labelName{std::get<0>(std::get<0>(dc.t).statement.t)};
if (labelName) {
labelNamesandLevels_.emplace(labelName.value().ToString(), cycleLevel_);
const auto &constructName{std::get<0>(std::get<0>(dc.t).statement.t)};
if (constructName) {
constructNamesAndLevels_.emplace(
constructName.value().ToString(), cycleLevel_);
}
return true;
}
@ -105,10 +106,14 @@ public:
std::map<std::string, std::int64_t>::iterator it;
bool err{false};
if (cyclestmt.v) {
it = labelNamesandLevels_.find(cyclestmt.v->source.ToString());
err = (it != labelNamesandLevels_.end() && it->second > 0);
it = constructNamesAndLevels_.find(cyclestmt.v->source.ToString());
err = (it != constructNamesAndLevels_.end() && it->second > 0);
} else {
// If there is no label then the cycle statement is associated with the
// closest enclosing DO. Use its level for the checks.
err = cycleLevel_ > 0;
}
if (cycleLevel_ > 0 || err) {
if (err) {
context_.Say(*cycleSource_,
"CYCLE statement to non-innermost associated loop of an OpenMP DO "
"construct"_err_en_US);
@ -125,7 +130,7 @@ private:
SemanticsContext &context_;
const parser::CharBlock *cycleSource_;
std::int64_t cycleLevel_;
std::map<std::string, std::int64_t> labelNamesandLevels_;
std::map<std::string, std::int64_t> constructNamesAndLevels_;
};
bool OmpStructureChecker::IsCloselyNestedRegion(const OmpDirectiveSet &set) {