summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2011-12-01 23:40:18 +0000
committerDaniel Dunbar <daniel@zuster.org>2011-12-01 23:40:18 +0000
commit1d6469fcb103acef30206ed3ad48c64bea5c84b3 (patch)
treee2b633d5a0bb652421abe2c0f89e6500660af9e8 /clang/lib/Driver/ToolChains.cpp
parent5cd49adb2d0d2a0c6bf7960112e76054954f9667 (diff)
downloadbcm5719-llvm-1d6469fcb103acef30206ed3ad48c64bea5c84b3.tar.gz
bcm5719-llvm-1d6469fcb103acef30206ed3ad48c64bea5c84b3.zip
Driver/Darwin: Add ASAN runtime library link support.
llvm-svn: 145651
Diffstat (limited to 'clang/lib/Driver/ToolChains.cpp')
-rw-r--r--clang/lib/Driver/ToolChains.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index 5ebe2828547..245b3e83084 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -467,6 +467,22 @@ void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args,
}
}
+ // Add ASAN runtime library, if required.
+ if (Args.hasFlag(options::OPT_faddress_sanitizer,
+ options::OPT_fno_address_sanitizer, false)) {
+ if (isTargetIPhoneOS()) {
+ getDriver().Diag(diag::err_drv_clang_unsupported_per_platform)
+ << "-faddress-sanitizer";
+ } else {
+ AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.asan_osx.a");
+
+ // The ASAN runtime library requires C++ and CoreFoundation.
+ AddCXXStdlibLibArgs(Args, CmdArgs);
+ CmdArgs.push_back("-framework");
+ CmdArgs.push_back("CoreFoundation");
+ }
+ }
+
// Otherwise link libSystem, then the dynamic runtime library, and finally any
// target specific static runtime library.
CmdArgs.push_back("-lSystem");
OpenPOWER on IntegriCloud