diff options
Diffstat (limited to 'contrib/llvm-project/llvm/include/llvm/Support/CrashRecoveryContext.h')
-rw-r--r-- | contrib/llvm-project/llvm/include/llvm/Support/CrashRecoveryContext.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/contrib/llvm-project/llvm/include/llvm/Support/CrashRecoveryContext.h b/contrib/llvm-project/llvm/include/llvm/Support/CrashRecoveryContext.h index 61a1bd405a4d..f756635ee1f9 100644 --- a/contrib/llvm-project/llvm/include/llvm/Support/CrashRecoveryContext.h +++ b/contrib/llvm-project/llvm/include/llvm/Support/CrashRecoveryContext.h @@ -44,11 +44,11 @@ class CrashRecoveryContextCleanup; /// executed in any case, whether crash occurs or not. These actions may be used /// to reclaim resources in the case of crash. class CrashRecoveryContext { - void *Impl; - CrashRecoveryContextCleanup *head; + void *Impl = nullptr; + CrashRecoveryContextCleanup *head = nullptr; public: - CrashRecoveryContext() : Impl(nullptr), head(nullptr) {} + CrashRecoveryContext(); ~CrashRecoveryContext(); /// Register cleanup handler, which is used when the recovery context is @@ -102,6 +102,10 @@ public: LLVM_ATTRIBUTE_NORETURN void HandleExit(int RetCode); + /// Throw again a signal or an exception, after it was catched once by a + /// CrashRecoveryContext. + static bool throwIfCrash(int RetCode); + /// In case of a crash, this is the crash identifier. int RetCode = 0; @@ -181,7 +185,7 @@ public: : CrashRecoveryContextCleanupBase< CrashRecoveryContextDestructorCleanup<T>, T>(context, resource) {} - virtual void recoverResources() { + void recoverResources() override { this->resource->~T(); } }; |