LLVM  4.0.0
Public Member Functions | List of all members
llvm::TrackingVH< ValueTy > Class Template Reference

Value handle that tracks a Value across RAUW. More...

#include <ValueHandle.h>

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

Public Member Functions

 TrackingVH ()
 
 TrackingVH (ValueTy *P)
 
 operator ValueTy * () const
 
ValueTy * operator= (ValueTy *RHS)
 
ValueTy * operator-> () const
 
ValueTy & operator* () const
 
- Public Member Functions inherited from llvm::ValueHandleBase
 ValueHandleBase (HandleBaseKind Kind)
 
 ValueHandleBase (HandleBaseKind Kind, Value *V)
 
 ~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 }
 This indicates what sub class the handle actually is. More...
 
- Protected Member Functions inherited from llvm::ValueHandleBase
 ValueHandleBase (const ValueHandleBase &RHS)
 
 ValueHandleBase (HandleBaseKind Kind, const ValueHandleBase &RHS)
 
ValuegetValPtr () const
 
- Static Protected Member Functions inherited from llvm::ValueHandleBase
static bool isValid (Value *V)
 

Detailed Description

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

Value handle that tracks a Value across RAUW.

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 275 of file ValueHandle.h.

Constructor & Destructor Documentation

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

Definition at line 310 of file ValueHandle.h.

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

Definition at line 311 of file ValueHandle.h.

Member Function Documentation

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

Definition at line 313 of file ValueHandle.h.

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

Definition at line 323 of file ValueHandle.h.

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

Definition at line 322 of file ValueHandle.h.

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

Definition at line 317 of file ValueHandle.h.


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