Driver/Darwin: Add ASAN runtime library link support.

llvm-svn: 145651
This commit is contained in:
Daniel Dunbar 2011-12-01 23:40:18 +00:00
parent 5cd49adb2d
commit 1d6469fcb1
2 changed files with 17 additions and 1 deletions

View File

@ -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");

View File

@ -78,7 +78,7 @@ ifeq ($(OS),Darwin)
RuntimeDirs += darwin
RuntimeLibrary.darwin.Configs := \
eprintf 10.4 osx ios cc_kext \
profile_osx profile_ios
asan_osx profile_osx profile_ios
# On Darwin, fake Clang into using the iOS assembler (since compiler-rt wants to
# build ARM bits).