#include "Pointer.h"
#include "Boolean.h"
#include "Context.h"
#include "Floating.h"
#include "Function.h"
#include "Integral.h"
#include "InterpBlock.h"
#include "MemberPointer.h"
#include "PrimType.h"
#include "Record.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/RecordLayout.h"
usingnamespaceclang;
usingnamespaceclang::interp;
Pointer::Pointer(Block *Pointee)
: … { … }
Pointer::Pointer(Block *Pointee, uint64_t BaseAndOffset)
: … { … }
Pointer::Pointer(const Pointer &P)
: … { … }
Pointer::Pointer(Block *Pointee, unsigned Base, uint64_t Offset)
: … { … }
Pointer::Pointer(Pointer &&P)
: … { … }
Pointer::~Pointer() { … }
void Pointer::operator=(const Pointer &P) { … }
void Pointer::operator=(Pointer &&P) { … }
APValue Pointer::toAPValue(const ASTContext &ASTCtx) const { … }
void Pointer::print(llvm::raw_ostream &OS) const { … }
std::string Pointer::toDiagnosticString(const ASTContext &Ctx) const { … }
bool Pointer::isInitialized() const { … }
void Pointer::initialize() const { … }
void Pointer::activate() const { … }
void Pointer::deactivate() const { … }
bool Pointer::hasSameBase(const Pointer &A, const Pointer &B) { … }
bool Pointer::pointToSameBlock(const Pointer &A, const Pointer &B) { … }
bool Pointer::hasSameArray(const Pointer &A, const Pointer &B) { … }
bool Pointer::pointsToLiteral() const { … }
std::optional<APValue> Pointer::toRValue(const Context &Ctx,
QualType ResultType) const { … }
IntPointer IntPointer::atOffset(const ASTContext &ASTCtx,
unsigned Offset) const { … }
IntPointer IntPointer::baseCast(const ASTContext &ASTCtx,
unsigned BaseOffset) const { … }