LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
llvm::TrackingVH< ValueTy > Class Template Reference

#include <ValueHandle.h>

Inheritance diagram for llvm::TrackingVH< ValueTy >:
Inheritance graph
[legend]
Collaboration diagram for llvm::TrackingVH< ValueTy >:
Collaboration graph
[legend]

Public Member Functions

 TrackingVH ()
 
 TrackingVH (ValueTy *P)
 
 TrackingVH (const TrackingVH &RHS)
 
 operator ValueTy * () const
 
ValueTy * operator= (ValueTy *RHS)
 
ValueTy * operator= (const TrackingVH< ValueTy > &RHS)
 
ValueTy * operator-> () const
 
ValueTy & operator* () const
 
- Public Member Functions inherited from llvm::ValueHandleBase
 ValueHandleBase (HandleBaseKind Kind)
 
 ValueHandleBase (HandleBaseKind Kind, Value *V)
 
 ValueHandleBase (HandleBaseKind Kind, const ValueHandleBase &RHS)
 
 ~ValueHandleBase ()
 
Valueoperator= (Value *RHS)
 
Valueoperator= (const ValueHandleBase &RHS)
 
Valueoperator-> () const
 
Valueoperator* () const
 

Additional Inherited Members

- Static Public Member Functions inherited from llvm::ValueHandleBase
static void ValueIsDeleted (Value *V)
 
static void ValueIsRAUWd (Value *Old, Value *New)
 
- Protected Types inherited from llvm::ValueHandleBase
enum  HandleBaseKind { Assert, Callback, Tracking, Weak }
 
- Protected Member Functions inherited from llvm::ValueHandleBase
ValuegetValPtr () const
 
void setValPtrInt (unsigned K)
 
unsigned getValPtrInt () const
 
- Static Protected Member Functions inherited from llvm::ValueHandleBase
static bool isValid (Value *V)
 

Detailed Description

template<typename ValueTy>
class llvm::TrackingVH< ValueTy >

TrackingVH - This is a value handle that tracks a Value (or Value subclass), even across RAUW operations.

TrackingVH is designed for situations where a client needs to hold a handle to a Value (or subclass) across some operations which may move that value, but should never destroy it or replace it with some unacceptable type.

It is an error to do anything with a TrackingVH whose value has been destroyed, except to destruct it.

It is an error to attempt to replace a value with one of a type which is incompatible with any of its outstanding TrackingVHs.

Definition at line 279 of file ValueHandle.h.

Constructor & Destructor Documentation

template<typename ValueTy>
llvm::TrackingVH< ValueTy >::TrackingVH ( )
inline

Definition at line 314 of file ValueHandle.h.

template<typename ValueTy>
llvm::TrackingVH< ValueTy >::TrackingVH ( ValueTy *  P)
inline

Definition at line 315 of file ValueHandle.h.

template<typename ValueTy>
llvm::TrackingVH< ValueTy >::TrackingVH ( const TrackingVH< ValueTy > &  RHS)
inline

Definition at line 316 of file ValueHandle.h.

Member Function Documentation

template<typename ValueTy>
llvm::TrackingVH< ValueTy >::operator ValueTy * ( ) const
inline

Definition at line 318 of file ValueHandle.h.

template<typename ValueTy>
ValueTy& llvm::TrackingVH< ValueTy >::operator* ( ) const
inline

Definition at line 332 of file ValueHandle.h.

template<typename ValueTy>
ValueTy* llvm::TrackingVH< ValueTy >::operator-> ( ) const
inline

Definition at line 331 of file ValueHandle.h.

template<typename ValueTy>
ValueTy* llvm::TrackingVH< ValueTy >::operator= ( ValueTy *  RHS)
inline

Definition at line 322 of file ValueHandle.h.

template<typename ValueTy>
ValueTy* llvm::TrackingVH< ValueTy >::operator= ( const TrackingVH< ValueTy > &  RHS)
inline

Definition at line 326 of file ValueHandle.h.


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