summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Fuzzer/FuzzerTracePC.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Fuzzer/FuzzerTracePC.h')
-rw-r--r--llvm/lib/Fuzzer/FuzzerTracePC.h24
1 files changed, 13 insertions, 11 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerTracePC.h b/llvm/lib/Fuzzer/FuzzerTracePC.h
index 58497f1e9f5..e26a59f4427 100644
--- a/llvm/lib/Fuzzer/FuzzerTracePC.h
+++ b/llvm/lib/Fuzzer/FuzzerTracePC.h
@@ -27,18 +27,18 @@ class TracePC {
size_t UpdateCounterMap(ValueBitMap *Map);
void FinalizeTrace();
- size_t GetNewPCsAndFlush(uintptr_t **NewPCsPtr = nullptr) {
- if (NewPCsPtr)
- *NewPCsPtr = NewPCs;
- size_t Res = NumNewPCs;
- NumNewPCs = 0;
- return Res;
+ size_t GetNewPCIDs(uintptr_t **NewPCIDsPtr) {
+ *NewPCIDsPtr = NewPCIDs;
+ return NumNewPCIDs;
}
+ void ResetNewPCIDs() { NumNewPCIDs = 0; }
+ uintptr_t GetPCbyPCID(uintptr_t PCID) { return PCs[PCID]; }
+
void Reset() {
TotalCoverage = 0;
TotalCounterBits = 0;
- NumNewPCs = 0;
+ NumNewPCIDs = 0;
CounterMap.Reset();
TotalCoverageMap.Reset();
ResetGuards();
@@ -53,10 +53,12 @@ private:
size_t TotalCoverage = 0;
size_t TotalCounterBits = 0;
- static const size_t kMaxNewPCs = 64;
- uintptr_t NewPCs[kMaxNewPCs];
- size_t NumNewPCs = 0;
- void AddNewPC(uintptr_t PC) { NewPCs[(NumNewPCs++) % kMaxNewPCs] = PC; }
+ static const size_t kMaxNewPCIDs = 64;
+ uintptr_t NewPCIDs[kMaxNewPCIDs];
+ size_t NumNewPCIDs = 0;
+ void AddNewPCID(uintptr_t PCID) {
+ NewPCIDs[(NumNewPCIDs++) % kMaxNewPCIDs] = PCID;
+ }
void ResetGuards();
OpenPOWER on IntegriCloud