clang: clang::LazyOffsetPtr< T, OffsT, Get (original) (raw)

A lazy pointer to an AST node (of base type T) that resides within an external AST source. More...

#include "[clang/AST/ExternalASTSource.h](ExternalASTSource%5F8h%5Fsource.html)"

Public Member Functions
unsigned char GetLSB () const
template<typename U >
U & As (bool New) const
T *& GetPtr () const
uint64_t & GetU64 () const
void SetPtr (T *Ptr) const
void SetU64 (uint64_t U64) const
LazyOffsetPtr ()=default
LazyOffsetPtr (T *Ptr)
LazyOffsetPtr (uint64_t Offset)
LazyOffsetPtr & operator= (T *Ptr)
LazyOffsetPtr & operator= (uint64_t Offset)
operator bool () const
Whether this pointer is non-NULL.
bool isValid () const
Whether this pointer is non-NULL.
bool isOffset () const
Whether this pointer is currently stored as an offset.
T * get (ExternalASTSource *Source) const
Retrieve the pointer to the AST node that this lazy pointer points to.
T ** getAddressOfPointer (ExternalASTSource *Source) const
Retrieve the address of the AST node pointer.
Static Public Attributes
static constexpr size_t DataSize = std::max(sizeof(uint64_t), sizeof(T *))
Either a pointer to an AST node or the offset within the external AST source where the AST node can be found.

template<typename T, typename OffsT, T *(ExternalASTSource::*)(OffsT Offset) Get>
struct clang::LazyOffsetPtr< T, OffsT, Get >

A lazy pointer to an AST node (of base type T) that resides within an external AST source.

The AST node is identified within the external AST source by a 63-bit offset, and can be retrieved via an operation on the external AST source itself.

Definition at line 348 of file ExternalASTSource.h.

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

LazyOffsetPtr() [2/3]

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

LazyOffsetPtr() [3/3]

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

As()

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

template<typename U >

get()

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

Retrieve the pointer to the AST node that this lazy pointer points to.

Parameters

Source the external AST source.

Returns

a pointer to the AST node.

Definition at line 419 of file ExternalASTSource.h.

References clang::LazyOffsetPtr< T, OffsT, Get >::GetPtr(), clang::LazyOffsetPtr< T, OffsT, Get >::GetU64(), clang::LazyOffsetPtr< T, OffsT, Get >::isOffset(), and clang::LazyOffsetPtr< T, OffsT, Get >::SetPtr().

Referenced by clang::LazyOffsetPtr< T, OffsT, Get >::getAddressOfPointer(), clang::ObjCMethodDecl::getBody(), clang::ASTContext::getCurrentKeyFunction(), clang::FieldDecl::getInClassInitializer(), clang::OMPDeclareReductionDecl::getPrevDeclInScope(), clang::OMPDeclareMapperDecl::getPrevDeclInScope(), clang::Sema::getStdAlignValT(), clang::Sema::getStdBadAlloc(), clang::Sema::getStdNamespace(), clang::CXXConstructorDecl::init_begin(), clang::ObjCImplementationDecl::init_begin(), and clang::ASTContext::setNonKeyFunction().

getAddressOfPointer()

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

GetLSB()

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

GetPtr()

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

Definition at line 369 of file ExternalASTSource.h.

Referenced by clang::LazyOffsetPtr< T, OffsT, Get >::get(), clang::LazyOffsetPtr< T, OffsT, Get >::getAddressOfPointer(), clang::LazyOffsetPtr< T, OffsT, Get >::isValid(), and clang::LazyOffsetPtr< T, OffsT, Get >::operator bool().

GetU64()

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

isOffset()

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

Whether this pointer is currently stored as an offset.

Definition at line 412 of file ExternalASTSource.h.

References clang::LazyOffsetPtr< T, OffsT, Get >::GetLSB().

Referenced by clang::LazyOffsetPtr< T, OffsT, Get >::get(), clang::ASTContext::getCurrentKeyFunction(), clang::FieldDecl::getInClassInitializer(), clang::LazyOffsetPtr< T, OffsT, Get >::isValid(), and clang::LazyOffsetPtr< T, OffsT, Get >::operator bool().

isValid()

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

operator bool()

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

operator=() [1/2]

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

operator=() [2/2]

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

SetPtr()

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

SetU64()

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

Data

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>

DataSize

template<typename T , typename OffsT , T *(ExternalASTSource::*)(OffsT Offset) Get>


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