]> granicus.if.org Git - clang/commitdiff
[ASan] Link with libclang_rt.asan_iossim_dynamic.dylib when targeting the iOS simulator.
authorAlexander Potapenko <glider@google.com>
Fri, 15 Nov 2013 16:07:44 +0000 (16:07 +0000)
committerAlexander Potapenko <glider@google.com>
Fri, 15 Nov 2013 16:07:44 +0000 (16:07 +0000)
Add a test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194820 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains.cpp
test/Driver/darwin-sanitizer-ld.c

index acd0bbd96ce2492f0c90890e1145f33c5148481c..7dc73422113c961c791f119105058a8b2ba58f8c 100644 (file)
@@ -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);
+        }
+      }
     }
   }
 
index 14b161566148bb4c3ec1455594011c410d552d22..1aef0caf9f093a1a2e0050f7fbf5d13b0c4c6738 100644 (file)
@@ -8,6 +8,14 @@
 // CHECK-ASAN: stdc++
 // 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