clang  19.0.0git
Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::interp::Pointer Class Reference

A pointer to a memory block, live or dead. More...

#include "/home/runner/work/llvm/llvm/repo/clang/lib/AST/Interp/Pointer.h"

Public Member Functions

 Pointer ()
 
 Pointer (Block *B)
 
 Pointer (Block *B, uint64_t BaseAndOffset)
 
 Pointer (const Pointer &P)
 
 Pointer (Pointer &&P)
 
 Pointer (uint64_t Address, const Descriptor *Desc, uint64_t Offset=0)
 
 ~Pointer ()
 
void operator= (const Pointer &P)
 
void operator= (Pointer &&P)
 
bool operator== (const Pointer &P) const
 Equality operators are just for tests. More...
 
bool operator!= (const Pointer &P) const
 
APValue toAPValue () const
 Converts the pointer to an APValue. More...
 
std::string toDiagnosticString (const ASTContext &Ctx) const
 Converts the pointer to a string usable in diagnostics. More...
 
uint64_t getIntegerRepresentation () const
 
std::optional< APValuetoRValue (const Context &Ctx) const
 Converts the pointer to an APValue that is an rvalue. More...
 
Pointer atIndex (uint64_t Idx) const
 Offsets a pointer inside an array. More...
 
Pointer atField (unsigned Off) const
 Creates a pointer to a field. More...
 
Pointer atFieldSub (unsigned Off) const
 Subtract the given offset from the current Base and Offset of the pointer. More...
 
Pointer narrow () const
 Restricts the scope of an array element pointer. More...
 
Pointer expand () const
 Expands a pointer to the containing array, undoing narrowing. More...
 
bool isZero () const
 Checks if the pointer is null. More...
 
bool isLive () const
 Checks if the pointer is live. More...
 
bool isField () const
 Checks if the item is a field in an object. More...
 
const DescriptorgetDeclDesc () const
 Accessor for information about the declaration site. More...
 
SourceLocation getDeclLoc () const
 
DeclTy getSource () const
 Returns the expression or declaration the pointer has been created for. More...
 
Pointer getBase () const
 Returns a pointer to the object of which this pointer is a field. More...
 
Pointer getArray () const
 Returns the parent array. More...
 
const DescriptorgetFieldDesc () const
 Accessors for information about the innermost field. More...
 
QualType getType () const
 Returns the type of the innermost field. More...
 
Pointer getDeclPtr () const
 
size_t elemSize () const
 Returns the element size of the innermost field. More...
 
size_t getSize () const
 Returns the total size of the innermost field. More...
 
unsigned getOffset () const
 Returns the offset into an array. More...
 
bool isArrayRoot () const
 Whether this array refers to an array, but not to the first element. More...
 
bool inArray () const
 Checks if the innermost field is an array. More...
 
bool inPrimitiveArray () const
 Checks if the structure is a primitive array. More...
 
bool isUnknownSizeArray () const
 Checks if the structure is an array of unknown size. More...
 
bool isArrayElement () const
 Checks if the pointer points to an array. More...
 
bool isRoot () const
 Pointer points directly to a block. More...
 
bool canBeInitialized () const
 If this pointer has an InlineDescriptor we can use to initialize. More...
 
const BlockPointerasBlockPointer () const
 
const IntPointerasIntPointer () const
 
bool isBlockPointer () const
 
bool isIntegralPointer () const
 
const RecordgetRecord () const
 Returns the record descriptor of a class. More...
 
const RecordgetElemRecord () const
 Returns the element record type, if this is a non-primive array. More...
 
const FieldDeclgetField () const
 Returns the field information. More...
 
bool isUnion () const
 Checks if the object is a union. More...
 
bool isExtern () const
 Checks if the storage is extern. More...
 
bool isStatic () const
 Checks if the storage is static. More...
 
bool isTemporary () const
 Checks if the storage is temporary. More...
 
bool isStaticTemporary () const
 Checks if the storage is a static temporary. More...
 
bool isMutable () const
 Checks if the field is mutable. More...
 
bool isWeak () const
 
bool isInitialized () const
 Checks if an object was initialized. More...
 
bool isActive () const
 Checks if the object is active. More...
 
bool isBaseClass () const
 Checks if a structure is a base class. More...
 
bool isDummy () const
 Checks if the pointer points to a dummy value. More...
 
bool isConst () const
 Checks if an object or a subfield is mutable. More...
 
std::optional< unsignedgetDeclID () const
 Returns the declaration ID. More...
 
unsigned getByteOffset () const
 Returns the byte offset from the start. More...
 
unsigned getNumElems () const
 Returns the number of elements. More...
 
const Blockblock () const
 
int64_t getIndex () const
 Returns the index into an array. More...
 
bool isOnePastEnd () const
 Checks if the index is one past end. More...
 
bool isElementPastEnd () const
 Checks if the pointer is an out-of-bounds element pointer. More...
 
bool isZeroSizeArray () const
 Checks if the pointer is pointing to a zero-size array. More...
 
template<typename T >
Tderef () const
 Dereferences the pointer, if it's live. More...
 
template<typename T >
Telem (unsigned I) const
 Dereferences a primitive element. More...
 
void initialize () const
 Initializes a field. More...
 
void activate () const
 Activats a field. More...
 
void deactivate () const
 Deactivates an entire strurcutre. More...
 
ComparisonCategoryResult compare (const Pointer &Other) const
 Compare two pointers. More...
 
void print (llvm::raw_ostream &OS) const
 Prints the pointer. More...
 

Static Public Member Functions

static bool hasSameBase (const Pointer &A, const Pointer &B)
 Checks if two pointers are comparable. More...
 
static bool hasSameArray (const Pointer &A, const Pointer &B)
 Checks if two pointers can be subtracted. More...
 

Friends

class Block
 
class DeadBlock
 
struct InitMap
 

Detailed Description

A pointer to a memory block, live or dead.

This object can be allocated into interpreter stack frames. If pointing to a live block, it is a link in the chain of pointers pointing to the block.

In the simplest form, a Pointer has a Block* (the pointee) and both Base and Offset are 0, which means it will point to raw data.

The Base field is used to access metadata about the data. For primitive arrays, the Base is followed by an InitMap. In a variety of cases, the Base is preceded by an InlineDescriptor, which is used to track the initialization state, among other things.

The Offset field is used to access the actual data. In other words, the data the pointer decribes can be found at Pointee->rawData() + Pointer.Offset.

Pointee Offset │ │ │ │ ▼ ▼ ┌───────┬────────────┬─────────┬────────────────────────────┐ │ Block │ InlineDesc │ InitMap │ Actual Data │ └───────┴────────────┴─────────┴────────────────────────────┘ ▲ │ │ Base

Definition at line 80 of file Pointer.h.

Constructor & Destructor Documentation

◆ Pointer() [1/6]

clang::interp::Pointer::Pointer ( )
inline

Definition at line 86 of file Pointer.h.

References clang::interp::Int.

Referenced by atField(), atFieldSub(), atIndex(), expand(), getArray(), getBase(), getDeclPtr(), and narrow().

◆ Pointer() [2/6]

Pointer::Pointer ( Block B)

Definition at line 22 of file Pointer.cpp.

◆ Pointer() [3/6]

Pointer::Pointer ( Block B,
uint64_t  BaseAndOffset 
)

Definition at line 26 of file Pointer.cpp.

◆ Pointer() [4/6]

Pointer::Pointer ( const Pointer P)

Definition at line 29 of file Pointer.cpp.

References isBlockPointer().

◆ Pointer() [5/6]

Pointer::Pointer ( Pointer &&  P)

Definition at line 47 of file Pointer.cpp.

References clang::interp::Block, and P.

◆ Pointer() [6/6]

clang::interp::Pointer::Pointer ( uint64_t  Address,
const Descriptor Desc,
uint64_t  Offset = 0 
)
inline

Definition at line 95 of file Pointer.h.

◆ ~Pointer()

Pointer::~Pointer ( )

Definition at line 55 of file Pointer.cpp.

References isIntegralPointer().

Member Function Documentation

◆ activate()

void Pointer::activate ( ) const

Activats a field.

Definition at line 288 of file Pointer.cpp.

References clang::interp::InlineDescriptor::IsActive.

◆ asBlockPointer()

const BlockPointer& clang::interp::Pointer::asBlockPointer ( ) const
inline

◆ asIntPointer()

const IntPointer& clang::interp::Pointer::asIntPointer ( ) const
inline

◆ atField()

Pointer clang::interp::Pointer::atField ( unsigned  Off) const
inline

Creates a pointer to a field.

Definition at line 154 of file Pointer.h.

References asBlockPointer(), asIntPointer(), isIntegralPointer(), and Pointer().

Referenced by toRValue().

◆ atFieldSub()

Pointer clang::interp::Pointer::atFieldSub ( unsigned  Off) const
inline

Subtract the given offset from the current Base and Offset of the pointer.

Definition at line 163 of file Pointer.h.

References asBlockPointer(), and Pointer().

◆ atIndex()

Pointer clang::interp::Pointer::atIndex ( uint64_t  Idx) const
inline

Offsets a pointer inside an array.

Definition at line 137 of file Pointer.h.

References asBlockPointer(), asIntPointer(), elemSize(), getDeclDesc(), getFieldDesc(), getSize(), isIntegralPointer(), and Pointer().

Referenced by toRValue().

◆ block()

const Block* clang::interp::Pointer::block ( ) const
inline

Definition at line 530 of file Pointer.h.

References asBlockPointer(), and clang::interp::BlockPointer::Pointee.

◆ canBeInitialized()

bool clang::interp::Pointer::canBeInitialized ( ) const
inline

If this pointer has an InlineDescriptor we can use to initialize.

Definition at line 406 of file Pointer.h.

References asBlockPointer(), clang::interp::BlockPointer::Base, isBlockPointer(), and clang::interp::BlockPointer::Pointee.

◆ compare()

ComparisonCategoryResult clang::interp::Pointer::compare ( const Pointer Other) const
inline

Compare two pointers.

Definition at line 600 of file Pointer.h.

References clang::Equal, clang::Greater, hasSameBase(), clang::Less, clang::Other, and clang::Unordered.

◆ deactivate()

void Pointer::deactivate ( ) const

Deactivates an entire strurcutre.

Definition at line 295 of file Pointer.cpp.

◆ deref()

template<typename T >
T& clang::interp::Pointer::deref ( ) const
inline

◆ elem()

template<typename T >
T& clang::interp::Pointer::elem ( unsigned  I) const
inline

Dereferences a primitive element.

Definition at line 584 of file Pointer.h.

References asBlockPointer(), clang::interp::Block::data(), getNumElems(), isBlockPointer(), clang::interp::BlockPointer::Pointee, and clang::T.

◆ elemSize()

size_t clang::interp::Pointer::elemSize ( ) const
inline

◆ expand()

Pointer clang::interp::Pointer::expand ( ) const
inline

◆ getArray()

Pointer clang::interp::Pointer::getArray ( ) const
inline

Returns the parent array.

Definition at line 294 of file Pointer.h.

References asBlockPointer(), and Pointer().

Referenced by toAPValue().

◆ getBase()

Pointer clang::interp::Pointer::getBase ( ) const
inline

Returns a pointer to the object of which this pointer is a field.

Definition at line 285 of file Pointer.h.

References asBlockPointer(), clang::interp::BlockPointer::Base, clang::interp::InlineDescriptor::Offset, and Pointer().

Referenced by toAPValue().

◆ getByteOffset()

unsigned clang::interp::Pointer::getByteOffset ( ) const
inline

Returns the byte offset from the start.

Definition at line 517 of file Pointer.h.

References asIntPointer(), isIntegralPointer(), and clang::interp::IntPointer::Value.

◆ getDeclDesc()

const Descriptor* clang::interp::Pointer::getDeclDesc ( ) const
inline

◆ getDeclID()

std::optional<unsigned> clang::interp::Pointer::getDeclID ( ) const
inline

Returns the declaration ID.

Definition at line 508 of file Pointer.h.

References asBlockPointer(), clang::interp::Block::getDeclID(), isBlockPointer(), and clang::interp::BlockPointer::Pointee.

◆ getDeclLoc()

SourceLocation clang::interp::Pointer::getDeclLoc ( ) const
inline

Definition at line 273 of file Pointer.h.

References getDeclDesc(), and clang::interp::Descriptor::getLocation().

◆ getDeclPtr()

Pointer clang::interp::Pointer::getDeclPtr ( ) const
inline

Definition at line 329 of file Pointer.h.

References asBlockPointer(), and Pointer().

◆ getElemRecord()

const Record* clang::interp::Pointer::getElemRecord ( ) const
inline

Returns the element record type, if this is a non-primive array.

Definition at line 427 of file Pointer.h.

References clang::interp::Descriptor::ElemDesc, clang::interp::Descriptor::ElemRecord, and getFieldDesc().

◆ getField()

const FieldDecl* clang::interp::Pointer::getField ( ) const
inline

Returns the field information.

Definition at line 432 of file Pointer.h.

References clang::interp::Descriptor::asFieldDecl(), and getFieldDesc().

◆ getFieldDesc()

const Descriptor* clang::interp::Pointer::getFieldDesc ( ) const
inline

◆ getIndex()

int64_t clang::interp::Pointer::getIndex ( ) const
inline

Returns the index into an array.

Definition at line 533 of file Pointer.h.

References asBlockPointer(), elemSize(), getOffset(), isBlockPointer(), and isZero().

Referenced by initialize(), isInitialized(), and toAPValue().

◆ getIntegerRepresentation()

uint64_t clang::interp::Pointer::getIntegerRepresentation ( ) const
inline

◆ getNumElems()

unsigned clang::interp::Pointer::getNumElems ( ) const
inline

Returns the number of elements.

Definition at line 524 of file Pointer.h.

References elemSize(), getSize(), and isIntegralPointer().

Referenced by elem(), and toAPValue().

◆ getOffset()

unsigned clang::interp::Pointer::getOffset ( ) const
inline

Returns the offset into an array.

Definition at line 352 of file Pointer.h.

References asBlockPointer(), clang::interp::BlockPointer::Base, and getFieldDesc().

Referenced by getIndex(), and isOnePastEnd().

◆ getRecord()

const Record* clang::interp::Pointer::getRecord ( ) const
inline

Returns the record descriptor of a class.

Definition at line 425 of file Pointer.h.

References clang::interp::Descriptor::ElemRecord, and getFieldDesc().

◆ getSize()

size_t clang::interp::Pointer::getSize ( ) const
inline

Returns the total size of the innermost field.

Definition at line 346 of file Pointer.h.

References getFieldDesc(), clang::interp::Descriptor::getSize(), and isBlockPointer().

Referenced by atIndex(), expand(), getNumElems(), and isOnePastEnd().

◆ getSource()

DeclTy clang::interp::Pointer::getSource ( ) const
inline

Returns the expression or declaration the pointer has been created for.

Definition at line 276 of file Pointer.h.

References asIntPointer(), clang::interp::IntPointer::Desc, getDeclDesc(), clang::interp::Descriptor::getSource(), isBlockPointer(), and isIntegralPointer().

Referenced by hasSameBase().

◆ getType()

QualType clang::interp::Pointer::getType ( ) const
inline

Returns the type of the innermost field.

Definition at line 315 of file Pointer.h.

References asBlockPointer(), getFieldDesc(), clang::interp::Descriptor::getType(), and inPrimitiveArray().

Referenced by toDiagnosticString(), and toRValue().

◆ hasSameArray()

bool Pointer::hasSameArray ( const Pointer A,
const Pointer B 
)
static

Checks if two pointers can be subtracted.

Definition at line 313 of file Pointer.cpp.

References clang::interp::BlockPointer::Base, BS, getFieldDesc(), hasSameBase(), and clang::interp::Descriptor::IsArray.

◆ hasSameBase()

bool Pointer::hasSameBase ( const Pointer A,
const Pointer B 
)
static

Checks if two pointers are comparable.

Definition at line 299 of file Pointer.cpp.

References asBlockPointer(), getSource(), isIntegralPointer(), isZero(), and clang::interp::BlockPointer::Pointee.

Referenced by compare(), and hasSameArray().

◆ inArray()

bool clang::interp::Pointer::inArray ( ) const
inline

Checks if the innermost field is an array.

Definition at line 374 of file Pointer.h.

References getFieldDesc(), clang::interp::Descriptor::IsArray, and isBlockPointer().

Referenced by isArrayElement(), and isArrayRoot().

◆ initialize()

void Pointer::initialize ( ) const

◆ inPrimitiveArray()

bool clang::interp::Pointer::inPrimitiveArray ( ) const
inline

Checks if the structure is a primitive array.

Definition at line 380 of file Pointer.h.

References getFieldDesc(), isBlockPointer(), and clang::interp::Descriptor::isPrimitiveArray().

Referenced by expand(), getType(), and narrow().

◆ isActive()

bool clang::interp::Pointer::isActive ( ) const
inline

Checks if the object is active.

Definition at line 482 of file Pointer.h.

References clang::interp::InlineDescriptor::IsActive, isBlockPointer(), and isRoot().

Referenced by toRValue().

◆ isArrayElement()

bool clang::interp::Pointer::isArrayElement ( ) const
inline

Checks if the pointer points to an array.

Definition at line 392 of file Pointer.h.

References asBlockPointer(), clang::interp::BlockPointer::Base, inArray(), and isBlockPointer().

Referenced by toAPValue().

◆ isArrayRoot()

bool clang::interp::Pointer::isArrayRoot ( ) const
inline

Whether this array refers to an array, but not to the first element.

Definition at line 369 of file Pointer.h.

References asBlockPointer(), clang::interp::BlockPointer::Base, and inArray().

Referenced by deref(), and toAPValue().

◆ isBaseClass()

bool clang::interp::Pointer::isBaseClass ( ) const
inline

Checks if a structure is a base class.

Definition at line 488 of file Pointer.h.

References clang::interp::InlineDescriptor::IsBase, and isField().

◆ isBlockPointer()

bool clang::interp::Pointer::isBlockPointer ( ) const
inline

◆ isConst()

bool clang::interp::Pointer::isConst ( ) const
inline

Checks if an object or a subfield is mutable.

Definition at line 501 of file Pointer.h.

References getDeclDesc(), clang::interp::InlineDescriptor::IsConst, clang::interp::Descriptor::IsConst, isIntegralPointer(), and isRoot().

◆ isDummy()

bool clang::interp::Pointer::isDummy ( ) const
inline

Checks if the pointer points to a dummy value.

Definition at line 490 of file Pointer.h.

References asBlockPointer(), getDeclDesc(), isBlockPointer(), and clang::interp::Descriptor::isDummy().

Referenced by toAPValue(), and toRValue().

◆ isElementPastEnd()

bool clang::interp::Pointer::isElementPastEnd ( ) const
inline

Checks if the pointer is an out-of-bounds element pointer.

Definition at line 563 of file Pointer.h.

Referenced by expand(), isOnePastEnd(), and print().

◆ isExtern()

bool clang::interp::Pointer::isExtern ( ) const
inline

Checks if the storage is extern.

Definition at line 438 of file Pointer.h.

References asBlockPointer(), isBlockPointer(), clang::interp::Block::isExtern(), and clang::interp::BlockPointer::Pointee.

◆ isField()

bool clang::interp::Pointer::isField ( ) const
inline

Checks if the item is a field in an object.

Definition at line 255 of file Pointer.h.

References asBlockPointer(), clang::interp::Descriptor::asDecl(), clang::interp::BlockPointer::Base, getFieldDesc(), and isIntegralPointer().

Referenced by isBaseClass(), and toAPValue().

◆ isInitialized()

bool Pointer::isInitialized ( ) const

◆ isIntegralPointer()

bool clang::interp::Pointer::isIntegralPointer ( ) const
inline

◆ isLive()

bool clang::interp::Pointer::isLive ( ) const
inline

Checks if the pointer is live.

Definition at line 249 of file Pointer.h.

References asBlockPointer(), clang::interp::Block::IsDead, isIntegralPointer(), and clang::interp::BlockPointer::Pointee.

Referenced by deref(), and toRValue().

◆ isMutable()

bool clang::interp::Pointer::isMutable ( ) const
inline

Checks if the field is mutable.

Definition at line 462 of file Pointer.h.

References asBlockPointer(), clang::interp::BlockPointer::Base, isBlockPointer(), and clang::interp::InlineDescriptor::IsFieldMutable.

◆ isOnePastEnd()

bool clang::interp::Pointer::isOnePastEnd ( ) const
inline

Checks if the index is one past end.

Definition at line 551 of file Pointer.h.

References asBlockPointer(), getOffset(), getSize(), isElementPastEnd(), isIntegralPointer(), and isZeroSizeArray().

Referenced by narrow(), and toAPValue().

◆ isRoot()

bool clang::interp::Pointer::isRoot ( ) const
inline

Pointer points directly to a block.

Definition at line 398 of file Pointer.h.

References asBlockPointer(), isIntegralPointer(), and isZero().

Referenced by expand(), getFieldDesc(), isActive(), isConst(), and print().

◆ isStatic()

bool clang::interp::Pointer::isStatic ( ) const
inline

Checks if the storage is static.

Definition at line 444 of file Pointer.h.

References asBlockPointer(), isIntegralPointer(), clang::interp::Block::isStatic(), and clang::interp::BlockPointer::Pointee.

Referenced by initialize(), isInitialized(), and isStaticTemporary().

◆ isStaticTemporary()

bool clang::interp::Pointer::isStaticTemporary ( ) const
inline

Checks if the storage is a static temporary.

Definition at line 459 of file Pointer.h.

References isStatic(), and isTemporary().

◆ isTemporary()

bool clang::interp::Pointer::isTemporary ( ) const
inline

Checks if the storage is temporary.

Definition at line 451 of file Pointer.h.

References asBlockPointer(), isBlockPointer(), clang::interp::Block::isTemporary(), and clang::interp::BlockPointer::Pointee.

Referenced by isStaticTemporary().

◆ isUnion()

bool clang::interp::Pointer::isUnion ( ) const

Checks if the object is a union.

◆ isUnknownSizeArray()

bool clang::interp::Pointer::isUnknownSizeArray ( ) const
inline

Checks if the structure is an array of unknown size.

Definition at line 386 of file Pointer.h.

References getFieldDesc(), isBlockPointer(), and clang::interp::Descriptor::isUnknownSizeArray().

Referenced by narrow(), and toAPValue().

◆ isWeak()

bool clang::interp::Pointer::isWeak ( ) const
inline

Definition at line 470 of file Pointer.h.

References getDeclDesc(), isBlockPointer(), and isIntegralPointer().

◆ isZero()

bool clang::interp::Pointer::isZero ( ) const
inline

◆ isZeroSizeArray()

bool clang::interp::Pointer::isZeroSizeArray ( ) const
inline

Checks if the pointer is pointing to a zero-size array.

Definition at line 566 of file Pointer.h.

References getFieldDesc(), and clang::interp::Descriptor::isZeroSizeArray().

Referenced by isOnePastEnd().

◆ narrow()

Pointer clang::interp::Pointer::narrow ( ) const
inline

Restricts the scope of an array element pointer.

Definition at line 170 of file Pointer.h.

References asBlockPointer(), clang::interp::BlockPointer::Base, getFieldDesc(), inPrimitiveArray(), isBlockPointer(), isOnePastEnd(), isUnknownSizeArray(), isZero(), and Pointer().

Referenced by toRValue().

◆ operator!=()

bool clang::interp::Pointer::operator!= ( const Pointer P) const
inline

Definition at line 119 of file Pointer.h.

References P.

◆ operator=() [1/2]

void Pointer::operator= ( const Pointer P)

◆ operator=() [2/2]

void Pointer::operator= ( Pointer &&  P)

◆ operator==()

bool clang::interp::Pointer::operator== ( const Pointer P) const
inline

◆ print()

void Pointer::print ( llvm::raw_ostream &  OS) const

Prints the pointer.

Definition at line 184 of file Pointer.cpp.

References isBlockPointer(), isElementPastEnd(), and isRoot().

◆ toAPValue()

APValue Pointer::toAPValue ( ) const

◆ toDiagnosticString()

std::string Pointer::toDiagnosticString ( const ASTContext Ctx) const

Converts the pointer to a string usable in diagnostics.

Definition at line 210 of file Pointer.cpp.

References asIntPointer(), clang::APValue::getAsString(), getType(), isIntegralPointer(), isZero(), and toAPValue().

◆ toRValue()

std::optional< APValue > Pointer::toRValue ( const Context Ctx) const

Friends And Related Function Documentation

◆ Block

friend class Block
friend

Definition at line 621 of file Pointer.h.

◆ DeadBlock

friend class DeadBlock
friend

Definition at line 622 of file Pointer.h.

◆ InitMap

friend struct InitMap
friend

Definition at line 623 of file Pointer.h.

Member Data Documentation

◆ BS

BlockPointer clang::interp::Pointer::BS

Definition at line 659 of file Pointer.h.

Referenced by hasSameArray(), and clang::interp::Block::replacePointer().

◆ Int

IntPointer clang::interp::Pointer::Int

Definition at line 660 of file Pointer.h.


The documentation for this class was generated from the following files: