clang 8.0.0

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

An exceptions scope which filters exceptions thrown through it. More...

`#include "/work/www-prereleases/8.0.0/rc2/builddocs/llvm.src/tools/clang/lib/CodeGen/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::Value * | getFilter (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, PadEnd }
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 438 of file CGCleanup.h.

## Constructor & Destructor Documentation

## ◆ EHFilterScope()

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

Definition at line 451 of file CGCleanup.h.

## Member Function Documentation

## ◆ classof()

static bool clang::CodeGen::EHFilterScope::classof | ( | const EHScope * | scope | ) |
| inline static

Definition at line 473 of file CGCleanup.h.

References clang::tooling::Filter, and clang::CodeGen::EHScope::getKind().

## ◆ getFilter()

llvm::Value* clang::CodeGen::EHFilterScope::getFilter | ( | unsigned | i | ) | const
| inline

Definition at line 468 of file CGCleanup.h.

## ◆ getNumFilters()

unsigned clang::CodeGen::EHFilterScope::getNumFilters | ( |  | ) | const
| inline

Definition at line 461 of file CGCleanup.h.

Referenced by emitFilterDispatchBlock(), and clang::CodeGen::EHScopeStack::popFilter().

## ◆ getSizeForNumFilters()

static size_t clang::CodeGen::EHFilterScope::getSizeForNumFilters | ( | unsigned | numFilters | ) |
| inline static

Definition at line 457 of file CGCleanup.h.

Referenced by clang::CodeGen::EHScopeStack::popFilter(), and clang::CodeGen::EHScopeStack::pushFilter().

## ◆ setFilter()

void clang::CodeGen::EHFilterScope::setFilter | ( | unsigned | i,
|  | llvm::Value * | filterValue
| ) |  |
| inline

Definition at line 463 of file CGCleanup.h.

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

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

- lib/CodeGen/CGCleanup.h