diff options
| author | Alexander Potapenko <glider@google.com> | 2013-11-15 16:07:44 +0000 |
|---|---|---|
| committer | Alexander Potapenko <glider@google.com> | 2013-11-15 16:07:44 +0000 |
| commit | 868cca96c43bcff67968fea67cb2e60fced2a136 (patch) | |
| tree | 380aa48a0664888513d810bdf83dbb907f81a880 /clang | |
| parent | 71ce0cab02c005b8f12f776b21897199e3fb4fed (diff) | |
| download | bcm5719-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.cpp | 13 | ||||
| -rw-r--r-- | clang/test/Driver/darwin-sanitizer-ld.c | 8 |
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 |

