Lines Matching full:pointer

1 //===--- Pointer.cpp - Types for the constexpr VM ---------------*- C++ -*-===//
9 #include "Pointer.h"
25 Pointer::Pointer(Block *Pointee) in Pointer() function in Pointer
26 : Pointer(Pointee, Pointee->getDescriptor()->getMetadataSize(), in Pointer()
29 Pointer::Pointer(Block *Pointee, uint64_t BaseAndOffset) in Pointer() function in Pointer
30 : Pointer(Pointee, BaseAndOffset, BaseAndOffset) {} in Pointer()
32 Pointer::Pointer(const Pointer &P) in Pointer() function in Pointer
40 Pointer::Pointer(Block *Pointee, unsigned Base, uint64_t Offset) in Pointer() function in Pointer
50 Pointer::Pointer(Pointer &&P) in Pointer() function in Pointer
58 Pointer::~Pointer() { in ~Pointer()
69 void Pointer::operator=(const Pointer &P) { in operator =()
71 // this pointer from the block. in operator =()
106 void Pointer::operator=(Pointer &&P) { in operator =()
108 // this pointer from the block. in operator =()
143 APValue Pointer::toAPValue(const ASTContext &ASTCtx) const { in toAPValue()
215 Pointer Ptr = *this; in toAPValue()
290 // We assemble the LValuePath starting from the innermost pointer to the in toAPValue()
302 void Pointer::print(llvm::raw_ostream &OS) const { in print()
341 size_t Pointer::computeOffsetForComparison() const { in computeOffsetForComparison()
351 Pointer P = *this; in computeOffsetForComparison()
398 std::string Pointer::toDiagnosticString(const ASTContext &Ctx) const { in toDiagnosticString()
411 bool Pointer::isInitialized() const { in isInitialized()
422 "Cannot check if null pointer was initialized"); in isInitialized()
447 void Pointer::initialize() const { in initialize()
451 assert(PointeeStorage.BS.Pointee && "Cannot initialize null pointer"); in initialize()
495 void Pointer::activate() const { in activate()
505 auto activate = [](Pointer &P) -> void { in activate()
509 std::function<void(Pointer &)> deactivate; in activate()
510 deactivate = [&deactivate](Pointer &P) -> void { in activate()
515 Pointer FieldPtr = P.atField(F.Offset); in activate()
523 Pointer B = *this; in activate()
527 // When walking up the pointer chain, deactivate in activate()
529 Pointer Cur = B; in activate()
533 Pointer FieldPtr = B.atField(F.Offset); in activate()
541 void Pointer::deactivate() const { in deactivate()
545 bool Pointer::hasSameBase(const Pointer &A, const Pointer &B) { in hasSameBase()
566 bool Pointer::pointToSameBlock(const Pointer &A, const Pointer &B) { in pointToSameBlock()
572 bool Pointer::hasSameArray(const Pointer &A, const Pointer &B) { in hasSameArray()
578 bool Pointer::pointsToLiteral() const { in pointsToLiteral()
589 bool Pointer::pointsToStringLiteral() const { in pointsToStringLiteral()
600 std::optional<std::pair<Pointer, Pointer>>
601 Pointer::computeSplitPoint(const Pointer &A, const Pointer &B) { in computeSplitPoint()
613 auto getBase = [](const Pointer &P) -> Pointer { in computeSplitPoint()
619 Pointer IterA = A; in computeSplitPoint()
620 Pointer IterB = B; in computeSplitPoint()
621 Pointer CurA = IterA; in computeSplitPoint()
622 Pointer CurB = IterB; in computeSplitPoint()
642 std::optional<APValue> Pointer::toRValue(const Context &Ctx, in toRValue()
647 std::function<bool(QualType, const Pointer &, APValue &)> Composite; in toRValue()
648 Composite = [&Composite, &Ctx, &ASTCtx](QualType Ty, const Pointer &Ptr, in toRValue()
673 const Pointer &FP = Ptr.atField(F.Offset); in toRValue()
696 const Pointer &FP = Ptr.atField(FD->Offset); in toRValue()
709 const Pointer &BP = Ptr.atField(BD->Offset); in toRValue()
716 const Pointer &VP = Ptr.atField(VD->Offset); in toRValue()
736 const Pointer &EP = Ptr.atIndex(I); in toRValue()