clang API Documentation

Public Member Functions | Public Attributes
clang::LazyOffsetPtr< T, OffsT, Get > Struct Template Reference

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

#include <ExternalASTSource.h>

Inheritance diagram for clang::LazyOffsetPtr< T, OffsT, Get >:
Inheritance graph
[legend]
Collaboration diagram for clang::LazyOffsetPtr< T, OffsT, Get >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 LazyOffsetPtr ()
 LazyOffsetPtr (T *Ptr)
 LazyOffsetPtr (uint64_t Offset)
LazyOffsetPtroperator= (T *Ptr)
LazyOffsetPtroperator= (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.

Detailed Description

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 311 of file ExternalASTSource.h.


Constructor & Destructor Documentation

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

Definition at line 320 of file ExternalASTSource.h.

template<typename T, typename OffsT, T *(ExternalASTSource::*)(OffsT Offset) Get>
clang::LazyOffsetPtr< T, OffsT, Get >::LazyOffsetPtr ( T *  Ptr) [inline, explicit]

Definition at line 322 of file ExternalASTSource.h.

template<typename T, typename OffsT, T *(ExternalASTSource::*)(OffsT Offset) Get>
clang::LazyOffsetPtr< T, OffsT, Get >::LazyOffsetPtr ( uint64_t  Offset) [inline, explicit]

Definition at line 323 of file ExternalASTSource.h.


Member Function Documentation

template<typename T, typename OffsT, T *(ExternalASTSource::*)(OffsT Offset) Get>
T* clang::LazyOffsetPtr< T, OffsT, Get >::get ( ExternalASTSource Source) const [inline]

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

Parameters:
Sourcethe external AST source.
Returns:
a pointer to the AST node.

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().

template<typename T, typename OffsT, T *(ExternalASTSource::*)(OffsT Offset) Get>
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().

template<typename T, typename OffsT, T *(ExternalASTSource::*)(OffsT Offset) 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().

template<typename T, typename OffsT, T *(ExternalASTSource::*)(OffsT Offset) Get>
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.

template<typename T, typename OffsT, T *(ExternalASTSource::*)(OffsT Offset) Get>
LazyOffsetPtr& clang::LazyOffsetPtr< T, OffsT, Get >::operator= ( T *  Ptr) [inline]

Definition at line 329 of file ExternalASTSource.h.

template<typename T, typename OffsT, T *(ExternalASTSource::*)(OffsT Offset) Get>
LazyOffsetPtr& clang::LazyOffsetPtr< T, OffsT, Get >::operator= ( uint64_t  Offset) [inline]

Definition at line 334 of file ExternalASTSource.h.


Member Data Documentation

template<typename T, typename OffsT, T *(ExternalASTSource::*)(OffsT Offset) Get>
uint64_t clang::LazyOffsetPtr< T, OffsT, Get >::Ptr [mutable]

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