clang 22.0.0git
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:
[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 162 of file CGCleanup.h.

Member Typedef Documentation

◆ iterator

Definition at line 237 of file CGCleanup.h.

Constructor & Destructor Documentation

◆ EHCatchScope()

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

Member Function Documentation

◆ begin()

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

Definition at line 238 of file CGCleanup.h.

Referenced by clang::CodeGen::CodeGenFunction::ExitCXXTryStmt().

◆ classof()

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

◆ clearHandlerBlocks()

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

◆ end()

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

Definition at line 239 of file CGCleanup.h.

References getNumHandlers().

◆ getHandler()

◆ getNumHandlers()

◆ getSizeForNumHandlers()

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

◆ setCatchAllHandler()

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

◆ setHandler() [1/2]

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

Definition at line 217 of file CGCleanup.h.

References clang::Block, getNumHandlers(), and clang::CodeGen::Type.

◆ setHandler() [2/2]

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

◆ EHScopeStack

friend class EHScopeStack
friend

Definition at line 181 of file CGCleanup.h.

References EHScopeStack.

Referenced by EHScopeStack.


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