summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2015-04-09 18:47:01 +0000
committerHans Wennborg <hans@hanshq.net>2015-04-09 18:47:01 +0000
commit10821e5283fd190c8ff38dcad8b5e2a2fcdc4e5a (patch)
tree85205b3c2d821d903eb5314adcf8677735f81299 /clang
parentf8e68e230b7351d39ded3edbdadb374ed4bfb5ae (diff)
downloadbcm5719-llvm-10821e5283fd190c8ff38dcad8b5e2a2fcdc4e5a.tar.gz
bcm5719-llvm-10821e5283fd190c8ff38dcad8b5e2a2fcdc4e5a.zip
[ASan] Don't link against libc++abi when not using libc++
This is a follow-up to r233860 which added -lc++abi when using ASan on Mac, and broke Chromium's ASan build which doesn't use libc++. llvm-svn: 234521
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Driver/ToolChains.cpp9
-rw-r--r--clang/test/Driver/sanitizer-ld.c8
2 files changed, 14 insertions, 3 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index 9864d19e346..434dc4d3314 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -338,9 +338,12 @@ void DarwinClang::AddLinkSanitizerLibArgs(const ArgList &Args,
OS + "_dynamic.dylib").str(),
/*AlwaysLink*/ true, /*IsEmbedded*/ false,
/*AddRPath*/ true);
- // Add explicit dependcy on -lc++abi, as -lc++ doesn't re-export
- // all RTTI-related symbols that UBSan uses.
- CmdArgs.push_back("-lc++abi");
+
+ 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,
diff --git a/clang/test/Driver/sanitizer-ld.c b/clang/test/Driver/sanitizer-ld.c
index 586d0c729ca..16ada5d8b5d 100644
--- a/clang/test/Driver/sanitizer-ld.c
+++ b/clang/test/Driver/sanitizer-ld.c
@@ -272,3 +272,11 @@
// CHECK-LSAN-ASAN-LINUX-NOT: libclang_rt.lsan
// CHECK-LSAN-ASAN-LINUX: libclang_rt.asan-x86_64
// CHECK-LSAN-ASAN-LINUX-NOT: libclang_rt.lsan
+
+// RUN: %clangcxx -fsanitize=address %s -### -o %t.o 2>&1 \
+// RUN: -mmacosx-version-min=10.6 \
+// RUN: -target x86_64-apple-darwin13.4.0 \
+// RUN: | FileCheck --check-prefix=CHECK-ASAN-DARWIN106-CXX %s
+// CHECK-ASAN-DARWIN106-CXX: "{{.*}}ld{{(.exe)?}}"
+// CHECK-ASAN-DARWIN106-CXX: libclang_rt.asan_osx_dynamic.dylib
+// CHECK-ASAN-DARWIN106-CXX-NOT: -lc++abi
OpenPOWER on IntegriCloud