Lines Matching refs:evaluate

33 using evaluate::characteristics::DummyDataObject;
34 using evaluate::characteristics::FunctionResult;
35 using evaluate::characteristics::Procedure;
36 using evaluate::characteristics::TypeAndShape;
42 PointerAssignmentChecker(evaluate::FoldingContext &context, in PointerAssignmentChecker()
45 PointerAssignmentChecker(evaluate::FoldingContext &context, const Symbol &lhs) in PointerAssignmentChecker()
63 template <typename T> bool Check(const evaluate::Expr<T> &);
64 template <typename T> bool Check(const evaluate::FunctionRef<T> &);
65 template <typename T> bool Check(const evaluate::Designator<T> &);
66 bool Check(const evaluate::NullPointer &);
67 bool Check(const evaluate::ProcedureDesignator &);
68 bool Check(const evaluate::ProcedureRef &);
72 const evaluate::SpecificIntrinsic *specific = nullptr);
76 evaluate::FoldingContext &context_;
120 bool PointerAssignmentChecker::Check(const evaluate::Expr<T> &x) { in Check()
136 bool PointerAssignmentChecker::Check(const evaluate::NullPointer &) { in Check()
141 bool PointerAssignmentChecker::Check(const evaluate::FunctionRef<T> &f) { in Check()
178 evaluate::CheckConformanceFlags::BothDeferredShape)) { in Check()
191 bool PointerAssignmentChecker::Check(const evaluate::Designator<T> &d) { in Check()
204 } else if (!evaluate::GetLastTarget(GetSymbolVector(d))) { // C1025 in Check()
233 int lhsRank{evaluate::GetRank(lhsType_->shape())}; in Check()
234 int rhsRank{evaluate::GetRank(rhsType->shape())}; in Check()
261 const evaluate::SpecificIntrinsic *specific) { in Check()
263 if (std::optional<MessageFixedText> msg{evaluate::CheckProcCompatibility( in Check()
271 bool PointerAssignmentChecker::Check(const evaluate::ProcedureDesignator &d) { in Check()
279 bool PointerAssignmentChecker::Check(const evaluate::ProcedureRef &ref) { in Check()
310 return evaluate::AttachDeclaration(msg, *lhs_); in Say()
322 evaluate::FoldingContext &context, const evaluate::Assignment &assignment) { in CheckPointerBounds()
329 [&](const evaluate::Assignment::BoundsSpec &bounds) { in CheckPointerBounds()
332 [&](const evaluate::Assignment::BoundsRemapping &bounds) { in CheckPointerBounds()
334 evaluate::ExtentExpr lhsSizeExpr{1}; in CheckPointerBounds()
338 evaluate::ExtentExpr{1}); in CheckPointerBounds()
340 if (std::optional<std::int64_t> lhsSize{evaluate::ToInt64( in CheckPointerBounds()
341 evaluate::Fold(context, std::move(lhsSizeExpr)))}) { in CheckPointerBounds()
342 if (auto shape{evaluate::GetShape(context, rhs)}) { in CheckPointerBounds()
344 evaluate::ToInt64(evaluate::Fold( in CheckPointerBounds()
345 context, evaluate::GetSize(std::move(*shape))))}) { in CheckPointerBounds()
370 !evaluate::IsSimplyContiguous(rhs, context)) { in CheckPointerBounds()
378 evaluate::FoldingContext &context, const evaluate::Assignment &assignment) { in CheckPointerAssignment()
383 bool CheckPointerAssignment(evaluate::FoldingContext &context, in CheckPointerAssignment()
390 evaluate::SayWithDeclaration(context.messages(), *pointer, in CheckPointerAssignment()
394 if (pointer->has<ProcEntityDetails>() && evaluate::ExtractCoarrayRef(lhs)) { in CheckPointerAssignment()
405 evaluate::FoldingContext &context, const Symbol &lhs, const SomeExpr &rhs) { in CheckPointerAssignment()
410 bool CheckPointerAssignment(evaluate::FoldingContext &context, in CheckPointerAssignment()
420 bool CheckInitialTarget(evaluate::FoldingContext &context, in CheckInitialTarget()
422 return evaluate::IsInitialDataTarget(init, &context.messages()) && in CheckInitialTarget()