summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorMatt Morehouse <mascasa@google.com>2017-08-29 19:48:12 +0000
committerMatt Morehouse <mascasa@google.com>2017-08-29 19:48:12 +0000
commit2ad8d948b26a8d652ef3d3aa9fcd5203790af155 (patch)
treef5d26e885850740b8eaf1c8ef3b6429fe219cc92 /clang
parentf4c7376afc80ca87d0eca785a4d2ba64d32e9820 (diff)
downloadbcm5719-llvm-2ad8d948b26a8d652ef3d3aa9fcd5203790af155.tar.gz
bcm5719-llvm-2ad8d948b26a8d652ef3d3aa9fcd5203790af155.zip
[SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer
Summary: - Don't sanitize __sancov_lowest_stack. - Don't instrument leaf functions. - Add CoverageStackDepth to Fuzzer and FuzzerNoLink. - Disable stack depth tracking on Mac. Reviewers: vitalybuka, kcc, george.karpenkov Reviewed By: kcc Subscribers: kubamracek, cfe-commits, llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D37156 llvm-svn: 312026
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Driver/SanitizerArgs.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp
index a37d0b64cbe..6afa4872958 100644
--- a/clang/lib/Driver/SanitizerArgs.cpp
+++ b/clang/lib/Driver/SanitizerArgs.cpp
@@ -291,9 +291,13 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
Add |= FuzzerNoLink;
// Enable coverage if the fuzzing flag is set.
- if (Add & FuzzerNoLink)
+ if (Add & FuzzerNoLink) {
CoverageFeatures |= CoverageTracePCGuard | CoverageIndirCall |
CoverageTraceCmp | CoveragePCTable;
+ // Due to TLS differences, stack depth tracking is disabled on Mac.
+ if (!TC.getTriple().isOSDarwin())
+ CoverageFeatures |= CoverageStackDepth;
+ }
Kinds |= Add;
} else if (Arg->getOption().matches(options::OPT_fno_sanitize_EQ)) {
OpenPOWER on IntegriCloud