FLANG
Fortran::semantics::OmpStructureChecker Class Reference
Inheritance diagram for Fortran::semantics::OmpStructureChecker:
Fortran::semantics::DirectiveStructureChecker< llvm::omp::Directive, llvm::omp::Clause, parser::OmpClause, llvm::omp::Clause_enumSize > Fortran::semantics::BaseChecker

Public Types

using Base
using llvmOmpClause = const llvm::omp::Clause

Public Member Functions

 OmpStructureChecker (SemanticsContext &context)
void Enter (const parser::OpenMPConstruct &)
void Leave (const parser::OpenMPConstruct &)
void Enter (const parser::OpenMPInteropConstruct &)
void Leave (const parser::OpenMPInteropConstruct &)
void Enter (const parser::OpenMPDeclarativeConstruct &)
void Leave (const parser::OpenMPDeclarativeConstruct &)
void Enter (const parser::OpenMPLoopConstruct &)
void Leave (const parser::OpenMPLoopConstruct &)
void Enter (const parser::OmpEndLoopDirective &)
void Leave (const parser::OmpEndLoopDirective &)
void Enter (const parser::OpenMPAssumeConstruct &)
void Leave (const parser::OpenMPAssumeConstruct &)
void Enter (const parser::OpenMPDeclarativeAssumes &)
void Leave (const parser::OpenMPDeclarativeAssumes &)
void Enter (const parser::OmpBlockConstruct &)
void Leave (const parser::OmpBlockConstruct &)
void Leave (const parser::OmpBeginDirective &)
void Enter (const parser::OmpEndDirective &)
void Leave (const parser::OmpEndDirective &)
void Enter (const parser::OpenMPSectionsConstruct &)
void Leave (const parser::OpenMPSectionsConstruct &)
void Enter (const parser::OmpEndSectionsDirective &)
void Leave (const parser::OmpEndSectionsDirective &)
void Enter (const parser::OmpDeclareVariantDirective &)
void Leave (const parser::OmpDeclareVariantDirective &)
void Enter (const parser::OpenMPDeclareSimdConstruct &)
void Leave (const parser::OpenMPDeclareSimdConstruct &)
void Enter (const parser::OpenMPDeclarativeAllocate &)
void Leave (const parser::OpenMPDeclarativeAllocate &)
void Enter (const parser::OpenMPDeclareMapperConstruct &)
void Leave (const parser::OpenMPDeclareMapperConstruct &)
void Enter (const parser::OpenMPDeclareReductionConstruct &)
void Leave (const parser::OpenMPDeclareReductionConstruct &)
void Enter (const parser::OpenMPDeclareTargetConstruct &)
void Leave (const parser::OpenMPDeclareTargetConstruct &)
void Enter (const parser::OpenMPDepobjConstruct &)
void Leave (const parser::OpenMPDepobjConstruct &)
void Enter (const parser::OmpDeclareTargetWithList &)
void Enter (const parser::OmpDeclareTargetWithClause &)
void Leave (const parser::OmpDeclareTargetWithClause &)
void Enter (const parser::OpenMPDispatchConstruct &)
void Leave (const parser::OpenMPDispatchConstruct &)
void Enter (const parser::OmpErrorDirective &)
void Leave (const parser::OmpErrorDirective &)
void Enter (const parser::OpenMPExecutableAllocate &)
void Leave (const parser::OpenMPExecutableAllocate &)
void Enter (const parser::OpenMPAllocatorsConstruct &)
void Leave (const parser::OpenMPAllocatorsConstruct &)
void Enter (const parser::OpenMPRequiresConstruct &)
void Leave (const parser::OpenMPRequiresConstruct &)
void Enter (const parser::OpenMPGroupprivate &)
void Leave (const parser::OpenMPGroupprivate &)
void Enter (const parser::OpenMPThreadprivate &)
void Leave (const parser::OpenMPThreadprivate &)
void Enter (const parser::OpenMPSimpleStandaloneConstruct &)
void Leave (const parser::OpenMPSimpleStandaloneConstruct &)
void Enter (const parser::OpenMPFlushConstruct &)
void Leave (const parser::OpenMPFlushConstruct &)
void Enter (const parser::OpenMPCancelConstruct &)
void Leave (const parser::OpenMPCancelConstruct &)
void Enter (const parser::OpenMPCancellationPointConstruct &)
void Leave (const parser::OpenMPCancellationPointConstruct &)
void Enter (const parser::OpenMPCriticalConstruct &)
void Leave (const parser::OpenMPCriticalConstruct &)
void Enter (const parser::OpenMPAtomicConstruct &)
void Leave (const parser::OpenMPAtomicConstruct &)
void Leave (const parser::OmpClauseList &)
void Enter (const parser::OmpClause &)
void Enter (const parser::DoConstruct &)
void Leave (const parser::DoConstruct &)
void Enter (const parser::OmpDirectiveSpecification &)
void Leave (const parser::OmpDirectiveSpecification &)
void Enter (const parser::OmpMetadirectiveDirective &)
void Leave (const parser::OmpMetadirectiveDirective &)
void Enter (const parser::OmpContextSelector &)
void Leave (const parser::OmpContextSelector &)
Public Member Functions inherited from Fortran::semantics::BaseChecker
template<typename N>
void Enter (const N &)
template<typename N>
void Leave (const N &)

Additional Inherited Members

Protected Types inherited from Fortran::semantics::DirectiveStructureChecker< llvm::omp::Directive, llvm::omp::Clause, parser::OmpClause, llvm::omp::Clause_enumSize >
using ClauseMapTy
Protected Member Functions inherited from Fortran::semantics::DirectiveStructureChecker< llvm::omp::Directive, llvm::omp::Clause, parser::OmpClause, llvm::omp::Clause_enumSize >
 DirectiveStructureChecker (SemanticsContext &context, const std::unordered_map< llvm::omp::Directive, DirectiveClauses< llvm::omp::Clause, ClauseEnumSize > > &directiveClausesMap)
void SetLoopIv (Symbol *symbol)
DirectiveContext & GetContext ()
DirectiveContext & GetContextParent ()
void SetContextClause (const parser::OmpClause &clause)
void ResetPartialContext (const parser::CharBlock &source)
void SetContextDirectiveSource (const parser::CharBlock &directive)
void SetContextDirectiveEnum (llvm::omp::Directive dir)
void SetContextAllowed (const common::EnumSet< llvm::omp::Clause, ClauseEnumSize > &allowed)
void SetContextAllowedOnce (const common::EnumSet< llvm::omp::Clause, ClauseEnumSize > &allowedOnce)
void SetContextAllowedExclusive (const common::EnumSet< llvm::omp::Clause, ClauseEnumSize > &allowedExclusive)
void SetContextRequired (const common::EnumSet< llvm::omp::Clause, ClauseEnumSize > &required)
void SetContextClauseInfo (llvm::omp::Clause type)
void AddClauseToCrtContext (llvm::omp::Clause type)
void AddClauseToCrtGroupInContext (llvm::omp::Clause type)
void ResetCrtGroup ()
const parser::OmpClauseFindClause (llvm::omp::Clause type)
const parser::OmpClauseFindClause (DirectiveContext &context, llvm::omp::Clause type)
const parser::OmpClauseFindClauseParent (llvm::omp::Clause type)
llvm::iterator_range< typename ClauseMapTy::iterator > FindClauses (llvm::omp::Clause type)
DirectiveContext * GetEnclosingDirContext ()
void PushContext (const parser::CharBlock &source, llvm::omp::Directive dir)
DirectiveContext * GetEnclosingContextWithDir (llvm::omp::Directive dir)
bool CurrentDirectiveIsNested ()
void SetClauseSets (llvm::omp::Directive dir)
void PushContextAndClauseSets (const parser::CharBlock &source, llvm::omp::Directive dir)
void SayNotMatching (const parser::CharBlock &, const parser::CharBlock &)
void CheckMatching (const B &beginDir, const B &endDir)
void CheckNoBranching (const parser::Block &block, llvm::omp::Directive directive, const parser::CharBlock &directiveSource)
void CheckOnlyAllowedAfter (llvm::omp::Clause clause, common::EnumSet< llvm::omp::Clause, ClauseEnumSize > set)
void CheckRequireAtLeastOneOf (bool warnInsteadOfError=false)
bool CheckAllowed (llvm::omp::Clause clause, bool warnInsteadOfError=false)
void CheckAllowedOncePerGroup (llvm::omp::Clause clause, llvm::omp::Clause separator)
void CheckMutuallyExclusivePerGroup (llvm::omp::Clause clause, llvm::omp::Clause separator, common::EnumSet< llvm::omp::Clause, ClauseEnumSize > set)
void CheckAtLeastOneClause ()
void CheckNotAllowedIfClause (llvm::omp::Clause clause, common::EnumSet< llvm::omp::Clause, ClauseEnumSize > set)
std::string ContextDirectiveAsFortran ()
void RequiresConstantPositiveParameter (const llvm::omp::Clause &clause, const parser::ScalarIntConstantExpr &i)
void RequiresPositiveParameter (const llvm::omp::Clause &clause, const parser::ScalarIntExpr &i, llvm::StringRef paramName="parameter")
void OptionalConstantPositiveParameter (const llvm::omp::Clause &clause, const std::optional< parser::ScalarIntConstantExpr > &o)
std::string ClauseSetToString (const common::EnumSet< llvm::omp::Clause, ClauseEnumSize > set)
Protected Attributes inherited from Fortran::semantics::DirectiveStructureChecker< llvm::omp::Directive, llvm::omp::Clause, parser::OmpClause, llvm::omp::Clause_enumSize >
SemanticsContextcontext_
std::vector< DirectiveContext > dirContext_
std::unordered_map< llvm::omp::Directive, DirectiveClauses< llvm::omp::Clause, ClauseEnumSize > > directiveClausesMap_

Member Typedef Documentation

◆ Base

Initial value:
DirectiveStructureChecker<llvm::omp::Directive,
llvm::omp::Clause, parser::OmpClause, llvm::omp::Clause_enumSize>
Definition parse-tree.h:4761

The documentation for this class was generated from the following files: