|
clang 22.0.0git
|
A stack of scopes which respond to exceptions, including cleanups and catch blocks. More...
#include "/work/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CIR/CodeGen/EHScopeStack.h"
Classes | |
| class | Cleanup |
| Information for lazily generating a cleanup. More... | |
| class | iterator |
| A non-stable pointer into the scope stack. More... | |
| class | stable_iterator |
| A saved depth on the scope stack. More... | |
Public Types | |
| enum | { ScopeStackAlignment = 8 } |
Public Member Functions | |
| EHScopeStack ()=default | |
| ~EHScopeStack ()=default | |
| template<class T, class... As> | |
| void | pushCleanup (CleanupKind kind, As... a) |
| Push a lazily-created cleanup on the stack. | |
| void | setCGF (CIRGenFunction *inCGF) |
| void | popCleanup () |
| Pops a cleanup scope off the stack. This is private to CIRGenCleanup.cpp. | |
| class EHCatchScope * | pushCatch (unsigned numHandlers) |
| Push a set of catch handlers on the stack. | |
| void | popCatch () |
| Pops a catch scope off the stack. This is private to CIRGenException.cpp. | |
| bool | empty () const |
| Determines whether the exception-scopes stack is empty. | |
| bool | requiresCatchOrCleanup () const |
| bool | hasNormalCleanups () const |
| Determines whether there are any normal cleanups on the stack. | |
| stable_iterator | getInnermostNormalCleanup () const |
| Returns the innermost normal cleanup on the stack, or stable_end() if there are no normal cleanups. | |
| stable_iterator | getInnermostActiveNormalCleanup () const |
| stable_iterator | getInnermostEHScope () const |
| iterator | begin () const |
| Returns an iterator pointing to the innermost EH scope. | |
| iterator | end () const |
| Returns an iterator pointing to the outermost EH scope. | |
| stable_iterator | stable_begin () const |
| Create a stable reference to the top of the EH stack. | |
| iterator | find (stable_iterator savePoint) const |
| Turn a stable reference to a scope depth into a unstable pointer to the EH stack. | |
| BranchFixup & | addBranchFixup () |
| Add a branch fixup to the current cleanup scope. | |
| unsigned | getNumBranchFixups () const |
| BranchFixup & | getBranchFixup (unsigned i) |
| void | popNullFixups () |
| Pops lazily-removed fixups from the end of the list. | |
Static Public Member Functions | |
| static stable_iterator | stable_end () |
| Create a stable reference to the bottom of the EH stack. | |
Friends | |
| class | CIRGenFunction |
A stack of scopes which respond to exceptions, including cleanups and catch blocks.
Definition at line 70 of file EHScopeStack.h.
| anonymous enum |
| Enumerator | |
|---|---|
| ScopeStackAlignment | |
Definition at line 75 of file EHScopeStack.h.
|
default |
|
default |
|
inline |
Add a branch fixup to the current cleanup scope.
Definition at line 291 of file EHScopeStack.h.
References hasNormalCleanups().
|
inline |
Returns an iterator pointing to the innermost EH scope.
Definition at line 309 of file CIRGenCleanup.h.
Referenced by popCatch().
|
inline |
Determines whether the exception-scopes stack is empty.
Definition at line 248 of file EHScopeStack.h.
Referenced by popCatch().
|
inline |
Returns an iterator pointing to the outermost EH scope.
Definition at line 313 of file CIRGenCleanup.h.
|
inline |
Turn a stable reference to a scope depth into a unstable pointer to the EH stack.
Definition at line 318 of file CIRGenCleanup.h.
References clang::CIRGen::EHScopeStack::stable_iterator::isValid(), and stable_begin().
|
inline |
Definition at line 298 of file EHScopeStack.h.
References getNumBranchFixups().
| stable_iterator clang::CIRGen::EHScopeStack::getInnermostActiveNormalCleanup | ( | ) | const |
|
inline |
Definition at line 264 of file EHScopeStack.h.
|
inline |
Returns the innermost normal cleanup on the stack, or stable_end() if there are no normal cleanups.
Definition at line 259 of file EHScopeStack.h.
|
inline |
Definition at line 297 of file EHScopeStack.h.
Referenced by getBranchFixup().
|
inline |
Determines whether there are any normal cleanups on the stack.
Definition at line 253 of file EHScopeStack.h.
References stable_end().
Referenced by addBranchFixup().
|
inline |
Pops a catch scope off the stack. This is private to CIRGenException.cpp.
Definition at line 325 of file CIRGenCleanup.h.
References begin(), empty(), clang::CIRGen::EHScope::getEnclosingEHScope(), clang::CIRGen::EHCatchScope::getNumHandlers(), and clang::CIRGen::EHCatchScope::getSizeForNumHandlers().
| void clang::CIRGen::EHScopeStack::popCleanup | ( | ) |
Pops a cleanup scope off the stack. This is private to CIRGenCleanup.cpp.
| void clang::CIRGen::EHScopeStack::popNullFixups | ( | ) |
Pops lazily-removed fixups from the end of the list.
This should only be called by procedures which have just popped a cleanup or resolved one or more fixups.
| class EHCatchScope * clang::CIRGen::EHScopeStack::pushCatch | ( | unsigned | numHandlers | ) |
Push a set of catch handlers on the stack.
The catch is uninitialized and will need to have the given number of handlers set on it.
|
inline |
Push a lazily-created cleanup on the stack.
Definition at line 227 of file EHScopeStack.h.
References ScopeStackAlignment, and clang::T.
| bool clang::CIRGen::EHScopeStack::requiresCatchOrCleanup | ( | ) | const |
|
inline |
Definition at line 234 of file EHScopeStack.h.
References CIRGenFunction.
|
inline |
Create a stable reference to the top of the EH stack.
The returned reference is valid until that scope is popped off the stack.
Definition at line 279 of file EHScopeStack.h.
Referenced by find().
|
inlinestatic |
Create a stable reference to the bottom of the EH stack.
Definition at line 284 of file EHScopeStack.h.
Referenced by hasNormalCleanups().
|
friend |
Definition at line 71 of file EHScopeStack.h.
References CIRGenFunction.
Referenced by CIRGenFunction, clang::CIRGen::EHScopeStack::Cleanup::emit(), and setCGF().