summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Fuzzer/FuzzerLoop.cpp
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2016-09-23 02:18:59 +0000
committerKostya Serebryany <kcc@google.com>2016-09-23 02:18:59 +0000
commitce1cab169f1b30115b984d897a113e75c9761be0 (patch)
tree487bced7eadac5b3a5a43f52b33637067383b533 /llvm/lib/Fuzzer/FuzzerLoop.cpp
parent16a145fd0ff30a2ae0a94de0bfc1e5b4828ddcdd (diff)
downloadbcm5719-llvm-ce1cab169f1b30115b984d897a113e75c9761be0.tar.gz
bcm5719-llvm-ce1cab169f1b30115b984d897a113e75c9761be0.zip
[libFuzzer] be more precise about what we reset in TracePC
llvm-svn: 282225
Diffstat (limited to 'llvm/lib/Fuzzer/FuzzerLoop.cpp')
-rw-r--r--llvm/lib/Fuzzer/FuzzerLoop.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerLoop.cpp b/llvm/lib/Fuzzer/FuzzerLoop.cpp
index c376d10dd51..7182a693afa 100644
--- a/llvm/lib/Fuzzer/FuzzerLoop.cpp
+++ b/llvm/lib/Fuzzer/FuzzerLoop.cpp
@@ -68,7 +68,6 @@ void Fuzzer::ResetCounters() {
}
if (EF->__sanitizer_get_coverage_pc_buffer_pos)
PcBufferPos = EF->__sanitizer_get_coverage_pc_buffer_pos();
- TPC.ResetNewPCIDs();
}
void Fuzzer::PrepareCounters(Fuzzer::Coverage *C) {
@@ -163,7 +162,8 @@ Fuzzer::Fuzzer(UserCallback CB, InputCorpus &Corpus, MutationDispatcher &MD,
assert(!F);
F = this;
TPC.ResetTotalPCCoverage();
- TPC.Reset();
+ TPC.ResetMaps();
+ TPC.ResetGuards();
ResetCoverage();
IsMyThread = true;
if (Options.DetectLeaks && EF->__sanitizer_install_malloc_and_free_hooks)
@@ -470,6 +470,7 @@ void Fuzzer::ExecuteCallback(const uint8_t *Data, size_t Size) {
AllocTracer.Start();
UnitStartTime = system_clock::now();
ResetCounters(); // Reset coverage right before the callback.
+ TPC.ResetMaps();
int Res = CB(DataCopy, Size);
UnitStopTime = system_clock::now();
(void)Res;
@@ -565,7 +566,8 @@ UnitVector Fuzzer::FindExtraUnits(const UnitVector &Initial,
size_t OldSize = Res.size();
for (int Iter = 0; Iter < 10; Iter++) {
ShuffleCorpus(&Res);
- TPC.Reset();
+ TPC.ResetMaps();
+ TPC.ResetGuards();
ResetCoverage();
for (auto &U : Initial)
OpenPOWER on IntegriCloud