|
clang 23.0.0git
|
A stack of scopes which respond to exceptions, including cleanups and catch blocks. More...
#include "/home/buildbot/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. | |
| template<class T, class... As> | |
| T * | pushCleanupWithExtra (CleanupKind kind, size_t n, As... a) |
| Push a cleanup with non-constant storage requirements on the stack. | |
| void | setCGF (CIRGenFunction *inCGF) |
| void | popCleanup () |
| Pops a cleanup scope off the stack. This is private to CIRGenCleanup.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. | |
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 45 of file EHScopeStack.h.
| anonymous enum |
| Enumerator | |
|---|---|
| ScopeStackAlignment | |
Definition at line 50 of file EHScopeStack.h.
|
default |
|
default |
|
inline |
Returns an iterator pointing to the innermost EH scope.
Definition at line 215 of file CIRGenCleanup.h.
|
inline |
Determines whether the exception-scopes stack is empty.
Definition at line 215 of file EHScopeStack.h.
|
inline |
Returns an iterator pointing to the outermost EH scope.
Definition at line 219 of file CIRGenCleanup.h.
|
inline |
Turn a stable reference to a scope depth into a unstable pointer to the EH stack.
Definition at line 224 of file CIRGenCleanup.h.
References clang::CIRGen::EHScopeStack::stable_iterator::isValid(), and stable_begin().
| stable_iterator clang::CIRGen::EHScopeStack::getInnermostActiveNormalCleanup | ( | ) | const |
|
inline |
Definition at line 231 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 226 of file EHScopeStack.h.
|
inline |
Determines whether there are any normal cleanups on the stack.
Definition at line 220 of file EHScopeStack.h.
References stable_end().
| void clang::CIRGen::EHScopeStack::popCleanup | ( | ) |
Pops a cleanup scope off the stack. This is private to CIRGenCleanup.cpp.
|
inline |
Push a lazily-created cleanup on the stack.
Definition at line 183 of file EHScopeStack.h.
References kind, and ScopeStackAlignment.
|
inline |
Push a cleanup with non-constant storage requirements on the stack.
The cleanup type must provide an additional static method: static size_t getExtraSize(size_t); The argument to this method will be the value N, which will also be passed as the first argument to the constructor.
The data stored in the extra storage must obey the same restrictions as normal cleanup member data.
The pointer returned from this method is valid until the cleanup stack is modified.
Definition at line 202 of file EHScopeStack.h.
References kind, and ScopeStackAlignment.
Referenced by enterNewDeleteCleanup().
| bool clang::CIRGen::EHScopeStack::requiresCatchOrCleanup | ( | ) | const |
|
inline |
Definition at line 209 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 246 of file EHScopeStack.h.
Referenced by find().
|
inlinestatic |
Create a stable reference to the bottom of the EH stack.
Definition at line 251 of file EHScopeStack.h.
Referenced by hasNormalCleanups().
|
friend |
Definition at line 46 of file EHScopeStack.h.
References CIRGenFunction.
Referenced by CIRGenFunction, clang::CIRGen::EHScopeStack::Cleanup::emit(), and setCGF().