16 #ifndef LLVM_ADT_EPOCH_TRACKER_H 17 #define LLVM_ADT_EPOCH_TRACKER_H 19 #include "llvm/Config/abi-breaking.h" 25 #if LLVM_ENABLE_ABI_BREAKING_CHECKS 59 const uint64_t *EpochAddress;
60 uint64_t EpochAtCreation;
66 : EpochAddress(&Parent->Epoch), EpochAtCreation(Parent->Epoch) {}
95 #endif // LLVM_ENABLE_ABI_BREAKING_CHECKS This class represents lattice values for constants.
A base class for data structure classes wishing to make iterators ("handles") pointing into themselve...
~DebugEpochBase()
The destructor calls incrementEpoch to make use-after-free bugs more likely to crash deterministicall...
void incrementEpoch()
Calling incrementEpoch invalidates all handles pointing into the calling instance.
A base class for iterator classes ("handles") that wish to poll for iterator invalidating modificatio...
HandleBase(const DebugEpochBase *Parent)
const void * getEpochAddress() const
Returns a pointer to the epoch word stored in the data structure this handle points into...
bool isHandleInSync() const
Returns true if the DebugEpochBase this Handle is linked to has not called incrementEpoch on itself s...