llvm-project
c57f88d5 - [flang][OpenMP] Fix metadirective loop semantic checks (#208844)

Commit
32 days ago
[flang][OpenMP] Fix metadirective loop semantic checks (#208844) This is a follow-up to https://github.com/llvm/llvm-project/pull/207088. Post-merge review feedback: * Rename mayVariantBeSelected to MayVariantBeSelected and move it to the shared OpenMP semantic utilities so declare-variant checking can reuse it. * Explain why a WHEN selector is recorded only when its modifier list contains exactly one element. * Diagnose loop-associated variants that end a declaration-only program unit, such as a module with no execution part. Additional correctness fixes: * Handle consecutive metadirectives and modules or submodules with contained procedures without silently dropping an earlier loop-associated variant. * Prevent a loop-associated variant in an interface, BLOCK construct, conditional branch, or nested body from being checked against an unrelated loop outside that scope. * Avoid false or missing loop diagnostics when match_any or match_none combines target selectors with user or construct selectors. Assisted with codex.
Author
Parents
Loading