]> granicus.if.org Git - clang/commitdiff
[libFuzzer] Add Fuzzer to the list of sanitizers which support coverage.
authorGeorge Karpenkov <ekarpenkov@apple.com>
Thu, 29 Jun 2017 19:58:20 +0000 (19:58 +0000)
committerGeorge Karpenkov <ekarpenkov@apple.com>
Thu, 29 Jun 2017 19:58:20 +0000 (19:58 +0000)
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

lib/Driver/SanitizerArgs.cpp
test/Driver/fuzzer.c

index 3a30f2a289b074b3a202cad897b25a3f7d92ecd3..7a442c83e15880938548d9592b4cdd601957f2fe 100644 (file)
@@ -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,
index 35bf4315c9f4c189a27eceb0003b8b4ffc0e06cb..989b3b9f63487aeb805dd1818929be7cd0cb888b 100644 (file)
 //
 // 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;
 }