summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2013-11-15 16:07:44 +0000
committerAlexander Potapenko <glider@google.com>2013-11-15 16:07:44 +0000
commit868cca96c43bcff67968fea67cb2e60fced2a136 (patch)
tree380aa48a0664888513d810bdf83dbb907f81a880 /clang
parent71ce0cab02c005b8f12f776b21897199e3fb4fed (diff)
downloadbcm5719-llvm-868cca96c43bcff67968fea67cb2e60fced2a136.tar.gz
bcm5719-llvm-868cca96c43bcff67968fea67cb2e60fced2a136.zip
[ASan] Link with libclang_rt.asan_iossim_dynamic.dylib when targeting the iOS simulator.
Add a test. llvm-svn: 194820
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Driver/ToolChains.cpp13
-rw-r--r--clang/test/Driver/darwin-sanitizer-ld.c8
2 files changed, 19 insertions, 2 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index acd0bbd96ce..7dc73422113 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -329,8 +329,17 @@ void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args,
// The ASAN runtime library requires C++.
AddCXXStdlibLibArgs(Args, CmdArgs);
}
- AddLinkRuntimeLib(Args, CmdArgs,
- "libclang_rt.asan_osx_dynamic.dylib", true);
+ if (isTargetMacOS()) {
+ AddLinkRuntimeLib(Args, CmdArgs,
+ "libclang_rt.asan_osx_dynamic.dylib",
+ true);
+ } else {
+ if (isTargetIOSSimulator()) {
+ AddLinkRuntimeLib(Args, CmdArgs,
+ "libclang_rt.asan_iossim_dynamic.dylib",
+ true);
+ }
+ }
}
}
diff --git a/clang/test/Driver/darwin-sanitizer-ld.c b/clang/test/Driver/darwin-sanitizer-ld.c
index 14b16156614..1aef0caf9f0 100644
--- a/clang/test/Driver/darwin-sanitizer-ld.c
+++ b/clang/test/Driver/darwin-sanitizer-ld.c
@@ -9,6 +9,14 @@
// CHECK-ASAN: libclang_rt.asan_osx_dynamic.dylib"
// RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
+// RUN: -fsanitize=address -mios-simulator-version-min=7.0 %s -o %t.o 2>&1 \
+// RUN: | FileCheck --check-prefix=CHECK-ASAN-IOSSIM %s
+
+// CHECK-ASAN-IOSSIM: "{{.*}}ld{{(.exe)?}}"
+// CHECK-ASAN-IOSSIM: stdc++
+// CHECK-ASAN-IOSSIM: libclang_rt.asan_iossim_dynamic.dylib"
+
+// RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \
// RUN: -fPIC -shared -fsanitize=address %s -o %t.so 2>&1 \
// RUN: | FileCheck --check-prefix=CHECK-DYN-ASAN %s
OpenPOWER on IntegriCloud