]> granicus.if.org Git - clang/commitdiff
[asan] Use the dynamic ASan runtime if -shared-libasan is passed
authorReid Kleckner <rnk@google.com>
Wed, 2 Nov 2016 15:38:51 +0000 (15:38 +0000)
committerReid Kleckner <rnk@google.com>
Wed, 2 Nov 2016 15:38:51 +0000 (15:38 +0000)
-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.

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

lib/Driver/Tools.cpp

index b6a899294807271e6aefbf745d4e595421601422..02799380ab52366d98415b6d7c63a46f70504eb6 100644 (file)
@@ -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