Lines Matching defs:proc
68 const Symbol &proc, const Symbol *interface, const WithPassArg &);
175 const Symbol &proc;
1128 } else if (const auto *proc{symbol.detailsIf<ProcEntityDetails>()}) {
1129 if (proc->init() && *proc->init()) {
1132 const Symbol &local{DEREF(*proc->init())};
1162 SomeExpr rhs{evaluate::ProcedureDesignator{**proc->init()}};
1701 const Procedure *proc{Characterize(subroutine)};
1702 if (!proc) {
1705 if (!proc->IsSubroutine()) {
1711 if (proc->dummyArguments.size() != 1) {
1717 const auto &arg{proc->dummyArguments[0]};
1922 const Procedure &proc, const DummyDataObject &arg) {
1924 proc.cudaSubprogramAttrs.value_or(common::CUDASubprogramAttrs::Host)};
1939 static bool ConflictsWithIntrinsicAssignment(const Procedure &proc) {
1940 const auto &lhsData{std::get<DummyDataObject>(proc.dummyArguments[0].u)};
1942 const auto &rhsData{std::get<DummyDataObject>(proc.dummyArguments[1].u)};
1944 return !CUDAHostDeviceDiffer(proc, lhsData) &&
1945 !CUDAHostDeviceDiffer(proc, rhsData) &&
1952 const GenericKind &kind, const Procedure &proc) {
1956 const auto &arg0Data{std::get<DummyDataObject>(proc.dummyArguments[0].u)};
1957 if (CUDAHostDeviceDiffer(proc, arg0Data)) {
1962 if (proc.dummyArguments.size() == 1) { // unary
1972 const auto &arg1Data{std::get<DummyDataObject>(proc.dummyArguments[1].u)};
1973 if (CUDAHostDeviceDiffer(proc, arg1Data)) {
2002 const Symbol &specific, const Procedure &proc) {
2008 [&](SourceName opName, const Symbol &specific, const Procedure &proc) {
2009 bool arg0Defined{CheckDefinedOperatorArg(opName, specific, proc, 0)};
2010 bool arg1Defined{CheckDefinedOperatorArg(opName, specific, proc, 1)};
2015 } else if (!proc.functionResult.has_value()) {
2017 } else if (proc.functionResult->IsAssumedLengthCharacter()) {
2026 } else if (auto m{CheckNumberOfArgs(kind, proc.dummyArguments.size())}) {
2036 } else if (!checkDefinedOperatorArgs(opName, specific, proc)) {
2038 } else if (ConflictsWithIntrinsicOperator(kind, proc)) {
2097 const Symbol &symbol, const Procedure &proc, std::size_t pos) {
2098 if (pos >= proc.dummyArguments.size()) {
2101 auto &arg{proc.dummyArguments.at(pos)};
2133 const Symbol &specific, const Procedure &proc) {
2141 } else if (!proc.IsSubroutine()) {
2143 } else if (proc.dummyArguments.size() != 2) {
2148 bool ok0{CheckDefinedAssignmentArg(specific, proc.dummyArguments[0], 0)};
2149 bool ok1{CheckDefinedAssignmentArg(specific, proc.dummyArguments[1], 1)};
2152 } else if (ConflictsWithIntrinsicAssignment(proc)) {
2334 const Symbol &proc, const Symbol *interface0, const WithPassArg &details) {
2335 if (proc.attrs().test(Attr::NOPASS)) {
2338 const auto &name{proc.name()};
2360 proc.has<ProcEntityDetails>()
2417 const Symbol &typeSymbol{*proc.owner().GetSymbol()};
2782 if (const Procedure *proc{Characterize(specific)}) {
2784 if (!CheckDefinedAssignment(specific, *proc)) {
2788 if (!CheckDefinedOperator(generic.name(), kind, specific, *proc)) {
2792 helper.Add(generic, kind, specific, *proc);
3180 if (const auto *proc{symbol.detailsIf<ProcEntityDetails>()}) {
3182 if (!proc->procInterface() ||
3183 !proc->procInterface()->attrs().test(Attr::BIND_C)) {
3187 } else if (!proc->procInterface()) {
3190 } else if (!proc->procInterface()->attrs().test(Attr::BIND_C)) {
3192 *proc->procInterface(), /*isError=*/false)};
3328 common::DefinedIo ioKind, const Symbol &proc, const Symbol &generic) {
3342 if (specific == proc) { // unambiguous, accept
3347 SayWithDeclaration(*specRef, proc.name(),
3429 if (const auto *proc{ultimate.detailsIf<SubprogramDetails>()}) {
3430 if (proc->isFunction()) {
3903 const auto &[kind, proc]{procInfo};
3909 context_.languageFeatures(), proc, iter2->second.procedure)};
3970 // `evaluate::AttachDeclaration` doesn't handle the generic case where `proc`
3973 parser::Message &msg, const Scope &scope, const Symbol &proc) {
3974 const Scope &unit{GetTopLevelUnitContaining(proc)};
3976 evaluate::AttachDeclaration(msg, proc);
3979 "'%s' is USE-associated from module '%s'"_en_US, proc.name(),