aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorTimur Iskhodzhanov <timurrrr@google.com>2014-08-26 10:08:24 +0000
committerTimur Iskhodzhanov <timurrrr@google.com>2014-08-26 10:08:24 +0000
commit6903e10ddfb38d5281dd9f72e3d3f7e59005a077 (patch)
tree1e261d3a991f88ce880e95281096011c08d3cb1f /clang/lib/Driver/Tools.cpp
parent0705e0065e490f3c78d8a7e60b548e79db3463b9 (diff)
downloadllvm-6903e10ddfb38d5281dd9f72e3d3f7e59005a077.zip
llvm-6903e10ddfb38d5281dd9f72e3d3f7e59005a077.tar.gz
llvm-6903e10ddfb38d5281dd9f72e3d3f7e59005a077.tar.bz2
[ASan/Win] Add an extra thunk.lib to handle stack-use-after-return option
With this patch, "check-asan" passes all the tests with both MT and MD ASan RTL if you set COMPILER_RT_BUILD_SHARED_ASAN to ON (PR20214) llvm-svn: 216447
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index fe3baa8..0813089 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -7820,7 +7820,10 @@ void visualstudio::Link::ConstructJob(Compilation &C, const JobAction &JA,
CmdArgs.push_back(Args.MakeArgString("-debug"));
CmdArgs.push_back(Args.MakeArgString("-incremental:no"));
// FIXME: Handle 64-bit.
- if (DLL) {
+ if (Args.hasArg(options::OPT__SLASH_MD, options::OPT__SLASH_MDd)) {
+ addSanitizerRTWindows(getToolChain(), Args, CmdArgs, "asan_dynamic-i386");
+ addSanitizerRTWindows(getToolChain(), Args, CmdArgs, "asan_uar_thunk-i386");
+ } else if (DLL) {
addSanitizerRTWindows(getToolChain(), Args, CmdArgs,
"asan_dll_thunk-i386");
} else {