From 235679181b9500eaf4c1eea25b886c51d5b00789 Mon Sep 17 00:00:00 2001 From: Kostya Serebryany Date: Fri, 11 Nov 2016 23:06:53 +0000 Subject: [PATCH] [libFuzzer] do not initialize parts of TracePC -- let them be initialized by the linker. Add no-msan attribute to the memcmp hook. llvm-svn: 286665 --- llvm/lib/Fuzzer/FuzzerTracePC.cpp | 3 +++ llvm/lib/Fuzzer/FuzzerTracePC.h | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Fuzzer/FuzzerTracePC.cpp b/llvm/lib/Fuzzer/FuzzerTracePC.cpp index e61d5e0..f85b150 100644 --- a/llvm/lib/Fuzzer/FuzzerTracePC.cpp +++ b/llvm/lib/Fuzzer/FuzzerTracePC.cpp @@ -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; diff --git a/llvm/lib/Fuzzer/FuzzerTracePC.h b/llvm/lib/Fuzzer/FuzzerTracePC.h index 4cce363..9c7f563 100644 --- a/llvm/lib/Fuzzer/FuzzerTracePC.h +++ b/llvm/lib/Fuzzer/FuzzerTracePC.h @@ -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]; -- 2.7.4