clang 19.0.0git
Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::CodeGen::EHCatchScope Class Reference

A scope which attempts to handle some, possibly all, types of exceptions. More...

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

Inheritance diagram for clang::CodeGen::EHCatchScope:
Inheritance graph
[legend]

Classes

struct  Handler
 

Public Types

typedef const Handleriterator
 
- Public Types inherited from clang::CodeGen::EHScope
enum  Kind { Cleanup , Catch , Terminate , Filter }
 

Public Member Functions

 EHCatchScope (unsigned numHandlers, EHScopeStack::stable_iterator enclosingEHScope)
 
unsigned getNumHandlers () const
 
void setCatchAllHandler (unsigned I, llvm::BasicBlock *Block)
 
void setHandler (unsigned I, llvm::Constant *Type, llvm::BasicBlock *Block)
 
void setHandler (unsigned I, CatchTypeInfo Type, llvm::BasicBlock *Block)
 
const HandlergetHandler (unsigned I) const
 
void clearHandlerBlocks ()
 
iterator begin () const
 
iterator end () const
 
- Public Member Functions inherited from clang::CodeGen::EHScope
 EHScope (Kind kind, EHScopeStack::stable_iterator enclosingEHScope)
 
Kind getKind () const
 
llvm::BasicBlock * getCachedLandingPad () const
 
void setCachedLandingPad (llvm::BasicBlock *block)
 
llvm::BasicBlock * getCachedEHDispatchBlock () const
 
void setCachedEHDispatchBlock (llvm::BasicBlock *block)
 
bool hasEHBranches () const
 
EHScopeStack::stable_iterator getEnclosingEHScope () const
 

Static Public Member Functions

static size_t getSizeForNumHandlers (unsigned N)
 
static bool classof (const EHScope *Scope)
 

Friends

class EHScopeStack
 

Additional Inherited Members

- Protected Attributes inherited from clang::CodeGen::EHScope
union {
   CommonBitFields   CommonBits
 
   CatchBitFields   CatchBits
 
   CleanupBitFields   CleanupBits
 
   FilterBitFields   FilterBits
 
}; 
 

Detailed Description

A scope which attempts to handle some, possibly all, types of exceptions.

Objective C @finally blocks are represented using a cleanup scope after the catch scope.

Definition at line 155 of file CGCleanup.h.

Member Typedef Documentation

◆ iterator

Definition at line 230 of file CGCleanup.h.

Constructor & Destructor Documentation

◆ EHCatchScope()

clang::CodeGen::EHCatchScope::EHCatchScope ( unsigned  numHandlers,
EHScopeStack::stable_iterator  enclosingEHScope 
)
inline

Definition at line 189 of file CGCleanup.h.

References clang::CodeGen::EHScope::CatchBits.

Member Function Documentation

◆ begin()

iterator clang::CodeGen::EHCatchScope::begin ( ) const
inline

Definition at line 231 of file CGCleanup.h.

◆ classof()

static bool clang::CodeGen::EHCatchScope::classof ( const EHScope Scope)
inlinestatic

Definition at line 234 of file CGCleanup.h.

References clang::CodeGen::EHScope::Catch.

◆ clearHandlerBlocks()

void clang::CodeGen::EHCatchScope::clearHandlerBlocks ( )
inline

◆ end()

iterator clang::CodeGen::EHCatchScope::end ( ) const
inline

Definition at line 232 of file CGCleanup.h.

References getNumHandlers().

◆ getHandler()

const Handler & clang::CodeGen::EHCatchScope::getHandler ( unsigned  I) const
inline

◆ getNumHandlers()

unsigned clang::CodeGen::EHCatchScope::getNumHandlers ( ) const
inline

◆ getSizeForNumHandlers()

static size_t clang::CodeGen::EHCatchScope::getSizeForNumHandlers ( unsigned  N)
inlinestatic

◆ setCatchAllHandler()

void clang::CodeGen::EHCatchScope::setCatchAllHandler ( unsigned  I,
llvm::BasicBlock *  Block 
)
inline

Definition at line 200 of file CGCleanup.h.

References clang::Block, and setHandler().

Referenced by clang::CodeGen::CodeGenFunction::FinallyInfo::enter().

◆ setHandler() [1/2]

void clang::CodeGen::EHCatchScope::setHandler ( unsigned  I,
CatchTypeInfo  Type,
llvm::BasicBlock *  Block 
)
inline

◆ setHandler() [2/2]

void clang::CodeGen::EHCatchScope::setHandler ( unsigned  I,
llvm::Constant *  Type,
llvm::BasicBlock *  Block 
)
inline

Friends And Related Function Documentation

◆ EHScopeStack

friend class EHScopeStack
friend

Definition at line 174 of file CGCleanup.h.


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