clang 10.0.0git

Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
clang::CodeGen::EHScope Class Reference

A protected scope for zero-cost EH handling. More...

`#include "/work/www-prereleases/10.0.0/rc1/docsbuild/clang/lib/CodeGen/CGCleanup.h"`

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

## Classes
class | CatchBitFields
class | CleanupBitFields
class | FilterBitFields

## Public Types
enum | Kind { Cleanup, Catch, Terminate, Filter, PadEnd }

## 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
}; |

## Detailed Description

A protected scope for zero-cost EH handling.

Definition at line 43 of file CGCleanup.h.

## Member Enumeration Documentation

## ◆ Kind

enum clang::CodeGen::EHScope::Kind

Enumerator
Cleanup |
Catch |
Terminate |
Filter |
PadEnd |

Definition at line 105 of file CGCleanup.h.

## Constructor & Destructor Documentation

## ◆ EHScope()

clang::CodeGen::EHScope::EHScope | ( | Kind | kind,
|  | EHScopeStack::stable_iterator | enclosingEHScope
| ) |  |
| inline

Definition at line 107 of file CGCleanup.h.

## Member Function Documentation

## ◆ getCachedEHDispatchBlock()

llvm::BasicBlock* clang::CodeGen::EHScope::getCachedEHDispatchBlock | ( |  | ) | const
| inline

Definition at line 123 of file CGCleanup.h.

Referenced by emitCatchDispatchBlock(), emitCatchPadBlock(), emitFilterDispatchBlock(), emitWasmCatchPadBlock(), clang::CodeGen::CodeGenFunction::getEHDispatchBlock(), clang::CodeGen::CodeGenFunction::getFuncletEHDispatchBlock(), and clang::CodeGen::CodeGenFunction::PopCleanupBlock().

## ◆ getCachedLandingPad()

llvm::BasicBlock* clang::CodeGen::EHScope::getCachedLandingPad | ( |  | ) | const
| inline

Definition at line 115 of file CGCleanup.h.

## ◆ getEnclosingEHScope()

EHScopeStack::stable_iterator clang::CodeGen::EHScope::getEnclosingEHScope | ( |  | ) | const
| inline

Definition at line 137 of file CGCleanup.h.

Referenced by emitCatchDispatchBlock(), emitCatchPadBlock(), emitWasmCatchPadBlock(), clang::CodeGen::EHScopeStack::popCatch(), clang::CodeGen::EHScopeStack::popCleanup(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), clang::CodeGen::EHScopeStack::popFilter(), and clang::CodeGen::EHScopeStack::popTerminate().

## ◆ getKind()

Kind clang::CodeGen::EHScope::getKind | ( |  | ) | const
| inline

Definition at line 113 of file CGCleanup.h.

Referenced by clang::CodeGen::EHCatchScope::classof(), clang::CodeGen::EHCleanupScope::classof(), clang::CodeGen::EHFilterScope::classof(), clang::CodeGen::EHTerminateScope::classof(), clang::CodeGen::EHPadEndScope::classof(), clang::CodeGen::CodeGenFunction::getEHDispatchBlock(), and clang::CodeGen::CodeGenFunction::getFuncletEHDispatchBlock().

## ◆ hasEHBranches()

bool clang::CodeGen::EHScope::hasEHBranches | ( |  | ) | const
| inline

Definition at line 131 of file CGCleanup.h.

Referenced by IsUsedAsEHCleanup(), clang::CodeGen::CodeGenFunction::popCatchScope(), and clang::CodeGen::CodeGenFunction::PopCleanupBlock().

## ◆ setCachedEHDispatchBlock()

void clang::CodeGen::EHScope::setCachedEHDispatchBlock | ( | llvm::BasicBlock * | block | ) |
| inline

Definition at line 127 of file CGCleanup.h.

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

## ◆ setCachedLandingPad()

void clang::CodeGen::EHScope::setCachedLandingPad | ( | llvm::BasicBlock * | block | ) |
| inline

Definition at line 119 of file CGCleanup.h.

## Member Data Documentation

## ◆ @279

union { ... }

## ◆ CatchBits

CatchBitFields clang::CodeGen::EHScope::CatchBits

Definition at line 99 of file CGCleanup.h.

## ◆ CleanupBits

CleanupBitFields clang::CodeGen::EHScope::CleanupBits

Definition at line 100 of file CGCleanup.h.

## ◆ CommonBits

CommonBitFields clang::CodeGen::EHScope::CommonBits

Definition at line 98 of file CGCleanup.h.

## ◆ FilterBits

FilterBitFields clang::CodeGen::EHScope::FilterBits

Definition at line 101 of file CGCleanup.h.

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

- lib/CodeGen/CGCleanup.h