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
[legend]
Collaboration diagram for clang::CodeGen::EHCatchScope:
Collaboration graph
[legend]

Classes

struct  Handler
 

Public Types

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

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

Definition at line 182 of file CGCleanup.h.

Member Function Documentation

◆ begin()

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

Definition at line 224 of file CGCleanup.h.

◆ classof()

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

Definition at line 227 of file CGCleanup.h.

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

◆ clearHandlerBlocks()

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

Definition at line 218 of file CGCleanup.h.

◆ end()

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

Definition at line 225 of file CGCleanup.h.

◆ 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

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

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

Definition at line 197 of file CGCleanup.h.

◆ setHandler() [2/2]

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

Definition at line 203 of file CGCleanup.h.

Friends And Related Function Documentation

◆ EHScopeStack

friend class EHScopeStack
friend

Definition at line 167 of file CGCleanup.h.


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