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:
- include/clang/AST/ExternalASTSource.h