Lines Matching refs:parser

36     DirContext(const parser::CharBlock &source, T d, Scope &s)  in DirContext()
38 parser::CharBlock directiveSource;
56 void PushContext(const parser::CharBlock &source, T dir) { in PushContext()
60 void SetContextDirectiveSource(parser::CharBlock &dir) { in SetContextDirectiveSource()
88 static const parser::Name *GetDesignatorNameIfDataRef( in GetDesignatorNameIfDataRef()
89 const parser::Designator &designator) { in GetDesignatorNameIfDataRef()
90 const auto *dataRef{std::get_if<parser::DataRef>(&designator.u)}; in GetDesignatorNameIfDataRef()
91 return dataRef ? std::get_if<parser::Name>(&dataRef->u) : nullptr; in GetDesignatorNameIfDataRef()
100 const parser::Name &GetLoopIndex(const parser::DoConstruct &);
101 const parser::DoConstruct *GetDoConstructIf(
102 const parser::ExecutionPartConstruct &);
104 const parser::Name &, Symbol::Flag, Scope &);
106 Symbol *DeclareOrMarkOtherAccessEntity(const parser::Name &, Symbol::Flag);
118 template <typename A> void Walk(const A &x) { parser::Walk(x, *this); } in Walk()
122 bool Pre(const parser::OpenACCBlockConstruct &);
123 void Post(const parser::OpenACCBlockConstruct &) { PopContext(); } in Post()
124 bool Pre(const parser::OpenACCCombinedConstruct &);
125 void Post(const parser::OpenACCCombinedConstruct &) { PopContext(); } in Post()
127 bool Pre(const parser::OpenACCDeclarativeConstruct &);
128 void Post(const parser::OpenACCDeclarativeConstruct &) { PopContext(); } in Post()
130 bool Pre(const parser::OpenACCRoutineConstruct &);
131 bool Pre(const parser::AccBindClause &);
132 void Post(const parser::OpenACCStandaloneDeclarativeConstruct &);
134 void Post(const parser::AccBeginBlockDirective &) { in Post()
138 bool Pre(const parser::OpenACCLoopConstruct &);
139 void Post(const parser::OpenACCLoopConstruct &) { PopContext(); } in Post()
140 void Post(const parser::AccLoopDirective &) { in Post()
144 bool Pre(const parser::OpenACCStandaloneConstruct &);
145 void Post(const parser::OpenACCStandaloneConstruct &) { PopContext(); } in Post()
146 void Post(const parser::AccStandaloneDirective &) { in Post()
150 bool Pre(const parser::OpenACCCacheConstruct &);
151 void Post(const parser::OpenACCCacheConstruct &) { PopContext(); } in Post()
153 void Post(const parser::AccDefaultClause &);
155 bool Pre(const parser::AccClause::Attach &);
156 bool Pre(const parser::AccClause::Detach &);
158 bool Pre(const parser::AccClause::Copy &x) { in Pre()
164 bool Pre(const parser::AccClause::Create &x) { in Pre()
165 const auto &objectList{std::get<parser::AccObjectList>(x.v.t)}; in Pre()
170 bool Pre(const parser::AccClause::Copyin &x) { in Pre()
171 const auto &objectList{std::get<parser::AccObjectList>(x.v.t)}; in Pre()
176 bool Pre(const parser::AccClause::Copyout &x) { in Pre()
177 const auto &objectList{std::get<parser::AccObjectList>(x.v.t)}; in Pre()
182 bool Pre(const parser::AccClause::Present &x) { in Pre()
186 bool Pre(const parser::AccClause::Private &x) { in Pre()
190 bool Pre(const parser::AccClause::Firstprivate &x) { in Pre()
195 void Post(const parser::Name &);
198 std::int64_t GetAssociatedLoopLevelFromClauses(const parser::AccClauseList &);
215 void PrivatizeAssociatedLoopIndex(const parser::OpenACCLoopConstruct &);
216 void ResolveAccObjectList(const parser::AccObjectList &, Symbol::Flag);
217 void ResolveAccObject(const parser::AccObject &, Symbol::Flag);
218 Symbol *ResolveAcc(const parser::Name &, Symbol::Flag, Scope &);
220 Symbol *ResolveName(const parser::Name &);
221 Symbol *ResolveAccCommonBlockName(const parser::Name *);
222 Symbol *DeclareOrMarkOtherAccessEntity(const parser::Name &, Symbol::Flag);
225 const parser::Name &, const Symbol &, Symbol::Flag);
226 void AllowOnlyArrayAndSubArray(const parser::AccObjectList &objectList);
227 void DoNotAllowAssumedSizedArray(const parser::AccObjectList &objectList);
229 const llvm::acc::Clause clause, const parser::AccObjectList &objectList);
238 template <typename A> void Walk(const A &x) { parser::Walk(x, *this); } in Walk()
242 template <typename A> bool Pre(const parser::Statement<A> &statement) { in Pre()
265 bool Pre(const parser::InternalSubprogram &) { in Pre()
271 bool Pre(const parser::ModuleSubprogram &) { in Pre()
277 bool Pre(const parser::SpecificationPart &x) { in Pre()
278 Walk(std::get<std::list<parser::OpenMPDeclarativeConstruct>>(x.t)); in Pre()
282 bool Pre(const parser::StmtFunctionStmt &x) { in Pre()
283 const auto &parsedExpr{std::get<parser::Scalar<parser::Expr>>(x.t)}; in Pre()
294 bool Pre(const parser::OpenMPBlockConstruct &);
295 void Post(const parser::OpenMPBlockConstruct &);
297 void Post(const parser::OmpBeginBlockDirective &) { in Post()
301 bool Pre(const parser::OpenMPSimpleStandaloneConstruct &);
302 void Post(const parser::OpenMPSimpleStandaloneConstruct &) { PopContext(); } in Post()
304 bool Pre(const parser::OpenMPLoopConstruct &);
305 void Post(const parser::OpenMPLoopConstruct &) { PopContext(); } in Post()
306 void Post(const parser::OmpBeginLoopDirective &) { in Post()
309 bool Pre(const parser::DoConstruct &);
311 bool Pre(const parser::OpenMPSectionsConstruct &);
312 void Post(const parser::OpenMPSectionsConstruct &) { PopContext(); } in Post()
314 bool Pre(const parser::OpenMPCriticalConstruct &critical);
315 void Post(const parser::OpenMPCriticalConstruct &) { PopContext(); } in Post()
317 bool Pre(const parser::OpenMPDeclareSimdConstruct &x) { in Pre()
319 const auto &name{std::get<std::optional<parser::Name>>(x.t)}; in Pre()
325 void Post(const parser::OpenMPDeclareSimdConstruct &) { PopContext(); } in Post()
326 bool Pre(const parser::OpenMPThreadprivate &);
327 void Post(const parser::OpenMPThreadprivate &) { PopContext(); } in Post()
329 bool Pre(const parser::OpenMPDeclarativeAllocate &);
330 void Post(const parser::OpenMPDeclarativeAllocate &) { PopContext(); } in Post()
332 bool Pre(const parser::OpenMPExecutableAllocate &);
333 void Post(const parser::OpenMPExecutableAllocate &);
336 void Post(const parser::OmpDefaultClause &);
337 bool Pre(const parser::OmpClause::Shared &x) { in Pre()
341 bool Pre(const parser::OmpClause::Private &x) { in Pre()
345 bool Pre(const parser::OmpAllocateClause &x) { in Pre()
346 const auto &objectList{std::get<parser::OmpObjectList>(x.t)}; in Pre()
350 bool Pre(const parser::OmpClause::Firstprivate &x) { in Pre()
354 bool Pre(const parser::OmpClause::Lastprivate &x) { in Pre()
358 bool Pre(const parser::OmpClause::Copyin &x) { in Pre()
362 bool Pre(const parser::OmpClause::Copyprivate &x) { in Pre()
366 bool Pre(const parser::OmpLinearClause &x) { in Pre()
368 [&](const parser::OmpLinearClause::WithoutModifier in Pre()
373 [&](const parser::OmpLinearClause::WithModifier in Pre()
383 bool Pre(const parser::OmpClause::Reduction &x) { in Pre()
384 const parser::OmpReductionOperator &opr{ in Pre()
385 std::get<parser::OmpReductionOperator>(x.v.t)}; in Pre()
386 if (const auto *procD{parser::Unwrap<parser::ProcedureDesignator>(opr.u)}) { in Pre()
387 if (const auto *name{parser::Unwrap<parser::Name>(procD->u)}) { in Pre()
398 parser::Unwrap<parser::ProcComponentRef>(procD->u)}) { in Pre()
403 const auto &objList{std::get<parser::OmpObjectList>(x.v.t)}; in Pre()
408 bool Pre(const parser::OmpAlignedClause &x) { in Pre()
409 const auto &alignedNameList{std::get<std::list<parser::Name>>(x.t)}; in Pre()
414 bool Pre(const parser::OmpClause::Nontemporal &x) { in Pre()
420 bool Pre(const parser::OmpDependClause &x) { in Pre()
422 std::get_if<parser::OmpDependClause::Sink>(&x.u)}) { in Pre()
425 const auto &name{std::get<parser::Name>(dependSinkElement.t)}; in Pre()
432 void Post(const parser::Name &);
435 void Post(const parser::GotoStmt &gotoStmt) { CheckSourceLabel(gotoStmt.v); } in Post()
436 void Post(const parser::ComputedGotoStmt &computedGotoStmt) { in Post()
437 for (auto &label : std::get<std::list<parser::Label>>(computedGotoStmt.t)) { in Post()
441 void Post(const parser::ArithmeticIfStmt &arithmeticIfStmt) { in Post()
446 void Post(const parser::AssignedGotoStmt &assignedGotoStmt) { in Post()
447 for (auto &label : std::get<std::list<parser::Label>>(assignedGotoStmt.t)) { in Post()
451 void Post(const parser::AltReturnSpec &altReturnSpec) { in Post()
454 void Post(const parser::ErrLabel &errLabel) { CheckSourceLabel(errLabel.v); } in Post()
455 void Post(const parser::EndLabel &endLabel) { CheckSourceLabel(endLabel.v); } in Post()
456 void Post(const parser::EorLabel &eorLabel) { CheckSourceLabel(eorLabel.v); } in Post()
458 const parser::OmpClause *associatedClause{nullptr};
459 void SetAssociatedClause(const parser::OmpClause &c) { in SetAssociatedClause()
462 const parser::OmpClause *GetAssociatedClause() { return associatedClause; } in GetAssociatedClause()
465 std::int64_t GetAssociatedLoopLevelFromClauses(const parser::OmpClauseList &);
488 std::vector<const parser::Name *> allocateNames_; // on one directive
491 std::multimap<const parser::Label,
492 std::pair<parser::CharBlock, std::optional<DirContext>>>
494 std::map<const parser::Label,
495 std::pair<parser::CharBlock, std::optional<DirContext>>>
497 parser::CharBlock currentStatementSource_;
499 void AddAllocateName(const parser::Name *&object) { in AddAllocateName()
513 const parser::OpenMPLoopConstruct &);
514 void ResolveSeqLoopIndexInParallelOrTaskConstruct(const parser::Name &);
517 void ResolveOmpObjectList(const parser::OmpObjectList &, Symbol::Flag);
518 void ResolveOmpObject(const parser::OmpObject &, Symbol::Flag);
519 Symbol *ResolveOmp(const parser::Name &, Symbol::Flag, Scope &);
521 Symbol *ResolveOmpCommonBlockName(const parser::Name *);
522 void ResolveOmpNameList(const std::list<parser::Name> &, Symbol::Flag);
523 void ResolveOmpName(const parser::Name &, Symbol::Flag);
524 Symbol *ResolveName(const parser::Name *);
525 Symbol *ResolveOmpObjectScope(const parser::Name *);
526 Symbol *DeclareOrMarkOtherAccessEntity(const parser::Name &, Symbol::Flag);
529 const parser::Name &, const Symbol &, Symbol::Flag);
532 const parser::Name &, const Symbol &, Symbol::Flag);
533 void CheckAssocLoopLevel(std::int64_t level, const parser::OmpClause *clause);
535 const parser::Name &, const Symbol &, Symbol::Flag);
536 void CheckSourceLabel(const parser::Label &);
537 void CheckLabelContext(const parser::CharBlock, const parser::CharBlock,
556 const parser::Name &DirectiveAttributeVisitor<T>::GetLoopIndex( in GetLoopIndex()
557 const parser::DoConstruct &x) { in GetLoopIndex()
558 using Bounds = parser::LoopControl::Bounds; in GetLoopIndex()
563 const parser::DoConstruct *DirectiveAttributeVisitor<T>::GetDoConstructIf( in GetDoConstructIf()
564 const parser::ExecutionPartConstruct &x) { in GetDoConstructIf()
565 return parser::Unwrap<parser::DoConstruct>(x); in GetDoConstructIf()
570 const parser::Name &name, Symbol::Flag flag, Scope &scope) { in DeclarePrivateAccessEntity()
595 bool AccAttributeVisitor::Pre(const parser::OpenACCBlockConstruct &x) { in Pre()
596 const auto &beginBlockDir{std::get<parser::AccBeginBlockDirective>(x.t)}; in Pre()
597 const auto &blockDir{std::get<parser::AccBlockDirective>(beginBlockDir.t)}; in Pre()
613 bool AccAttributeVisitor::Pre(const parser::OpenACCDeclarativeConstruct &x) { in Pre()
615 std::get_if<parser::OpenACCStandaloneDeclarativeConstruct>(&x.u)}) { in Pre()
617 std::get<parser::AccDeclarativeDirective>(declConstruct->t)}; in Pre()
620 std::get_if<parser::OpenACCRoutineConstruct>(&x.u)}) { in Pre()
621 const auto &verbatim{std::get<parser::Verbatim>(routineConstruct->t)}; in Pre()
628 static const parser::AccObjectList &GetAccObjectList( in GetAccObjectList()
629 const parser::AccClause &clause) { in GetAccObjectList()
631 std::get_if<Fortran::parser::AccClause::Copy>(&clause.u)) { in GetAccObjectList()
634 std::get_if<Fortran::parser::AccClause::Create>(&clause.u)) { in GetAccObjectList()
635 const Fortran::parser::AccObjectListWithModifier &listWithModifier = in GetAccObjectList()
637 const Fortran::parser::AccObjectList &accObjectList = in GetAccObjectList()
638 std::get<Fortran::parser::AccObjectList>(listWithModifier.t); in GetAccObjectList()
641 std::get_if<Fortran::parser::AccClause::Copyin>(&clause.u)) { in GetAccObjectList()
642 const Fortran::parser::AccObjectListWithModifier &listWithModifier = in GetAccObjectList()
644 const Fortran::parser::AccObjectList &accObjectList = in GetAccObjectList()
645 std::get<Fortran::parser::AccObjectList>(listWithModifier.t); in GetAccObjectList()
648 std::get_if<Fortran::parser::AccClause::Copyout>(&clause.u)) { in GetAccObjectList()
649 const Fortran::parser::AccObjectListWithModifier &listWithModifier = in GetAccObjectList()
651 const Fortran::parser::AccObjectList &accObjectList = in GetAccObjectList()
652 std::get<Fortran::parser::AccObjectList>(listWithModifier.t); in GetAccObjectList()
655 std::get_if<Fortran::parser::AccClause::Present>(&clause.u)) { in GetAccObjectList()
658 std::get_if<Fortran::parser::AccClause::Deviceptr>( in GetAccObjectList()
662 std::get_if<Fortran::parser::AccClause::DeviceResident>( in GetAccObjectList()
666 std::get_if<Fortran::parser::AccClause::Link>(&clause.u)) { in GetAccObjectList()
674 const parser::OpenACCStandaloneDeclarativeConstruct &x) { in Post()
675 const auto &clauseList = std::get<parser::AccClauseList>(x.t); in Post()
682 bool AccAttributeVisitor::Pre(const parser::OpenACCLoopConstruct &x) { in Pre()
683 const auto &beginDir{std::get<parser::AccBeginLoopDirective>(x.t)}; in Pre()
684 const auto &loopDir{std::get<parser::AccLoopDirective>(beginDir.t)}; in Pre()
685 const auto &clauseList{std::get<parser::AccClauseList>(beginDir.t)}; in Pre()
695 bool AccAttributeVisitor::Pre(const parser::OpenACCStandaloneConstruct &x) { in Pre()
696 const auto &standaloneDir{std::get<parser::AccStandaloneDirective>(x.t)}; in Pre()
713 Symbol *AccAttributeVisitor::ResolveName(const parser::Name &name) { in ResolveName()
721 bool AccAttributeVisitor::Pre(const parser::OpenACCRoutineConstruct &x) { in Pre()
722 const auto &optName{std::get<std::optional<parser::Name>>(x.t)}; in Pre()
733 bool AccAttributeVisitor::Pre(const parser::AccBindClause &x) { in Pre()
734 if (const auto *name{std::get_if<parser::Name>(&x.u)}) { in Pre()
744 bool AccAttributeVisitor::Pre(const parser::OpenACCCombinedConstruct &x) { in Pre()
745 const auto &beginBlockDir{std::get<parser::AccBeginCombinedDirective>(x.t)}; in Pre()
747 std::get<parser::AccCombinedDirective>(beginBlockDir.t)}; in Pre()
761 static bool IsLastNameArray(const parser::Designator &designator) { in IsLastNameArray()
777 const parser::AccObjectList &objectList) { in AllowOnlyArrayAndSubArray()
781 [&](const parser::Designator &designator) { in AllowOnlyArrayAndSubArray()
785 parser::ToUpperCaseLetters( in AllowOnlyArrayAndSubArray()
794 parser::ToUpperCaseLetters( in AllowOnlyArrayAndSubArray()
804 const parser::AccObjectList &objectList) { in DoNotAllowAssumedSizedArray()
808 [&](const parser::Designator &designator) { in DoNotAllowAssumedSizedArray()
814 parser::ToUpperCaseLetters( in DoNotAllowAssumedSizedArray()
828 bool AccAttributeVisitor::Pre(const parser::OpenACCCacheConstruct &x) { in Pre()
829 const auto &verbatim{std::get<parser::Verbatim>(x.t)}; in Pre()
834 std::get<parser::AccObjectListWithModifier>(x.t); in Pre()
836 std::get<Fortran::parser::AccObjectList>(objectListWithModifier.t); in Pre()
846 const parser::AccClauseList &x) { in GetAssociatedLoopLevelFromClauses()
850 std::get_if<parser::AccClause::Collapse>(&clause.u)}) { in GetAssociatedLoopLevelFromClauses()
864 const parser::OpenACCLoopConstruct &x) { in PrivatizeAssociatedLoopIndex()
871 const auto &outer{std::get<std::optional<parser::DoConstruct>>(x.t)}; in PrivatizeAssociatedLoopIndex()
872 for (const parser::DoConstruct *loop{&*outer}; loop && level > 0; --level) { in PrivatizeAssociatedLoopIndex()
874 const parser::Name &iv{GetLoopIndex(*loop)}; in PrivatizeAssociatedLoopIndex()
881 const auto &block{std::get<parser::Block>(loop->t)}; in PrivatizeAssociatedLoopIndex()
889 const llvm::acc::Clause clause, const parser::AccObjectList &objectList) { in EnsureAllocatableOrPointer()
893 [&](const parser::Designator &designator) { in EnsureAllocatableOrPointer()
900 parser::ToUpperCaseLetters( in EnsureAllocatableOrPointer()
908 parser::ToUpperCaseLetters( in EnsureAllocatableOrPointer()
916 bool AccAttributeVisitor::Pre(const parser::AccClause::Attach &x) { in Pre()
922 bool AccAttributeVisitor::Pre(const parser::AccClause::Detach &x) { in Pre()
928 void AccAttributeVisitor::Post(const parser::AccDefaultClause &x) { in Post()
943 void AccAttributeVisitor::Post(const parser::Name &name) { in Post()
964 const parser::Name *name) { in ResolveAccCommonBlockName()
977 const parser::AccObjectList &accObjectList, Symbol::Flag accFlag) { in ResolveAccObjectList()
984 const parser::AccObject &accObject, Symbol::Flag accFlag) { in ResolveAccObject()
987 [&](const parser::Designator &designator) { in ResolveAccObject()
998 if (std::holds_alternative<parser::Substring>(designator.u)) { in ResolveAccObject()
1007 [&](const parser::Name &name) { // common block in ResolveAccObject()
1028 const parser::Name &name, Symbol::Flag accFlag, Scope &scope) { in ResolveAcc()
1046 const parser::Name &name, Symbol::Flag accFlag) { in DeclareOrMarkOtherAccessEntity()
1070 const parser::Name &name, const Symbol &symbol, Symbol::Flag accFlag) { in CheckMultipleAppearances()
1088 bool OmpAttributeVisitor::Pre(const parser::OpenMPBlockConstruct &x) { in Pre()
1089 const auto &beginBlockDir{std::get<parser::OmpBeginBlockDirective>(x.t)}; in Pre()
1090 const auto &beginDir{std::get<parser::OmpBlockDirective>(beginBlockDir.t)}; in Pre()
1117 void OmpAttributeVisitor::Post(const parser::OpenMPBlockConstruct &x) { in Post()
1118 const auto &beginBlockDir{std::get<parser::OmpBeginBlockDirective>(x.t)}; in Post()
1119 const auto &beginDir{std::get<parser::OmpBlockDirective>(beginBlockDir.t)}; in Post()
1156 const parser::OpenMPSimpleStandaloneConstruct &x) { in Pre()
1158 std::get<parser::OmpSimpleStandaloneDirective>(x.t)}; in Pre()
1176 bool OmpAttributeVisitor::Pre(const parser::OpenMPLoopConstruct &x) { in Pre()
1177 const auto &beginLoopDir{std::get<parser::OmpBeginLoopDirective>(x.t)}; in Pre()
1178 const auto &beginDir{std::get<parser::OmpLoopDirective>(beginLoopDir.t)}; in Pre()
1179 const auto &clauseList{std::get<parser::OmpClauseList>(beginLoopDir.t)}; in Pre()
1213 std::get<std::optional<parser::DoConstruct>>(x.t)}) { in Pre()
1225 const parser::Name &iv) { in ResolveSeqLoopIndexInParallelOrTaskConstruct()
1254 bool OmpAttributeVisitor::Pre(const parser::DoConstruct &x) { in Pre()
1282 const parser::OmpClauseList &x) { in GetAssociatedLoopLevelFromClauses()
1286 const parser::OmpClause *ordClause{nullptr}; in GetAssociatedLoopLevelFromClauses()
1287 const parser::OmpClause *collClause{nullptr}; in GetAssociatedLoopLevelFromClauses()
1291 std::get_if<parser::OmpClause::Ordered>(&clause.u)}) { in GetAssociatedLoopLevelFromClauses()
1298 std::get_if<parser::OmpClause::Collapse>(&clause.u)}) { in GetAssociatedLoopLevelFromClauses()
1325 const parser::OpenMPLoopConstruct &x) { in PrivatizeAssociatedLoopIndexAndCheckLoopLevel()
1339 const auto &outer{std::get<std::optional<parser::DoConstruct>>(x.t)}; in PrivatizeAssociatedLoopIndexAndCheckLoopLevel()
1340 for (const parser::DoConstruct *loop{&*outer}; loop && level > 0; --level) { in PrivatizeAssociatedLoopIndexAndCheckLoopLevel()
1342 const parser::Name &iv{GetLoopIndex(*loop)}; in PrivatizeAssociatedLoopIndexAndCheckLoopLevel()
1349 const auto &block{std::get<parser::Block>(loop->t)}; in PrivatizeAssociatedLoopIndexAndCheckLoopLevel()
1356 std::int64_t level, const parser::OmpClause *clause) { in CheckAssocLoopLevel()
1365 bool OmpAttributeVisitor::Pre(const parser::OpenMPSectionsConstruct &x) { in Pre()
1367 std::get<parser::OmpBeginSectionsDirective>(x.t)}; in Pre()
1369 std::get<parser::OmpSectionsDirective>(beginSectionsDir.t)}; in Pre()
1382 bool OmpAttributeVisitor::Pre(const parser::OpenMPCriticalConstruct &x) { in Pre()
1383 const auto &beginCriticalDir{std::get<parser::OmpCriticalDirective>(x.t)}; in Pre()
1384 const auto &endCriticalDir{std::get<parser::OmpEndCriticalDirective>(x.t)}; in Pre()
1387 std::get<std::optional<parser::Name>>(beginCriticalDir.t)}) { in Pre()
1391 std::get<std::optional<parser::Name>>(endCriticalDir.t)}) { in Pre()
1397 bool OmpAttributeVisitor::Pre(const parser::OpenMPThreadprivate &x) { in Pre()
1399 const auto &list{std::get<parser::OmpObjectList>(x.t)}; in Pre()
1404 bool OmpAttributeVisitor::Pre(const parser::OpenMPDeclarativeAllocate &x) { in Pre()
1406 const auto &list{std::get<parser::OmpObjectList>(x.t)}; in Pre()
1411 bool OmpAttributeVisitor::Pre(const parser::OpenMPExecutableAllocate &x) { in Pre()
1413 const auto &list{std::get<std::optional<parser::OmpObjectList>>(x.t)}; in Pre()
1420 void OmpAttributeVisitor::Post(const parser::OmpDefaultClause &x) { in Post()
1423 case parser::OmpDefaultClause::Type::Private: in Post()
1426 case parser::OmpDefaultClause::Type::Firstprivate: in Post()
1429 case parser::OmpDefaultClause::Type::Shared: in Post()
1432 case parser::OmpDefaultClause::Type::None: in Post()
1450 void OmpAttributeVisitor::Post(const parser::OpenMPExecutableAllocate &x) { in Post()
1454 const auto &clauseList{std::get<parser::OmpClauseList>(x.t)}; in Post()
1456 if (std::get_if<parser::OmpClause::Allocator>(&clause.u)) { in Post()
1474 void OmpAttributeVisitor::Post(const parser::Name &name) { in Post()
1496 Symbol *OmpAttributeVisitor::ResolveName(const parser::Name *name) { in ResolveName()
1507 const parser::Name &name, Symbol::Flag ompFlag) { in ResolveOmpName()
1523 const std::list<parser::Name> &nameList, Symbol::Flag ompFlag) { in ResolveOmpNameList()
1530 const parser::Name *name) { in ResolveOmpCommonBlockName()
1551 Symbol *OmpAttributeVisitor::ResolveOmpObjectScope(const parser::Name *name) { in ResolveOmpObjectScope()
1572 const parser::OmpObjectList &ompObjectList, Symbol::Flag ompFlag) { in ResolveOmpObjectList()
1579 const parser::OmpObject &ompObject, Symbol::Flag ompFlag) { in ResolveOmpObject()
1582 [&](const parser::Designator &designator) { in ResolveOmpObject()
1619 if (std::holds_alternative<parser::Substring>(designator.u)) { in ResolveOmpObject()
1628 [&](const parser::Name &name) { // common block in ResolveOmpObject()
1658 const parser::Name &name, Symbol::Flag ompFlag, Scope &scope) { in ResolveOmp()
1676 const parser::Name &name, Symbol::Flag ompFlag) { in DeclareOrMarkOtherAccessEntity()
1703 const parser::Name &name, const Symbol &symbol, Symbol::Flag ompFlag) { in CheckMultipleAppearances()
1725 SemanticsContext &context, const parser::ProgramUnit &node) { in ResolveAccParts()
1732 SemanticsContext &context, const parser::ProgramUnit &node) { in ResolveOmpParts()
1747 const parser::Name &name, const Symbol &symbol, Symbol::Flag ompFlag) { in CheckDataCopyingClause()
1788 const parser::Name &name, const Symbol &symbol, Symbol::Flag ompFlag) { in CheckObjectInNamelist()
1804 void OmpAttributeVisitor::CheckSourceLabel(const parser::Label &label) { in CheckSourceLabel()
1822 void OmpAttributeVisitor::CheckLabelContext(const parser::CharBlock source, in CheckLabelContext()
1823 const parser::CharBlock target, std::optional<DirContext> sourceContext, in CheckLabelContext()
1833 parser::ToUpperCaseLetters( in CheckLabelContext()
1846 parser::ToUpperCaseLetters( in CheckLabelContext()