clang  6.0.0svn
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 "/opt/doxygen-docs/src/llvm/tools/clang/lib/CodeGen/CGCleanup.h"

Inheritance diagram for clang::CodeGen::EHCatchScope:
Inheritance graph
Collaboration diagram for clang::CodeGen::EHCatchScope:
Collaboration 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 148 of file CGCleanup.h.

Member Typedef Documentation

◆ iterator

Definition at line 223 of file CGCleanup.h.

Constructor & Destructor Documentation

◆ EHCatchScope()

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

Definition at line 182 of file CGCleanup.h.

Member Function Documentation

◆ begin()

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

Definition at line 224 of file CGCleanup.h.

◆ classof()

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

Definition at line 227 of file CGCleanup.h.

References clang::CodeGen::EHScope::getKind().

◆ clearHandlerBlocks()

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

Definition at line 218 of file CGCleanup.h.

◆ end()

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

Definition at line 225 of file CGCleanup.h.

◆ 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)

Definition at line 178 of file CGCleanup.h.

Referenced by clang::CodeGen::EHScopeStack::pushCatch().

◆ setCatchAllHandler()

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

Definition at line 193 of file CGCleanup.h.

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

◆ setHandler() [1/2]

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

Definition at line 197 of file CGCleanup.h.

◆ setHandler() [2/2]

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

Definition at line 203 of file CGCleanup.h.

Friends And Related Function Documentation

◆ EHScopeStack

friend class EHScopeStack

Definition at line 167 of file CGCleanup.h.

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