clang API Documentation
A lazy pointer to an AST node (of base type T) that resides within an external AST source. More...
#include <ExternalASTSource.h>
Public Member Functions | |
LazyOffsetPtr () | |
LazyOffsetPtr (T *Ptr) | |
LazyOffsetPtr (uint64_t Offset) | |
LazyOffsetPtr & | operator= (T *Ptr) |
LazyOffsetPtr & | operator= (uint64_t Offset) |
LLVM_EXPLICIT | 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. | |
Public Attributes | |
uint64_t | Ptr |
Either a pointer to an AST node or the offset within the external AST source where the AST node can be found. |
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 311 of file ExternalASTSource.h.
clang::LazyOffsetPtr< T, OffsT, Get >::LazyOffsetPtr | ( | ) | [inline] |
Definition at line 320 of file ExternalASTSource.h.
clang::LazyOffsetPtr< T, OffsT, Get >::LazyOffsetPtr | ( | T * | Ptr | ) | [inline, explicit] |
Definition at line 322 of file ExternalASTSource.h.
clang::LazyOffsetPtr< T, OffsT, Get >::LazyOffsetPtr | ( | uint64_t | Offset | ) | [inline, explicit] |
Definition at line 323 of file ExternalASTSource.h.
T* clang::LazyOffsetPtr< T, OffsT, Get >::get | ( | ExternalASTSource * | Source | ) | const [inline] |
Retrieve the pointer to the AST node that this lazy pointer.
Source | the external AST source. |
Definition at line 362 of file ExternalASTSource.h.
Referenced by clang::ObjCMethodDecl::getBody(), clang::FunctionDecl::getBody(), clang::Sema::getStdBadAlloc(), clang::Sema::getStdNamespace(), and clang::ASTContext::setNonKeyFunction().
bool clang::LazyOffsetPtr< T, OffsT, Get >::isOffset | ( | ) | const [inline] |
Whether this pointer is currently stored as an offset.
Definition at line 355 of file ExternalASTSource.h.
Referenced by clang::LazyOffsetPtr< Stmt, uint64_t,&ExternalASTSource::GetExternalDeclStmt >::get().
bool clang::LazyOffsetPtr< T, OffsT, Get >::isValid | ( | ) | const [inline] |
Whether this pointer is non-NULL.
This operation does not require the AST node to be deserialized.
Definition at line 352 of file ExternalASTSource.h.
Referenced by clang::FunctionDecl::doesDeclarationForceExternallyVisibleDefinition(), and clang::ObjCMethodDecl::hasBody().
LLVM_EXPLICIT clang::LazyOffsetPtr< T, OffsT, Get >::operator bool | ( | ) | const [inline] |
Whether this pointer is non-NULL.
This operation does not require the AST node to be deserialized.
Definition at line 347 of file ExternalASTSource.h.
LazyOffsetPtr& clang::LazyOffsetPtr< T, OffsT, Get >::operator= | ( | T * | Ptr | ) | [inline] |
Definition at line 329 of file ExternalASTSource.h.
LazyOffsetPtr& clang::LazyOffsetPtr< T, OffsT, Get >::operator= | ( | uint64_t | Offset | ) | [inline] |
Definition at line 334 of file ExternalASTSource.h.
uint64_t clang::LazyOffsetPtr< T, OffsT, Get >::Ptr [mutable] |
Either a pointer to an AST node or the offset within the external AST source where the AST node can be found.
If the low bit is clear, a pointer to the AST node. If the low bit is set, the upper 63 bits are the offset.
Definition at line 317 of file ExternalASTSource.h.
Referenced by clang::LazyOffsetPtr< Stmt, uint64_t,&ExternalASTSource::GetExternalDeclStmt >::get(), clang::LazyOffsetPtr< Stmt, uint64_t,&ExternalASTSource::GetExternalDeclStmt >::isOffset(), clang::LazyOffsetPtr< Stmt, uint64_t,&ExternalASTSource::GetExternalDeclStmt >::isValid(), clang::LazyOffsetPtr< Stmt, uint64_t,&ExternalASTSource::GetExternalDeclStmt >::LazyOffsetPtr(), clang::LazyOffsetPtr< Stmt, uint64_t,&ExternalASTSource::GetExternalDeclStmt >::operator bool(), and clang::LazyOffsetPtr< Stmt, uint64_t,&ExternalASTSource::GetExternalDeclStmt >::operator=().