clang-cl: Support -fsanitize=address
This exposes the -fsanitize=address option and adds the runtime library
to the link command.
Differential Revision: http://llvm-reviews.chandlerc.com/D1526
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189389 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 645011d..c30c45d 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -6568,6 +6568,14 @@
CmdArgs.push_back("-nologo");
+ if (getToolChain().getDriver().getOrParseSanitizerArgs(Args).needsAsanRt()) {
+ SmallString<128> LibSanitizer(getToolChain().getDriver().ResourceDir);
+ // FIXME: Handle 64-bit. Use asan_dll_thunk.dll when building a DLL.
+ llvm::sys::path::append(
+ LibSanitizer, "lib", "windows", "clang_rt.asan-i386.lib");
+ CmdArgs.push_back(Args.MakeArgString(LibSanitizer));
+ }
+
Args.AddAllArgValues(CmdArgs, options::OPT_l);
Args.AddAllArgValues(CmdArgs, options::OPT__SLASH_link);