]> granicus.if.org Git - clang/commitdiff
[SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer
authorMatt Morehouse <mascasa@google.com>
Fri, 25 Aug 2017 21:18:29 +0000 (21:18 +0000)
committerMatt Morehouse <mascasa@google.com>
Fri, 25 Aug 2017 21:18:29 +0000 (21:18 +0000)
Summary:
- Don't sanitize __sancov_lowest_stack.
- Don't instrument leaf functions.
- Add CoverageStackDepth to Fuzzer and FuzzerNoLink.

Reviewers: vitalybuka, kcc

Reviewed By: kcc

Subscribers: cfe-commits, llvm-commits, hiraditya

Differential Revision: https://reviews.llvm.org/D37156

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311801 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/SanitizerArgs.cpp

index a37d0b64cbe42fd140cb2d06065a8b85e96000f4..7086ee382ef56ebbcc46fa7b138aa8f2578155eb 100644 (file)
@@ -290,10 +290,11 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
       if (Add & Fuzzer)
         Add |= FuzzerNoLink;
 
-      // Enable coverage if the fuzzing flag is set.
+      // Enable coverage and stack depth tracking if the fuzzing flag is set.
       if (Add & FuzzerNoLink)
         CoverageFeatures |= CoverageTracePCGuard | CoverageIndirCall |
-                            CoverageTraceCmp | CoveragePCTable;
+                            CoverageTraceCmp | CoveragePCTable |
+                            CoverageStackDepth;
 
       Kinds |= Add;
     } else if (Arg->getOption().matches(options::OPT_fno_sanitize_EQ)) {