diff options
author | Timur Iskhodzhanov <timurrrr@google.com> | 2014-08-26 10:08:24 +0000 |
---|---|---|
committer | Timur Iskhodzhanov <timurrrr@google.com> | 2014-08-26 10:08:24 +0000 |
commit | 6903e10ddfb38d5281dd9f72e3d3f7e59005a077 (patch) | |
tree | 1e261d3a991f88ce880e95281096011c08d3cb1f /clang/lib/Driver/Tools.cpp | |
parent | 0705e0065e490f3c78d8a7e60b548e79db3463b9 (diff) | |
download | llvm-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.cpp | 5 |
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 { |