|
FLANG
|
Public Types | |
| using | Base = OmpStructureCheckerBase |
Public Member Functions | |
| OmpStructureChecker (SemanticsContext &context) | |
| void | Enter (const parser::ProgramUnit &) |
| bool | Enter (const parser::MainProgram &) |
| void | Leave (const parser::MainProgram &) |
| bool | Enter (const parser::BlockData &) |
| void | Leave (const parser::BlockData &) |
| bool | Enter (const parser::Module &) |
| void | Leave (const parser::Module &) |
| bool | Enter (const parser::Submodule &) |
| void | Leave (const parser::Submodule &) |
| bool | Enter (const parser::SubroutineStmt &) |
| bool | Enter (const parser::EndSubroutineStmt &) |
| bool | Enter (const parser::FunctionStmt &) |
| bool | Enter (const parser::EndFunctionStmt &) |
| bool | Enter (const parser::BlockConstruct &) |
| void | Leave (const parser::BlockConstruct &) |
| void | Enter (const parser::InternalSubprogram &) |
| void | Enter (const parser::ModuleSubprogram &) |
| void | Enter (const parser::SpecificationPart &) |
| void | Leave (const parser::SpecificationPart &) |
| void | Enter (const parser::ExecutionPart &) |
| void | Leave (const parser::ExecutionPart &) |
| void | Enter (const parser::OpenMPConstruct &) |
| void | Leave (const parser::OpenMPConstruct &) |
| void | Enter (const parser::OpenMPDeclarativeConstruct &) |
| void | Leave (const parser::OpenMPDeclarativeConstruct &) |
| void | Enter (const parser::OpenMPMisplacedEndDirective &) |
| void | Leave (const parser::OpenMPMisplacedEndDirective &) |
| void | Enter (const parser::OpenMPInvalidDirective &) |
| void | Leave (const parser::OpenMPInvalidDirective &) |
| void | Enter (const parser::OpenMPLoopConstruct &) |
| void | Leave (const parser::OpenMPLoopConstruct &) |
| void | Enter (const parser::OpenMPAssumeConstruct &) |
| void | Leave (const parser::OpenMPAssumeConstruct &) |
| void | Enter (const parser::OpenMPDeclarativeAssumes &) |
| void | Leave (const parser::OpenMPDeclarativeAssumes &) |
| void | Enter (const parser::OpenMPInteropConstruct &) |
| void | Leave (const parser::OpenMPInteropConstruct &) |
| void | Enter (const parser::OmpBlockConstruct &) |
| void | Leave (const parser::OmpBlockConstruct &) |
| void | Enter (const parser::OmpBeginDirective &) |
| 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::OmpDeclareSimdDirective &) |
| void | Leave (const parser::OmpDeclareSimdDirective &) |
| void | Enter (const parser::OmpAllocateDirective &) |
| void | Leave (const parser::OmpAllocateDirective &) |
| void | Enter (const parser::OmpDeclareMapperDirective &) |
| void | Leave (const parser::OmpDeclareMapperDirective &) |
| void | Enter (const parser::OmpDeclareReductionDirective &) |
| void | Leave (const parser::OmpDeclareReductionDirective &) |
| void | Enter (const parser::OmpDeclareTargetDirective &) |
| void | Leave (const parser::OmpDeclareTargetDirective &) |
| void | Enter (const parser::OpenMPDepobjConstruct &) |
| void | Leave (const parser::OpenMPDepobjConstruct &) |
| void | Enter (const parser::OpenMPDispatchConstruct &) |
| void | Leave (const parser::OpenMPDispatchConstruct &) |
| void | Enter (const parser::OmpErrorDirective &) |
| void | Leave (const parser::OmpErrorDirective &) |
| void | Enter (const parser::OmpNothingDirective &) |
| void | Leave (const parser::OmpNothingDirective &) |
| 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::OmpDelimitedMetadirectiveDirective &) |
| void | Leave (const parser::OmpDelimitedMetadirectiveDirective &) |
| void | Enter (const parser::OmpContextSelector &) |
| void | Leave (const parser::OmpContextSelector &) |
| template<typename A> | |
| void | Enter (const parser::Statement< A > &) |
| void | Leave (const parser::GotoStmt &) |
| void | Leave (const parser::ComputedGotoStmt &) |
| void | Leave (const parser::ArithmeticIfStmt &) |
| void | Leave (const parser::AssignedGotoStmt &) |
| void | Leave (const parser::AltReturnSpec &) |
| void | Leave (const parser::ErrLabel &) |
| void | Leave (const parser::EndLabel &) |
| void | Leave (const parser::EorLabel &) |
| 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) | |
| 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::OmpClause * | FindClause (llvm::omp::Clause type) |
| const parser::OmpClause * | FindClause (DirectiveContext &context, llvm::omp::Clause type) |
| const parser::OmpClause * | FindClauseParent (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", bool allowZero=true) |
| 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 > | |
| SemanticsContext & | context_ |
| std::vector< DirectiveContext > | dirContext_ |
| std::unordered_map< llvm::omp::Directive, DirectiveClauses< llvm::omp::Clause, ClauseEnumSize > > | directiveClausesMap_ |