16 #ifndef LLVM_ADT_EPOCH_TRACKER_H
17 #define LLVM_ADT_EPOCH_TRACKER_H
19 #include "llvm/Config/llvm-config.h"
25 #ifndef LLVM_ENABLE_ABI_BREAKING_CHECKS
51 class DebugEpochBase {
55 DebugEpochBase() : Epoch(0) {}
74 const uint64_t *EpochAddress;
75 uint64_t EpochAtCreation;
78 HandleBase() : EpochAddress(nullptr), EpochAtCreation(UINT64_MAX) {}
80 explicit HandleBase(
const DebugEpochBase *Parent)
81 : EpochAddress(&Parent->Epoch), EpochAtCreation(Parent->Epoch) {}
86 bool isHandleInSync()
const {
return *EpochAddress == EpochAtCreation; }
95 #endif // LLVM_ENABLE_ABI_BREAKING_CHECKS
const void * getEpochAddress() const
bool isHandleInSync() const
HandleBase(const DebugEpochBase *)