OSDN Git Service

[libFuzzer] don't clear Counters in TracePC::CollectFeatures since they will be clear...
authorKostya Serebryany <kcc@google.com>
Tue, 14 Mar 2017 21:40:53 +0000 (21:40 +0000)
committerKostya Serebryany <kcc@google.com>
Tue, 14 Mar 2017 21:40:53 +0000 (21:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297783 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Fuzzer/FuzzerTracePC.h
lib/Fuzzer/FuzzerValueBitMap.h

index b33d387..05d03e9 100644 (file)
@@ -57,7 +57,7 @@ class TracePC {
   void SetUseCounters(bool UC) { UseCounters = UC; }
   void SetUseValueProfile(bool VP) { UseValueProfile = VP; }
   void SetPrintNewPCs(bool P) { DoPrintNewPCs = P; }
-  template <class Callback> size_t CollectFeatures(Callback CB);
+  template <class Callback> size_t CollectFeatures(Callback CB) const;
 
   void ResetMaps() {
     ValueProfileMap.Reset();
@@ -111,7 +111,7 @@ private:
 };
 
 template <class Callback>
-size_t TracePC::CollectFeatures(Callback CB) {
+size_t TracePC::CollectFeatures(Callback CB) const {
   if (!UsingTracePcGuard()) return 0;
   size_t Res = 0;
   const size_t Step = 8;
@@ -125,7 +125,6 @@ size_t TracePC::CollectFeatures(Callback CB) {
     for (size_t i = Idx; i < Idx + Step; i++) {
       uint8_t Counter = (Bundle >> ((i - Idx) * 8)) & 0xff;
       if (!Counter) continue;
-      Counters[i] = 0;
       unsigned Bit = 0;
       /**/ if (Counter >= 128) Bit = 7;
       else if (Counter >= 32) Bit = 6;
index 600337a..8f7ff74 100644 (file)
@@ -76,7 +76,7 @@ struct ValueBitMap {
 
   template <class Callback>
   ATTRIBUTE_NO_SANITIZE_ALL
-  void ForEach(Callback CB) {
+  void ForEach(Callback CB) const {
     for (size_t i = 0; i < kMapSizeInWords; i++)
       if (uintptr_t M = Map[i])
         for (size_t j = 0; j < sizeof(M) * 8; j++)