summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver
diff options
context:
space:
mode:
authorGeorge Karpenkov <ekarpenkov@apple.com>2017-06-29 19:52:33 +0000
committerGeorge Karpenkov <ekarpenkov@apple.com>2017-06-29 19:52:33 +0000
commit2363fdd30f3b71772e9b37260a7b2fa56a7fcdc2 (patch)
treec33243008afed4dbd26b8042ebeae8da783b0a4b /clang/lib/Driver
parentf5fe36787d2caa321b086eaa87844af586a2ef11 (diff)
downloadbcm5719-llvm-2363fdd30f3b71772e9b37260a7b2fa56a7fcdc2.tar.gz
bcm5719-llvm-2363fdd30f3b71772e9b37260a7b2fa56a7fcdc2.zip
[libFuzzer] Do not link in libFuzzer with -fsanitize=fuzzer when producing a shared object
https://reviews.llvm.org/D34791 llvm-svn: 306733
Diffstat (limited to 'clang/lib/Driver')
-rw-r--r--clang/lib/Driver/ToolChains/CommonArgs.cpp3
-rw-r--r--clang/lib/Driver/ToolChains/Darwin.cpp2
2 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 1991b2ecd8f..e8bb703054d 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -617,7 +617,8 @@ bool tools::addSanitizerRuntimes(const ToolChain &TC, const ArgList &Args,
NonWholeStaticRuntimes, HelperStaticRuntimes,
RequiredSymbols);
// Inject libfuzzer dependencies.
- if (TC.getSanitizerArgs().needsFuzzer()) {
+ if (TC.getSanitizerArgs().needsFuzzer()
+ && !Args.hasArg(options::OPT_shared)) {
addLibFuzzerRuntime(TC, Args, CmdArgs);
}
diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp
index bfe685e70df..13cda0d0a1f 100644
--- a/clang/lib/Driver/ToolChains/Darwin.cpp
+++ b/clang/lib/Driver/ToolChains/Darwin.cpp
@@ -1053,7 +1053,7 @@ void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args,
AddLinkSanitizerLibArgs(Args, CmdArgs, "ubsan");
if (Sanitize.needsTsanRt())
AddLinkSanitizerLibArgs(Args, CmdArgs, "tsan");
- if (Sanitize.needsFuzzer())
+ if (Sanitize.needsFuzzer() && !Args.hasArg(options::OPT_dynamiclib))
AddFuzzerLinkArgs(Args, CmdArgs);
if (Sanitize.needsStatsRt()) {
StringRef OS = isTargetMacOS() ? "osx" : "iossim";
OpenPOWER on IntegriCloud