================ @@ -163,6 +163,43 @@ class AssociatedLoopChecker { std::map<std::string, std::int64_t> constructNamesAndLevels_; }; +bool OmpStructureChecker::CheckAllowedClause(llvmOmpClause clause) { + unsigned version{context_.langOptions().OpenMPVersion}; + DirectiveContext &dirCtx = GetContext(); + llvm::omp::Directive dir{dirCtx.directive}; + + if (!llvm::omp::isAllowedClauseForDirective(dir, clause, version)) { + unsigned allowedInVersion{[&] { + for (unsigned v : {45, 50, 51, 52, 60}) { + if (v <= version) { + continue; + } + if (llvm::omp::isAllowedClauseForDirective(dir, clause, v)) { + return v; + } + } + return 0u; + }()}; + + auto clauseName{parser::ToUpperCaseLetters(getClauseName(clause).str())}; + auto dirName{parser::ToUpperCaseLetters(getDirectiveName(dir).str())}; ---------------- kparzysz wrote:
Done https://github.com/llvm/llvm-project/pull/110015 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits