Lines Matching refs:Procedure

376 DummyProcedure::DummyProcedure(Procedure &&p)  in DummyProcedure()
377 : procedure{new Procedure{std::move(p)}} {} in DummyProcedure()
430 static std::optional<Procedure> CharacterizeProcedure( in CharacterizeProcedure()
433 Procedure result; in CharacterizeProcedure()
445 result.attrs.set(Procedure::Attr::Elemental); in CharacterizeProcedure()
447 CopyAttrs<Procedure, Procedure::Attr>(symbol, result, in CharacterizeProcedure()
449 {semantics::Attr::BIND_C, Procedure::Attr::BindC}, in CharacterizeProcedure()
453 result.attrs.test(Procedure::Attr::Elemental))) { in CharacterizeProcedure()
454 result.attrs.set(Procedure::Attr::Pure); in CharacterizeProcedure()
459 -> std::optional<Procedure> { in CharacterizeProcedure()
468 result.attrs.set(Procedure::Attr::Subroutine); in CharacterizeProcedure()
488 -> std::optional<Procedure> { in CharacterizeProcedure()
508 interface->attrs.reset(Procedure::Attr::Elemental); in CharacterizeProcedure()
512 result.attrs.set(Procedure::Attr::ImplicitInterface); in CharacterizeProcedure()
516 result.attrs.set(Procedure::Attr::Subroutine); in CharacterizeProcedure()
545 return std::optional<Procedure>{}; in CharacterizeProcedure()
554 return std::optional<Procedure>{}; in CharacterizeProcedure()
563 return std::optional<Procedure>{}; in CharacterizeProcedure()
569 return std::optional<Procedure>{}; in CharacterizeProcedure()
574 return std::optional<Procedure>{}; in CharacterizeProcedure()
588 procedure->attrs.reset(Procedure::Attr::Elemental); in CharacterizeDummyProcedure()
680 if (auto proc{Procedure::Characterize(designator, context)}) { in FromActual()
688 if (auto proc{Procedure::Characterize(call, context)}) { in FromActual()
781 FunctionResult::FunctionResult(Procedure &&p) : u{std::move(p)} {} in FunctionResult()
904 const auto *ifaceProc{std::get_if<CopyableIndirection<Procedure>>(&u)}; in IsCompatibleWith()
907 std::get_if<CopyableIndirection<Procedure>>(&actual.u)}) { in IsCompatibleWith()
929 [&](const CopyableIndirection<Procedure> &p) { in Dump()
937 Procedure::Procedure(FunctionResult &&fr, DummyArguments &&args, Attrs a) in Procedure() function in Fortran::evaluate::characteristics::Procedure
940 Procedure::Procedure(DummyArguments &&args, Attrs a) in Procedure() function in Fortran::evaluate::characteristics::Procedure
942 Procedure::~Procedure() {} in ~Procedure()
944 bool Procedure::operator==(const Procedure &that) const { in operator ==()
949 bool Procedure::IsCompatibleWith(const Procedure &actual, std::string *whyNot, in IsCompatibleWith()
999 int Procedure::FindPassIndex(std::optional<parser::CharBlock> name) const { in FindPassIndex()
1011 bool Procedure::CanOverride( in CanOverride()
1012 const Procedure &that, std::optional<int> passIndex) const { in CanOverride()
1032 std::optional<Procedure> Procedure::Characterize( in Characterize()
1038 std::optional<Procedure> Procedure::Characterize( in Characterize()
1042 characteristics::Procedure::Characterize(*symbol, context)}) { in Characterize()
1051 std::optional<Procedure> Procedure::Characterize( in Characterize()
1055 if (const Procedure * in Characterize()
1064 bool Procedure::CanBeCalledViaImplicitInterface() const { in CanBeCalledViaImplicitInterface()
1081 llvm::raw_ostream &Procedure::Dump(llvm::raw_ostream &o) const { in Dump()
1105 bool Distinguishable(const Procedure &, const Procedure &) const;
1107 bool DistinguishableOpOrAssign(const Procedure &, const Procedure &) const;
1123 bool Rule3Distinguishable(const Procedure &, const Procedure &) const;
1142 const DummyArgument *GetPassArg(const Procedure &) const;
1149 const Procedure &proc1, const Procedure &proc2) const { in DistinguishableOpOrAssign()
1164 const Procedure &proc1, const Procedure &proc2) const { in Distinguishable()
1194 const Procedure &proc1, const Procedure &proc2) const { in Rule3Distinguishable()
1336 const Procedure &xProc{x.procedure.value()}; in Distinguishable()
1337 const Procedure &yProc{y.procedure.value()}; in Distinguishable()
1358 [&](const CopyableIndirection<Procedure> &z) { in Distinguishable()
1360 std::get<CopyableIndirection<Procedure>>(y.u).value()); in Distinguishable()
1401 const DummyArgument *DistinguishUtils::GetPassArg(const Procedure &proc) const { in GetPassArg()
1411 const Procedure &x, const Procedure &y) { in Distinguishable()
1416 const Procedure &x, const Procedure &y) { in DistinguishableOpOrAssign()
1423 DEFINE_DEFAULT_CONSTRUCTORS_AND_ASSIGNMENTS(Procedure)
1427 Fortran::evaluate::characteristics::Procedure, true>;