clang 22.0.0git
clang::CodeGen::BlockByrefHelpers Class Referenceabstract

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

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CodeGenModule.h"

Inheritance diagram for clang::CodeGen::BlockByrefHelpers:
[legend]

Public Member Functions

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

Public Attributes

llvm::Constant * CopyHelper
llvm::Constant * DisposeHelper
CharUnits Alignment
 The alignment of the field.

Detailed Description

A pair of helper functions for a __block variable.

Definition at line 294 of file CodeGenModule.h.

Constructor & Destructor Documentation

◆ BlockByrefHelpers() [1/2]

clang::CodeGen::BlockByrefHelpers::BlockByrefHelpers ( CharUnits alignment)
inline

Definition at line 306 of file CodeGenModule.h.

References Alignment, CopyHelper, DisposeHelper, and clang::nullptr.

Referenced by BlockByrefHelpers().

◆ BlockByrefHelpers() [2/2]

clang::CodeGen::BlockByrefHelpers::BlockByrefHelpers ( const BlockByrefHelpers & )
default

References BlockByrefHelpers().

◆ ~BlockByrefHelpers()

BlockByrefHelpers::~BlockByrefHelpers ( )
virtual

Definition at line 48 of file CGBlocks.cpp.

Member Function Documentation

◆ emitCopy()

virtual void clang::CodeGen::BlockByrefHelpers::emitCopy ( CodeGenFunction & CGF,
Address dest,
Address src )
pure virtual

Referenced by generateByrefCopyHelper().

◆ emitDispose()

virtual void clang::CodeGen::BlockByrefHelpers::emitDispose ( CodeGenFunction & CGF,
Address field )
pure virtual

◆ needsCopy()

virtual bool clang::CodeGen::BlockByrefHelpers::needsCopy ( ) const
inlinevirtual

Definition at line 317 of file CodeGenModule.h.

Referenced by generateByrefCopyHelper().

◆ needsDispose()

virtual bool clang::CodeGen::BlockByrefHelpers::needsDispose ( ) const
inlinevirtual

Definition at line 320 of file CodeGenModule.h.

Referenced by generateByrefDisposeHelper().

◆ Profile()

void clang::CodeGen::BlockByrefHelpers::Profile ( llvm::FoldingSetNodeID & id) const
inline

Definition at line 311 of file CodeGenModule.h.

References Alignment, and profileImpl().

◆ profileImpl()

virtual void clang::CodeGen::BlockByrefHelpers::profileImpl ( llvm::FoldingSetNodeID & id) const
pure virtual

Referenced by Profile().

Member Data Documentation

◆ Alignment

CharUnits clang::CodeGen::BlockByrefHelpers::Alignment

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 304 of file CodeGenModule.h.

Referenced by BlockByrefHelpers(), and Profile().

◆ CopyHelper

llvm::Constant* clang::CodeGen::BlockByrefHelpers::CopyHelper

◆ DisposeHelper

llvm::Constant* clang::CodeGen::BlockByrefHelpers::DisposeHelper

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