[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:
parent
fc866fd2a2
commit
6ad37a41b5
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user