[flang-commits] [flang] [llvm] [flang][OpenMP] Track reachable metadirective replacements (PR #219014)
via flang-commits
flang-commits at lists.llvm.org
Fri Sep 11 22:52:30 PDT 2026
================
@@ -207,38 +208,39 @@ void OmpStructureChecker::Enter(const parser::EndMpSubprogramStmt &x) {
scopeStack_.pop_back();
}
-void OmpStructureChecker::BeginMetadirectiveVariantScope() {
- metadirectiveVariantScopeStarts_.push_back(metadirectiveLoopVariants_.size());
+void OmpStructureChecker::BeginPendingLoopDirectiveScope() {
+ pendingLoopDirectiveScopeStarts_.push_back(
+ pendingLoopDirectiveGroups_.size());
}
-void OmpStructureChecker::EndMetadirectiveVariantScope() {
- CHECK(!metadirectiveVariantScopeStarts_.empty());
- std::size_t firstVariant{metadirectiveVariantScopeStarts_.back()};
- metadirectiveVariantScopeStarts_.pop_back();
- if (firstVariant < metadirectiveLoopVariants_.size()) {
- // Diagnose variants that were recorded in this scope but not consumed by
- // one of its executable constructs, preserving variants from an enclosing
- // scope.
- CheckMetadirectiveVariantsWithoutLoop(firstVariant);
+void OmpStructureChecker::EndPendingLoopDirectiveScope() {
+ CHECK(!pendingLoopDirectiveScopeStarts_.empty());
+ std::size_t firstDirectiveGroup{pendingLoopDirectiveScopeStarts_.back()};
+ pendingLoopDirectiveScopeStarts_.pop_back();
+ if (firstDirectiveGroup < pendingLoopDirectiveGroups_.size()) {
----------------
MattPD wrote:
Confirmed: Both inner variants are diagnosed when their loop falls outside the selected region.
https://github.com/llvm/llvm-project/pull/219014
More information about the flang-commits
mailing list