summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Fuzzer/FuzzerInternal.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Fuzzer/FuzzerInternal.h')
-rw-r--r--llvm/lib/Fuzzer/FuzzerInternal.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerInternal.h b/llvm/lib/Fuzzer/FuzzerInternal.h
index 1ee1b8f718f..69b38abc26f 100644
--- a/llvm/lib/Fuzzer/FuzzerInternal.h
+++ b/llvm/lib/Fuzzer/FuzzerInternal.h
@@ -358,8 +358,8 @@ private:
// See TracePC.cpp
class TracePC {
public:
- void HandleTrace(uint8_t *guard, uintptr_t PC);
- void HandleInit(uint8_t *start, uint8_t *stop);
+ void HandleTrace(uint64_t *guard, uintptr_t PC);
+ void HandleInit(uint64_t *start, uint64_t *stop);
void HandleCallerCallee(uintptr_t Caller, uintptr_t Callee);
size_t GetTotalCoverage() { return TotalCoverage; }
void SetUseCounters(bool UC) { UseCounters = UC; }
@@ -374,6 +374,16 @@ class TracePC {
return Res;
}
+ void Reset() {
+ TotalCoverage = 0;
+ TotalCounterBits = 0;
+ NumNewPCs = 0;
+ CounterMap.Reset();
+ TotalCoverageMap.Reset();
+ }
+
+ void PrintModuleInfo();
+
private:
bool UseCounters = false;
size_t TotalCoverage = 0;
@@ -384,7 +394,14 @@ private:
size_t NumNewPCs = 0;
void AddNewPC(uintptr_t PC) { NewPCs[(NumNewPCs++) % kMaxNewPCs] = PC; }
- uint8_t *Start, *Stop;
+ struct Module {
+ uint64_t *Start, *Stop;
+ };
+
+ Module Modules[4096];
+ size_t NumModules = 0;
+ size_t NumGuards = 0;
+
ValueBitMap CounterMap;
ValueBitMap TotalCoverageMap;
};
OpenPOWER on IntegriCloud