|
clang 24.0.0git
|
A cleanup whose destructor call is not emitted where the cleanup is registered. More...
#include "/work/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CIR/CodeGen/CIRGenFunction.h"
Public Attributes | |
| CleanupKind | kind |
| Address | addr |
| QualType | type |
| Destroyer * | destroyer |
| Address | activeFlag = Address::invalid() |
| CapturedCleanups * | capturedBy = nullptr |
| If set, the cleanup is captured by this owner instead of opening a cir.cleanup.scope when it is pushed onto the EH stack. | |
A cleanup whose destructor call is not emitted where the cleanup is registered.
Used by the lifetime-extended cleanup stack, whose entries are later promoted onto the EH scope stack, and by the deferred conditional cleanup stack, whose entries are emitted directly into a conditional scope's cleanup region.
A valid activeFlag means the cleanup is conditional. The flag tracks at run time whether the object has been constructed, and guards the destructor call.
Currently only DestroyObject cleanups use this. When other cleanup types are needed (e.g., CallLifetimeEnd), this struct can be extended with a std::variant of cleanup data types.
Definition at line 147 of file CIRGenFunction.h.
| Address clang::CIRGen::CIRGenFunction::PendingCleanupEntry::activeFlag = Address::invalid() |
Definition at line 152 of file CIRGenFunction.h.
Referenced by clang::CIRGen::CIRGenFunction::pushLifetimeExtendedDestroy(), and clang::CIRGen::CIRGenFunction::pushPendingCleanupToEHStack().
| Address clang::CIRGen::CIRGenFunction::PendingCleanupEntry::addr |
Definition at line 149 of file CIRGenFunction.h.
Referenced by clang::CIRGen::CIRGenFunction::pushPendingCleanupToEHStack().
| CapturedCleanups* clang::CIRGen::CIRGenFunction::PendingCleanupEntry::capturedBy = nullptr |
If set, the cleanup is captured by this owner instead of opening a cir.cleanup.scope when it is pushed onto the EH stack.
Definition at line 155 of file CIRGenFunction.h.
Referenced by clang::CIRGen::CIRGenFunction::pushLifetimeExtendedDestroy(), and clang::CIRGen::CIRGenFunction::pushPendingCleanupToEHStack().
| Destroyer* clang::CIRGen::CIRGenFunction::PendingCleanupEntry::destroyer |
Definition at line 151 of file CIRGenFunction.h.
Referenced by clang::CIRGen::CIRGenFunction::pushPendingCleanupToEHStack().
| CleanupKind clang::CIRGen::CIRGenFunction::PendingCleanupEntry::kind |
Definition at line 148 of file CIRGenFunction.h.
Referenced by clang::CIRGen::CIRGenFunction::pushPendingCleanupToEHStack().
| QualType clang::CIRGen::CIRGenFunction::PendingCleanupEntry::type |
Definition at line 150 of file CIRGenFunction.h.
Referenced by clang::CIRGen::CIRGenFunction::pushPendingCleanupToEHStack().