Lines Matching refs:semantics

29 static void CopyAttrs(const semantics::Symbol &src, A &dst,  in CopyAttrs()
30 const std::initializer_list<std::pair<semantics::Attr, B>> &pairs) { in CopyAttrs()
71 const semantics::Symbol &symbol, FoldingContext &context) { in Characterize()
75 [&](const semantics::ProcEntityDetails &proc) { in Characterize()
76 const semantics::ProcInterface &interface { proc.interface() }; in Characterize()
85 [&](const semantics::AssocEntityDetails &assoc) { in Characterize()
88 [&](const semantics::ProcBindingDetails &binding) { in Characterize()
93 if constexpr (std::is_same_v<Ty, semantics::EntityDetails> || in Characterize()
94 std::is_same_v<Ty, semantics::ObjectEntityDetails> || in Characterize()
95 std::is_same_v<Ty, semantics::TypeParamDetails>) { in Characterize()
96 if (const semantics::DeclTypeSpec * type{ultimate.GetType()}) { in Characterize()
116 const semantics::AssocEntityDetails &assoc, FoldingContext &context) { in Characterize()
138 const semantics::DeclTypeSpec &spec, FoldingContext &context) { in Characterize()
196 void TypeAndShape::AcquireAttrs(const semantics::Symbol &symbol) { in AcquireAttrs()
204 symbol.GetUltimate().detailsIf<semantics::ObjectEntityDetails>()}) { in AcquireAttrs()
224 void TypeAndShape::AcquireLEN(const semantics::Symbol &symbol) { in AcquireLEN()
302 static common::Intent GetIntent(const semantics::Attrs &attrs) { in GetIntent()
303 if (attrs.test(semantics::Attr::INTENT_IN)) { in GetIntent()
305 } else if (attrs.test(semantics::Attr::INTENT_OUT)) { in GetIntent()
307 } else if (attrs.test(semantics::Attr::INTENT_INOUT)) { in GetIntent()
315 const semantics::Symbol &symbol, FoldingContext &context) { in Characterize()
316 if (symbol.has<semantics::ObjectEntityDetails>() || in Characterize()
317 symbol.has<semantics::EntityDetails>()) { in Characterize()
320 using semantics::Attr; in Characterize()
408 const semantics::UnorderedSymbolSet &seenProcs) { in GetSeenProcs()
410 auto ordered{semantics::OrderBySourcePosition(seenProcs)}; in GetSeenProcs()
424 const semantics::Symbol &symbol, FoldingContext &context,
425 semantics::UnorderedSymbolSet seenProcs);
427 const semantics::Symbol &symbol, FoldingContext &context,
428 semantics::UnorderedSymbolSet seenProcs);
431 const semantics::Symbol &original, FoldingContext &context, in CharacterizeProcedure()
432 semantics::UnorderedSymbolSet seenProcs) { in CharacterizeProcedure()
449 {semantics::Attr::BIND_C, Procedure::Attr::BindC}, in CharacterizeProcedure()
452 (!symbol.attrs().test(semantics::Attr::IMPURE) && in CharacterizeProcedure()
458 [&](const semantics::SubprogramDetails &subp) in CharacterizeProcedure()
470 for (const semantics::Symbol *arg : subp.dummyArgs()) { in CharacterizeProcedure()
487 [&](const semantics::ProcEntityDetails &proc) in CharacterizeProcedure()
489 if (symbol.attrs().test(semantics::Attr::INTRINSIC)) { in CharacterizeProcedure()
502 const semantics::ProcInterface &interface { proc.interface() }; in CharacterizeProcedure()
503 if (const semantics::Symbol * interfaceSymbol{interface.symbol()}) { in CharacterizeProcedure()
513 const semantics::DeclTypeSpec *type{interface.type()}; in CharacterizeProcedure()
514 if (symbol.test(semantics::Symbol::Flag::Subroutine)) { in CharacterizeProcedure()
523 } else if (symbol.test(semantics::Symbol::Flag::Function)) { in CharacterizeProcedure()
530 [&](const semantics::ProcBindingDetails &binding) { in CharacterizeProcedure()
533 if (!symbol.attrs().test(semantics::Attr::NOPASS)) { in CharacterizeProcedure()
548 [&](const semantics::UseDetails &use) { in CharacterizeProcedure()
551 [](const semantics::UseErrorDetails &) { in CharacterizeProcedure()
556 [&](const semantics::HostAssocDetails &assoc) { in CharacterizeProcedure()
559 [&](const semantics::EntityDetails &) { in CharacterizeProcedure()
565 [&](const semantics::SubprogramNameDetails &) { in CharacterizeProcedure()
581 const semantics::Symbol &symbol, FoldingContext &context, in CharacterizeDummyProcedure()
582 semantics::UnorderedSymbolSet seenProcs) { in CharacterizeDummyProcedure()
592 {semantics::Attr::OPTIONAL, DummyProcedure::Attr::Optional}, in CharacterizeDummyProcedure()
593 {semantics::Attr::POINTER, DummyProcedure::Attr::Pointer}, in CharacterizeDummyProcedure()
650 const semantics::Symbol &symbol, FoldingContext &context, in CharacterizeDummyArgument()
651 semantics::UnorderedSymbolSet seenProcs) { in CharacterizeDummyArgument()
653 if (symbol.has<semantics::ObjectEntityDetails>() || in CharacterizeDummyArgument()
654 symbol.has<semantics::EntityDetails>()) { in CharacterizeDummyArgument()
789 const semantics::Symbol &symbol, FoldingContext &context, in CharacterizeFunctionResult()
790 semantics::UnorderedSymbolSet seenProcs) { in CharacterizeFunctionResult()
791 if (symbol.has<semantics::ObjectEntityDetails>()) { in CharacterizeFunctionResult()
796 {semantics::Attr::ALLOCATABLE, FunctionResult::Attr::Allocatable}, in CharacterizeFunctionResult()
797 {semantics::Attr::CONTIGUOUS, FunctionResult::Attr::Contiguous}, in CharacterizeFunctionResult()
798 {semantics::Attr::POINTER, FunctionResult::Attr::Pointer}, in CharacterizeFunctionResult()
813 semantics::UnorderedSymbolSet seenProcs; in Characterize()
1033 const semantics::Symbol &original, FoldingContext &context) { in Characterize()
1034 semantics::UnorderedSymbolSet seenProcs; in Characterize()