aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2016-11-02 15:38:51 +0000
committerReid Kleckner <rnk@google.com>2016-11-02 15:38:51 +0000
commit2bc03590f6647ab94b8866869b1f417f78fd7274 (patch)
tree0ccc9743a8191355a89a7715e6378eb90530906b /clang/lib/Driver/Tools.cpp
parent4e1fbf080c4014e57f9dbcc392b8fb029d3c6177 (diff)
downloadllvm-2bc03590f6647ab94b8866869b1f417f78fd7274.zip
llvm-2bc03590f6647ab94b8866869b1f417f78fd7274.tar.gz
llvm-2bc03590f6647ab94b8866869b1f417f78fd7274.tar.bz2
[asan] Use the dynamic ASan runtime if -shared-libasan is passed
-shared-libasan is likely to be used as a link flag if the user is using the GCC-style clang driver. This logic is already tested in clang-cl tests, and the new flag to exercise it will be covered by asan tests. llvm-svn: 285820
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index b6a8992..0279938 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -10786,7 +10786,8 @@ void visualstudio::Linker::ConstructJob(Compilation &C, const JobAction &JA,
if (TC.getSanitizerArgs().needsAsanRt()) {
CmdArgs.push_back(Args.MakeArgString("-debug"));
CmdArgs.push_back(Args.MakeArgString("-incremental:no"));
- if (Args.hasArg(options::OPT__SLASH_MD, options::OPT__SLASH_MDd)) {
+ if (TC.getSanitizerArgs().needsSharedAsanRt() ||
+ Args.hasArg(options::OPT__SLASH_MD, options::OPT__SLASH_MDd)) {
for (const auto &Lib : {"asan_dynamic", "asan_dynamic_runtime_thunk"})
CmdArgs.push_back(TC.getCompilerRTArgString(Args, Lib));
// Make sure the dynamic runtime thunk is not optimized out at link time