OSDN Git Service

[libFuzzer] do not initialize parts of TracePC -- let them be initialized by the...
authorKostya Serebryany <kcc@google.com>
Fri, 11 Nov 2016 23:06:53 +0000 (23:06 +0000)
committerKostya Serebryany <kcc@google.com>
Fri, 11 Nov 2016 23:06:53 +0000 (23:06 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286665 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Fuzzer/FuzzerTracePC.cpp
lib/Fuzzer/FuzzerTracePC.h

index e61d5e0..f85b150 100644 (file)
@@ -218,6 +218,9 @@ void TracePC::PrintCoverage() {
 // For cmp instructions the interesting value is a XOR of the parameters.
 // The interesting value is mixed up with the PC and is then added to the map.
 
+#ifdef __clang__  // avoid gcc warning.
+__attribute__((no_sanitize("memory")))
+#endif
 void TracePC::AddValueForMemcmp(void *caller_pc, const void *s1, const void *s2,
                               size_t n) {
   if (!n) return;
index 4cce363..9c7f563 100644 (file)
@@ -101,8 +101,8 @@ private:
   };
 
   Module Modules[4096];
-  size_t NumModules = 0;
-  size_t NumGuards = 0;
+  size_t NumModules;  // linker-initialized.
+  size_t NumGuards;  // linker-initialized.
 
   static const size_t kNumCounters = 1 << 14;
   alignas(8) uint8_t Counters[kNumCounters];