9#ifndef FORTRAN_SEMANTICS_POINTER_ASSIGNMENT_H_
10#define FORTRAN_SEMANTICS_POINTER_ASSIGNMENT_H_
12#include "flang/Evaluate/expression.h"
13#include "flang/Parser/char-block.h"
14#include "flang/Semantics/type.h"
17namespace Fortran::evaluate::characteristics {
18struct DummyDataObject;
21namespace Fortran::semantics {
23class SemanticsContext;
26bool CheckPointerAssignment(
27 SemanticsContext &,
const evaluate::Assignment &,
const Scope &);
28bool CheckPointerAssignment(SemanticsContext &,
const SomeExpr &lhs,
29 const SomeExpr &rhs,
const Scope &,
bool isBoundsRemapping,
31bool CheckPointerAssignment(SemanticsContext &, parser::CharBlock source,
32 const std::string &description,
33 const evaluate::characteristics::DummyDataObject &,
const SomeExpr &rhs,
34 const Scope &,
bool isAssumedRank);
36bool CheckStructConstructorPointerComponent(
37 SemanticsContext &,
const Symbol &lhs,
const SomeExpr &rhs,
const Scope &);
41bool CheckInitialDataPointerTarget(SemanticsContext &,
const SomeExpr &pointer,
42 const SomeExpr &init,
const Scope &);