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


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)


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 158 of file CGCleanup.h.

Member Typedef Documentation

◆ iterator

Definition at line 233 of file CGCleanup.h.

Constructor & Destructor Documentation

◆ EHCatchScope()

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

Definition at line 192 of file CGCleanup.h.

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

Member Function Documentation

◆ begin()

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

Definition at line 234 of file CGCleanup.h.

◆ classof()

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

Definition at line 237 of file CGCleanup.h.

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

◆ clearHandlerBlocks()

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

◆ end()

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

Definition at line 235 of file CGCleanup.h.

References getNumHandlers().

◆ getHandler()

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

◆ getNumHandlers()

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

◆ getSizeForNumHandlers()

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

◆ setCatchAllHandler()

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

Definition at line 203 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 

◆ setHandler() [2/2]

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

Friends And Related Function Documentation

◆ EHScopeStack

friend class EHScopeStack

Definition at line 177 of file CGCleanup.h.

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