[flang] [llvm] [Flang][OpenMP] Add semantic support for OpenMP Loop Interchange and permutation clause in Flang (PR #183435)
Krzysztof Parzyszek via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 16 08:23:47 PDT 2026
================
@@ -769,6 +805,42 @@ void OmpStructureChecker::Enter(const parser::OmpClause::Sizes &c) {
/*paramName=*/"parameter", /*allowZero=*/false);
}
+void OmpStructureChecker::Enter(const parser::OmpClause::Permutation &c) {
+ llvm::omp::Clause clause = llvm::omp::Clause::OMPC_permutation;
+ CheckAllowedClause(clause);
+ if (c.v.size() < 2)
+ context_.Say(GetContext().clauseSource,
+ "The %s clause must have a length of at least two"_err_en_US,
+ parser::ToUpperCaseLetters(getClauseName(clause).str()));
+
+ llvm::SmallVector<bool> found(c.v.size(), false);
+ bool cont = true;
+ for (const auto &val : c.v) {
+ if (const auto v{GetIntValue(val)}) {
+ if (*v <= 0) {
+ cont = false;
+ context_.Say(GetContext().clauseSource,
+ "The parameter of the %s clause must be "
+ "a constant positive integer expression"_err_en_US,
+ parser::ToUpperCaseLetters(getClauseName(clause).str()));
----------------
kparzysz wrote:
parser::GetUpperName as before
https://github.com/llvm/llvm-project/pull/183435
More information about the llvm-commits
mailing list