clang API Documentation

Public Member Functions | Public Attributes
clang::CodeGen::CodeGenModule::ByrefHelpers Class Reference

A pair of helper functions for a __block variable. More...

#include <CodeGenModule.h>

Inheritance diagram for clang::CodeGen::CodeGenModule::ByrefHelpers:
Inheritance graph
[legend]
Collaboration diagram for clang::CodeGen::CodeGenModule::ByrefHelpers:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ByrefHelpers (CharUnits alignment)
virtual ~ByrefHelpers ()
void Profile (llvm::FoldingSetNodeID &id) const
virtual void profileImpl (llvm::FoldingSetNodeID &id) const =0
virtual bool needsCopy () const
virtual void emitCopy (CodeGenFunction &CGF, llvm::Value *dest, llvm::Value *src)=0
virtual bool needsDispose () const
virtual void emitDispose (CodeGenFunction &CGF, llvm::Value *field)=0

Public Attributes

llvm::Constant * CopyHelper
llvm::Constant * DisposeHelper
CharUnits Alignment

Detailed Description

A pair of helper functions for a __block variable.

Definition at line 559 of file CodeGenModule.h.


Constructor & Destructor Documentation

clang::CodeGen::CodeGenModule::ByrefHelpers::ByrefHelpers ( CharUnits  alignment) [inline]

Definition at line 569 of file CodeGenModule.h.

CodeGenModule::ByrefHelpers::~ByrefHelpers ( ) [virtual]

Definition at line 40 of file CGBlocks.cpp.


Member Function Documentation

virtual void clang::CodeGen::CodeGenModule::ByrefHelpers::emitCopy ( CodeGenFunction CGF,
llvm::Value dest,
llvm::Value src 
) [pure virtual]

Referenced by generateByrefCopyHelper().

virtual void clang::CodeGen::CodeGenModule::ByrefHelpers::emitDispose ( CodeGenFunction CGF,
llvm::Value field 
) [pure virtual]
virtual bool clang::CodeGen::CodeGenModule::ByrefHelpers::needsCopy ( ) const [inline, virtual]

Definition at line 578 of file CodeGenModule.h.

Referenced by generateByrefCopyHelper().

virtual bool clang::CodeGen::CodeGenModule::ByrefHelpers::needsDispose ( ) const [inline, virtual]

Definition at line 582 of file CodeGenModule.h.

Referenced by generateByrefDisposeHelper().

void clang::CodeGen::CodeGenModule::ByrefHelpers::Profile ( llvm::FoldingSetNodeID &  id) const [inline]

Definition at line 572 of file CodeGenModule.h.

References Alignment, clang::CharUnits::getQuantity(), and profileImpl().

virtual void clang::CodeGen::CodeGenModule::ByrefHelpers::profileImpl ( llvm::FoldingSetNodeID &  id) const [pure virtual]

Referenced by Profile().


Member Data Documentation

The alignment of the field. This is important because different offsets to the field within the byref struct need to have different helper functions.

Definition at line 567 of file CodeGenModule.h.

Referenced by Profile().

Definition at line 561 of file CodeGenModule.h.

Definition at line 562 of file CodeGenModule.h.


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