summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2016-07-10 23:24:36 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2016-07-10 23:24:36 +0000
commit37bf71828b572d551e1a892beb2afc6db0d51b37 (patch)
tree9f71e7d20db2c280e90a9575e0a29879f87cb3f7 /clang/lib/Driver
parente87ad547efec70e15a727d3e8d3d7df6e14e5c99 (diff)
downloadbcm5719-llvm-37bf71828b572d551e1a892beb2afc6db0d51b37.tar.gz
bcm5719-llvm-37bf71828b572d551e1a892beb2afc6db0d51b37.zip
Reapply SVN r274797.
Original Commit Message Driver: Stop linking to C++ when using sanitizers on Darwin Sanitizers on Darwin are built as dynamic libraries, not static libraries. Sanitizers will have their C++ dependency satisfied internally (LC_LOAD_DYLIB) in the libclang_rt dylib. As long as the sanitizers stay dynamic and not static, linking against C++ when enabling a sanitizer becomes over linkage. Patch by Dave Lee! llvm-svn: 275032
Diffstat (limited to 'clang/lib/Driver')
-rw-r--r--clang/lib/Driver/ToolChains.cpp12
1 files changed, 0 insertions, 12 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index 89e973a1209..4ecbf2bac3c 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -392,24 +392,12 @@ void Darwin::addProfileRTLibs(const ArgList &Args,
void DarwinClang::AddLinkSanitizerLibArgs(const ArgList &Args,
ArgStringList &CmdArgs,
StringRef Sanitizer) const {
- if (!Args.hasArg(options::OPT_dynamiclib) &&
- !Args.hasArg(options::OPT_bundle)) {
- // Sanitizer runtime libraries requires C++.
- AddCXXStdlibLibArgs(Args, CmdArgs);
- }
-
AddLinkRuntimeLib(
Args, CmdArgs,
(Twine("libclang_rt.") + Sanitizer + "_" +
getOSLibraryNameSuffix() + "_dynamic.dylib").str(),
/*AlwaysLink*/ true, /*IsEmbedded*/ false,
/*AddRPath*/ true);
-
- if (GetCXXStdlibType(Args) == ToolChain::CST_Libcxx) {
- // Add explicit dependcy on -lc++abi, as -lc++ doesn't re-export
- // all RTTI-related symbols that UBSan uses.
- CmdArgs.push_back("-lc++abi");
- }
}
void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args,
OpenPOWER on IntegriCloud