clang  3.7.0
Public Member Functions | Static Public Member Functions | List of all members
clang::CodeGen::EHFilterScope Class Reference

#include <CGCleanup.h>

Inheritance diagram for clang::CodeGen::EHFilterScope:
[legend]
Collaboration diagram for clang::CodeGen::EHFilterScope:
[legend]

Public Member Functions

 EHFilterScope (unsigned numFilters)
 
unsigned getNumFilters () const
 
void setFilter (unsigned i, llvm::Value *filterValue)
 
llvm::ValuegetFilter (unsigned i) 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 getSizeForNumFilters (unsigned numFilters)
 
static bool classof (const EHScope *scope)
 

Additional Inherited Members

- Public Types inherited from clang::CodeGen::EHScope
enum  Kind { Cleanup, Catch, Terminate, Filter }
 
- Protected Attributes inherited from clang::CodeGen::EHScope
union {
   CommonBitFields   CommonBits
 
   CatchBitFields   CatchBits
 
   CleanupBitFields   CleanupBits
 
   FilterBitFields   FilterBits
 
}; 
 

Detailed Description

An exceptions scope which filters exceptions thrown through it. Only exceptions matching the filter types will be permitted to be thrown.

This is used to implement C++ exception specifications.

Definition at line 405 of file CGCleanup.h.

Constructor & Destructor Documentation

clang::CodeGen::EHFilterScope::EHFilterScope ( unsigned  numFilters)
inline

Definition at line 418 of file CGCleanup.h.

References clang::CodeGen::EHScope::FilterBits.

Referenced by getSizeForNumFilters().

Member Function Documentation

static bool clang::CodeGen::EHFilterScope::classof ( const EHScope scope)
inlinestatic
llvm::Value* clang::CodeGen::EHFilterScope::getFilter ( unsigned  i) const
inline

Definition at line 434 of file CGCleanup.h.

References getNumFilters().

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

unsigned clang::CodeGen::EHFilterScope::getNumFilters ( ) const
inline
static size_t clang::CodeGen::EHFilterScope::getSizeForNumFilters ( unsigned  numFilters)
inlinestatic
void clang::CodeGen::EHFilterScope::setFilter ( unsigned  i,
llvm::Value filterValue 
)
inline

Definition at line 429 of file CGCleanup.h.

References getNumFilters().

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


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