diff options
author | Kostya Serebryany <kcc@google.com> | 2016-09-23 01:20:07 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2016-09-23 01:20:07 +0000 |
commit | 87a598e19f506885caf08f8d8763a753ebf758d2 (patch) | |
tree | 976d8ee893a10cff3aa3c728a5ad6dbb7fbc9e00 /llvm/lib/Fuzzer/FuzzerTracePC.cpp | |
parent | ceb71c2f433ac90829f17ee957c58dd98fb26c3e (diff) | |
download | bcm5719-llvm-87a598e19f506885caf08f8d8763a753ebf758d2.tar.gz bcm5719-llvm-87a598e19f506885caf08f8d8763a753ebf758d2.zip |
[libFuzzer] simplify the TracePC logic
llvm-svn: 282222
Diffstat (limited to 'llvm/lib/Fuzzer/FuzzerTracePC.cpp')
-rw-r--r-- | llvm/lib/Fuzzer/FuzzerTracePC.cpp | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerTracePC.cpp b/llvm/lib/Fuzzer/FuzzerTracePC.cpp index 5c038cde67f..0df8aba18f6 100644 --- a/llvm/lib/Fuzzer/FuzzerTracePC.cpp +++ b/llvm/lib/Fuzzer/FuzzerTracePC.cpp @@ -19,31 +19,22 @@ namespace fuzzer { TracePC TPC; -const size_t TracePC::kNumCounters; -const size_t TracePC::kNumPCs; void TracePC::HandleTrace(uintptr_t *Guard, uintptr_t PC) { uintptr_t Idx = *Guard; if (!Idx) return; - if (UseCounters) { - uint8_t Counter = Counters[Idx % kNumCounters]; - if (Counter == 0) { + uint8_t Counter = Counters[Idx % kNumCounters]; + if (Counter == 0) { + AddNewPCID(Idx); + if (!PCs[Idx]) { + TotalPCCoverage++; PCs[Idx] = PC; - if (TotalCoverageMap.AddValue(Idx)) { - TotalCoverage++; - AddNewPCID(Idx); - } } - if (Counter < 128) - Counters[Idx % kNumCounters] = Counter + 1; - else - *Guard = 0; - } else { - *Guard = 0; - TotalCoverage++; - AddNewPCID(Idx); - PCs[Idx] = PC; } + if (Counter < 128) + Counters[Idx % kNumCounters] = Counter + 1; + if (Counter >= 128 || !UseCounters) + *Guard = 0; } void TracePC::HandleInit(uintptr_t *Start, uintptr_t *Stop) { @@ -72,8 +63,8 @@ void TracePC::ResetGuards() { } void TracePC::FinalizeTrace() { - if (UseCounters && TotalCoverage) { - for (size_t Idx = 1, N = std::min(kNumCounters, NumGuards); Idx < N; + if (TotalPCCoverage) { + for (size_t Idx = 1, N = Min(kNumCounters, NumGuards); Idx < N; Idx++) { uint8_t Counter = Counters[Idx]; if (!Counter) continue; @@ -99,7 +90,7 @@ void TracePC::HandleCallerCallee(uintptr_t Caller, uintptr_t Callee) { void TracePC::PrintCoverage() { Printf("COVERAGE:\n"); - for (size_t i = 0; i < std::min(NumGuards, kNumPCs); i++) { + for (size_t i = 0; i < Min(NumGuards, kNumPCs); i++) { if (PCs[i]) PrintPC("COVERED: %p %F %L\n", "COVERED: %p\n", PCs[i]); } |