From: George Karpenkov Date: Thu, 29 Jun 2017 19:58:20 +0000 (+0000) Subject: [libFuzzer] Add Fuzzer to the list of sanitizers which support coverage. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=78aa30a644eaec1893db971c86ee10b3c0fe6781;p=clang [libFuzzer] Add Fuzzer to the list of sanitizers which support coverage. Without this change, additional coverage flags specified after -fsanitize=fuzzer would get discarded. https://reviews.llvm.org/D34794 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@306734 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/SanitizerArgs.cpp b/lib/Driver/SanitizerArgs.cpp index 3a30f2a289..7a442c83e1 100644 --- a/lib/Driver/SanitizerArgs.cpp +++ b/lib/Driver/SanitizerArgs.cpp @@ -32,7 +32,7 @@ enum : SanitizerMask { RequiresPIE = DataFlow, NeedsUnwindTables = Address | Thread | Memory | DataFlow, SupportsCoverage = Address | KernelAddress | Memory | Leak | Undefined | - Integer | Nullability | DataFlow, + Integer | Nullability | DataFlow | Fuzzer, RecoverableByDefault = Undefined | Integer | Nullability, Unrecoverable = Unreachable | Return, LegacyFsanitizeRecoverMask = Undefined | Integer, diff --git a/test/Driver/fuzzer.c b/test/Driver/fuzzer.c index 35bf4315c9..989b3b9f63 100644 --- a/test/Driver/fuzzer.c +++ b/test/Driver/fuzzer.c @@ -15,10 +15,14 @@ // // CHECK-LIBCXX-DARWIN: -lc++ + // Check that we don't link in libFuzzer.a when producing a shared object. // RUN: %clang -fsanitize=fuzzer %s -shared -o %t.so -### 2>&1 | FileCheck --check-prefixes=CHECK-NOLIB-SO %s // CHECK-NOLIB-SO-NOT: libLLVMFuzzer.a +// RUN: %clang -fsanitize=fuzzer -fsanitize-coverage=trace-pc %s -### 2>&1 | FileCheck --check-prefixes=CHECK-MSG %s +// CHECK-MSG-NOT: argument unused during compilation + int LLVMFuzzerTestOneInput(const char *Data, long Size) { return 0; }