Lines Matching refs:proc
61 const Symbol &proc, const Symbol *interface, const WithPassArg &);
130 const Symbol &proc; member
651 } else if (const auto *proc{symbol.detailsIf<ProcEntityDetails>()}) { in CheckPointerInitialization() local
652 if (proc->init() && *proc->init()) { in CheckPointerInitialization()
655 const Symbol &ultimate{(*proc->init())->GetUltimate()}; in CheckPointerInitialization()
1032 const Procedure *proc{Characterize(subroutine)}; in CheckFinal() local
1033 if (!proc) { in CheckFinal()
1036 if (!proc->IsSubroutine()) { in CheckFinal()
1042 if (proc->dummyArguments.size() != 1) { in CheckFinal()
1048 const auto &arg{proc->dummyArguments[0]}; in CheckFinal()
1200 static bool ConflictsWithIntrinsicAssignment(const Procedure &proc) { in ConflictsWithIntrinsicAssignment() argument
1201 auto lhs{std::get<DummyDataObject>(proc.dummyArguments[0].u).type}; in ConflictsWithIntrinsicAssignment()
1202 auto rhs{std::get<DummyDataObject>(proc.dummyArguments[1].u).type}; in ConflictsWithIntrinsicAssignment()
1208 const GenericKind &kind, const Procedure &proc) { in ConflictsWithIntrinsicOperator() argument
1212 auto arg0{std::get<DummyDataObject>(proc.dummyArguments[0].u).type}; in ConflictsWithIntrinsicOperator()
1214 if (proc.dummyArguments.size() == 1) { // unary in ConflictsWithIntrinsicOperator()
1224 auto arg1{std::get<DummyDataObject>(proc.dummyArguments[1].u).type}; in ConflictsWithIntrinsicOperator()
1250 const Symbol &specific, const Procedure &proc) { in CheckDefinedOperator() argument
1256 [&](SourceName opName, const Symbol &specific, const Procedure &proc) { in CheckDefinedOperator()
1257 bool arg0Defined{CheckDefinedOperatorArg(opName, specific, proc, 0)}; in CheckDefinedOperator()
1258 bool arg1Defined{CheckDefinedOperatorArg(opName, specific, proc, 1)}; in CheckDefinedOperator()
1263 } else if (!proc.functionResult.has_value()) { in CheckDefinedOperator()
1265 } else if (proc.functionResult->IsAssumedLengthCharacter()) { in CheckDefinedOperator()
1268 } else if (auto m{CheckNumberOfArgs(kind, proc.dummyArguments.size())}) { in CheckDefinedOperator()
1270 } else if (!checkDefinedOperatorArgs(opName, specific, proc)) { in CheckDefinedOperator()
1272 } else if (ConflictsWithIntrinsicOperator(kind, proc)) { in CheckDefinedOperator()
1325 const Symbol &symbol, const Procedure &proc, std::size_t pos) { in CheckDefinedOperatorArg() argument
1326 if (pos >= proc.dummyArguments.size()) { in CheckDefinedOperatorArg()
1329 auto &arg{proc.dummyArguments.at(pos)}; in CheckDefinedOperatorArg()
1353 const Symbol &specific, const Procedure &proc) { in CheckDefinedAssignment() argument
1361 } else if (!proc.IsSubroutine()) { in CheckDefinedAssignment()
1363 } else if (proc.dummyArguments.size() != 2) { in CheckDefinedAssignment()
1368 bool ok0{CheckDefinedAssignmentArg(specific, proc.dummyArguments[0], 0)}; in CheckDefinedAssignment()
1369 bool ok1{CheckDefinedAssignmentArg(specific, proc.dummyArguments[1], 1)}; in CheckDefinedAssignment()
1372 } else if (ConflictsWithIntrinsicAssignment(proc)) { in CheckDefinedAssignment()
1516 const Symbol &proc, const Symbol *interface, const WithPassArg &details) { in CheckPassArg() argument
1517 if (proc.attrs().test(Attr::NOPASS)) { in CheckPassArg()
1520 const auto &name{proc.name()}; in CheckPassArg()
1539 proc.has<ProcEntityDetails>() in CheckPassArg()
1596 const Symbol &typeSymbol{*proc.owner().GetSymbol()}; in CheckPassArg()
1840 if (const Procedure * proc{Characterize(specific)}) { in CheckGenericOps() local
1842 if (!CheckDefinedAssignment(specific, *proc)) { in CheckGenericOps()
1846 if (!CheckDefinedOperator(generic.name(), kind, specific, *proc)) { in CheckGenericOps()
1850 helper.Add(generic, kind, specific, *proc); in CheckGenericOps()
1909 if (const auto *proc{symbol.detailsIf<ProcEntityDetails>()}) { in CheckBindC() local
1910 if (!proc->interface().symbol() || in CheckBindC()
1911 !proc->interface().symbol()->attrs().test(Attr::BIND_C)) { in CheckBindC()
1937 GenericKind::DefinedIo ioKind, const Symbol &proc, const Symbol &generic) { in CheckAlreadySeenDefinedIo() argument
1944 proc != definedIoType.proc && in CheckAlreadySeenDefinedIo()
1947 SayWithDeclaration(proc, definedIoType.proc.name(), in CheckAlreadySeenDefinedIo()
1956 TypeWithDefinedIo{derivedType, ioKind, proc, generic}); in CheckAlreadySeenDefinedIo()
2031 if (const auto *proc{ultimate.detailsIf<SubprogramDetails>()}) { in CheckGenericVsIntrinsic() local
2032 if (proc->isFunction()) { in CheckGenericVsIntrinsic()
2428 const auto &[kind, symbol, proc]{info[i1]}; in Check()
2434 context_.languageFeatures(), proc, info[i2].procedure)) { in Check()
2474 parser::Message &msg, const Scope &scope, const Symbol &proc) { in AttachDeclaration() argument
2475 const Scope &unit{GetTopLevelUnitContaining(proc)}; in AttachDeclaration()
2477 evaluate::AttachDeclaration(msg, proc); in AttachDeclaration()
2480 "'%s' is USE-associated from module '%s'"_en_US, proc.name(), in AttachDeclaration()