clang
3.7.0
|
A protected scope for zero-cost EH handling. More...
#include <CGCleanup.h>
Classes | |
class | CatchBitFields |
class | CleanupBitFields |
class | FilterBitFields |
Public Types | |
enum | Kind { Cleanup, Catch, Terminate, Filter } |
Public Member Functions | |
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 |
Protected Attributes | |
union { | |
CommonBitFields CommonBits | |
CatchBitFields CatchBits | |
CleanupBitFields CleanupBits | |
FilterBitFields FilterBits | |
}; | |
A protected scope for zero-cost EH handling.
Definition at line 32 of file CGCleanup.h.
Enumerator | |
---|---|
Cleanup | |
Catch | |
Terminate | |
Filter |
Definition at line 99 of file CGCleanup.h.
|
inline |
Definition at line 101 of file CGCleanup.h.
References CommonBits.
|
inline |
Definition at line 117 of file CGCleanup.h.
Referenced by emitCatchDispatchBlock(), emitFilterDispatchBlock(), clang::CodeGen::CodeGenFunction::getEHDispatchBlock(), hasEHBranches(), and clang::CodeGen::CodeGenFunction::PopCleanupBlock().
|
inline |
Definition at line 109 of file CGCleanup.h.
Referenced by clang::CodeGen::CodeGenFunction::getInvokeDestImpl().
|
inline |
Definition at line 131 of file CGCleanup.h.
Referenced by emitCatchDispatchBlock(), clang::CodeGen::EHScopeStack::getInnermostActiveEHScope(), clang::CodeGen::EHScopeStack::popCatch(), clang::CodeGen::EHScopeStack::popCleanup(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), clang::CodeGen::EHScopeStack::popFilter(), and clang::CodeGen::EHScopeStack::popTerminate().
|
inline |
Definition at line 107 of file CGCleanup.h.
References CommonBits.
Referenced by clang::CodeGen::EHCatchScope::classof(), clang::CodeGen::EHCleanupScope::classof(), clang::CodeGen::EHFilterScope::classof(), clang::CodeGen::EHTerminateScope::classof(), clang::CodeGen::CodeGenFunction::getEHDispatchBlock(), and isNonEHScope().
|
inline |
Definition at line 125 of file CGCleanup.h.
References getCachedEHDispatchBlock().
Referenced by clang::CodeGen::CodeGenFunction::ExitCXXTryStmt(), clang::CodeGen::CodeGenFunction::ExitSEHTryStmt(), IsUsedAsEHCleanup(), clang::CodeGen::CodeGenFunction::popCatchScope(), and clang::CodeGen::CodeGenFunction::PopCleanupBlock().
|
inline |
Definition at line 121 of file CGCleanup.h.
Referenced by clang::CodeGen::CodeGenFunction::getEHDispatchBlock().
|
inline |
Definition at line 113 of file CGCleanup.h.
union { ... } |
CatchBitFields clang::CodeGen::EHScope::CatchBits |
Definition at line 93 of file CGCleanup.h.
Referenced by clang::CodeGen::EHCatchScope::EHCatchScope(), and clang::CodeGen::EHCatchScope::getNumHandlers().
CleanupBitFields clang::CodeGen::EHScope::CleanupBits |
Definition at line 94 of file CGCleanup.h.
Referenced by clang::CodeGen::EHCleanupScope::EHCleanupScope(), clang::CodeGen::EHCleanupScope::getAllocatedSize(), clang::CodeGen::EHCleanupScope::getCleanupSize(), clang::CodeGen::EHCleanupScope::getFixupDepth(), clang::CodeGen::EHCleanupScope::isActive(), clang::CodeGen::EHCleanupScope::isEHCleanup(), clang::CodeGen::EHCleanupScope::isLifetimeMarker(), clang::CodeGen::EHCleanupScope::isNormalCleanup(), clang::CodeGen::EHCleanupScope::setActive(), clang::CodeGen::EHCleanupScope::setLifetimeMarker(), clang::CodeGen::EHCleanupScope::setTestFlagInEHCleanup(), clang::CodeGen::EHCleanupScope::setTestFlagInNormalCleanup(), clang::CodeGen::EHCleanupScope::shouldTestFlagInEHCleanup(), and clang::CodeGen::EHCleanupScope::shouldTestFlagInNormalCleanup().
CommonBitFields clang::CodeGen::EHScope::CommonBits |
Definition at line 92 of file CGCleanup.h.
FilterBitFields clang::CodeGen::EHScope::FilterBits |
Definition at line 95 of file CGCleanup.h.
Referenced by clang::CodeGen::EHFilterScope::EHFilterScope(), and clang::CodeGen::EHFilterScope::getNumFilters().