clang 22.0.0git
clang::interp::InitMapPtr Struct Referencefinal

A pointer-sized struct we use to allocate into data storage. More...

#include "/work/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/AST/ByteCode/InitMap.h"

Public Member Functions

 InitMapPtr ()=default
bool hasInitMap () const
bool allInitialized () const
 Are all elements in the array already initialized?
void setInitMap (const InitMap *IM)
void noteAllInitialized ()
InitMapoperator-> ()
 Access the underlying InitMap directly.
void deleteInitMap ()
 Delete the InitMap if one exists.

Public Attributes

uintptr_t V = 0

Static Public Attributes

static constexpr intptr_t NoInitMapValue = 0
 V's value before an initmap has been created.
static constexpr intptr_t AllInitializedValue = 1
 V's value after the initmap has been destroyed because all its elements have already been initialized.

Detailed Description

A pointer-sized struct we use to allocate into data storage.

An InitMapPtr is either backed by an actual InitMap, or it hold information about the absence of the InitMap.

Definition at line 56 of file InitMap.h.

Constructor & Destructor Documentation

◆ InitMapPtr()

clang::interp::InitMapPtr::InitMapPtr ( )
explicitdefault

Member Function Documentation

◆ allInitialized()

bool clang::interp::InitMapPtr::allInitialized ( ) const
inline

Are all elements in the array already initialized?

Definition at line 69 of file InitMap.h.

References AllInitializedValue, and V.

Referenced by clang::interp::Pointer::allElementsInitialized(), clang::interp::Pointer::initializeElement(), and clang::interp::Pointer::isElementInitialized().

◆ deleteInitMap()

void clang::interp::InitMapPtr::deleteInitMap ( )
inline

Delete the InitMap if one exists.

Definition at line 90 of file InitMap.h.

References hasInitMap(), NoInitMapValue, and V.

Referenced by dtorArrayTy().

◆ hasInitMap()

bool clang::interp::InitMapPtr::hasInitMap ( ) const
inline

◆ noteAllInitialized()

void clang::interp::InitMapPtr::noteAllInitialized ( )
inline

Definition at line 77 of file InitMap.h.

References AllInitializedValue, hasInitMap(), and V.

Referenced by clang::interp::Pointer::initializeElement().

◆ operator->()

InitMap * clang::interp::InitMapPtr::operator-> ( )
inline

Access the underlying InitMap directly.

Definition at line 84 of file InitMap.h.

References hasInitMap(), and V.

◆ setInitMap()

void clang::interp::InitMapPtr::setInitMap ( const InitMap * IM)
inline

Definition at line 71 of file InitMap.h.

References hasInitMap(), and V.

Referenced by clang::interp::Pointer::initializeElement().

Member Data Documentation

◆ AllInitializedValue

intptr_t clang::interp::InitMapPtr::AllInitializedValue = 1
staticconstexpr

V's value after the initmap has been destroyed because all its elements have already been initialized.

Definition at line 61 of file InitMap.h.

Referenced by allInitialized(), hasInitMap(), and noteAllInitialized().

◆ NoInitMapValue

intptr_t clang::interp::InitMapPtr::NoInitMapValue = 0
staticconstexpr

V's value before an initmap has been created.

Definition at line 58 of file InitMap.h.

Referenced by deleteInitMap(), and hasInitMap().

◆ V

uintptr_t clang::interp::InitMapPtr::V = 0

The documentation for this struct was generated from the following file: