1 // Test sanitizers ld flags. 2 3 // Match all sanitizer related libclang_rt, we are not interested in 4 // libclang_rt.builtins, libclang_rt.osx, libclang_rt.ios, libclang_rt.watchos 5 // etc. 6 // 7 // If we need to add sanitizer with name starting with excluded laters, e.g. 8 // `bsan`, we can extend expression like this: `([^iow]|b[^u])`. 9 // 10 // DEFINE: %{filecheck} = FileCheck %s --implicit-check-not="libclang_rt.{{([^biow])}}" 11 12 // RUN: %clang -### %s 2>&1 \ 13 // RUN: --target=i386-unknown-linux -fuse-ld=ld -fsanitize=address \ 14 // RUN: -resource-dir=%S/Inputs/resource_dir \ 15 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 16 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-LINUX 17 // 18 // CHECK-ASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 19 // CHECK-ASAN-LINUX-NOT: "-lc" 20 // CHECK-ASAN-LINUX: "--whole-archive" "{{.*}}libclang_rt.asan_static.a" "--no-whole-archive" 21 // CHECK-ASAN-LINUX: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive" 22 // CHECK-ASAN-LINUX-NOT: "--export-dynamic" 23 // CHECK-ASAN-LINUX: "--dynamic-list={{.*}}libclang_rt.asan.a.syms" 24 // CHECK-ASAN-LINUX-NOT: "--export-dynamic" 25 // CHECK-ASAN-LINUX: "-lpthread" 26 // CHECK-ASAN-LINUX: "-lrt" 27 // CHECK-ASAN-LINUX: "-ldl" 28 // CHECK-ASAN-LINUX: "-lresolv" 29 30 // RUN: %clang -fsanitize=address -fno-sanitize-link-runtime -### %s 2>&1 \ 31 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 32 // RUN: -resource-dir=%S/Inputs/resource_dir \ 33 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 34 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-NO-LINK-RUNTIME-LINUX 35 // 36 // CHECK-ASAN-NO-LINK-RUNTIME-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 37 38 // RUN: %clang -fsanitize=address -fno-sanitize-link-runtime -### %s 2>&1 \ 39 // RUN: --target=arm64e-apple-macosx -fuse-ld=ld \ 40 // RUN: -resource-dir=%S/Inputs/resource_dir \ 41 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 42 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-NO-LINK-RUNTIME-DARWIN 43 // 44 // CHECK-ASAN-NO-LINK-RUNTIME-DARWIN: "{{.*}}ld{{(.exe)?}}" 45 46 // RUN: %clang -fsanitize=address -### %s 2>&1 \ 47 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 48 // RUN: -resource-dir=%S/Inputs/resource_dir \ 49 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 50 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-EXECUTABLE-LINUX 51 // 52 // CHECK-ASAN-EXECUTABLE-LINUX: "--whole-archive" "{{.*}}libclang_rt.asan_static.a" "--no-whole-archive" 53 // CHECK-ASAN-EXECUTABLE-LINUX: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive" 54 // CHECK-ASAN-EXECUTABLE-LINUX: "--dynamic-list={{.*}}libclang_rt.asan.a.syms" 55 56 // RUN: %clang -fsanitize=address -shared -### %s 2>&1 \ 57 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 58 // RUN: -resource-dir=%S/Inputs/resource_dir \ 59 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 60 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-SHARED-LINUX 61 // 62 // CHECK-ASAN-SHARED-LINUX: libclang_rt.asan_static 63 64 // RUN: %clang -### %s 2>&1 \ 65 // RUN: --target=i386-unknown-linux -fuse-ld=ld -fsanitize=address -shared-libsan \ 66 // RUN: -resource-dir=%S/Inputs/resource_dir \ 67 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 68 // RUN: | %{filecheck} --check-prefix=CHECK-SHARED-ASAN-LINUX 69 70 // RUN: %clang -### %s 2>&1 \ 71 // RUN: --target=i386-unknown-linux -fuse-ld=ld -fsanitize=address -shared-libasan \ 72 // RUN: -resource-dir=%S/Inputs/resource_dir \ 73 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 74 // RUN: | %{filecheck} --check-prefix=CHECK-SHARED-ASAN-LINUX 75 76 // RUN: %clang -### %s 2>&1 \ 77 // RUN: --target=i386-unknown-linux -fuse-ld=ld -fsanitize=address \ 78 // RUN: -shared-libsan -static-libsan -shared-libasan \ 79 // RUN: -resource-dir=%S/Inputs/resource_dir \ 80 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 81 // RUN: | %{filecheck} --check-prefix=CHECK-SHARED-ASAN-LINUX 82 // 83 // CHECK-SHARED-ASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 84 // CHECK-SHARED-ASAN-LINUX-NOT: "-lc" 85 // CHECK-SHARED-ASAN-LINUX: libclang_rt.asan.so" 86 // CHECK-SHARED-ASAN-LINUX: "--whole-archive" "{{.*}}libclang_rt.asan-preinit.a" "--no-whole-archive" 87 // CHECK-SHARED-ASAN-LINUX: "--whole-archive" "{{.*}}libclang_rt.asan_static.a" "--no-whole-archive" 88 // CHECK-SHARED-ASAN-LINUX-NOT: "-lpthread" 89 // CHECK-SHARED-ASAN-LINUX-NOT: "-lrt" 90 // CHECK-SHARED-ASAN-LINUX-NOT: "-ldl" 91 // CHECK-SHARED-ASAN-LINUX-NOT: "-lresolv" 92 // CHECK-SHARED-ASAN-LINUX-NOT: "--export-dynamic" 93 // CHECK-SHARED-ASAN-LINUX-NOT: "--dynamic-list" 94 95 // RUN: %clang -### %s -o %t.so -shared 2>&1 \ 96 // RUN: --target=i386-unknown-linux -fuse-ld=ld -fsanitize=address -shared-libsan \ 97 // RUN: -resource-dir=%S/Inputs/resource_dir \ 98 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 99 // RUN: | %{filecheck} --check-prefix=CHECK-DSO-SHARED-ASAN-LINUX 100 // 101 // CHECK-DSO-SHARED-ASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 102 // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-lc" 103 // CHECK-DSO-SHARED-ASAN-LINUX: libclang_rt.asan.so" 104 // CHECK-DSO-SHARED-ASAN-LINUX: "--whole-archive" "{{.*}}libclang_rt.asan_static.a" "--no-whole-archive" 105 // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-lpthread" 106 // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-lrt" 107 // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-ldl" 108 // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-lresolv" 109 // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "--export-dynamic" 110 // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "--dynamic-list" 111 112 // RUN: %clang -### %s 2>&1 \ 113 // RUN: --target=i386-unknown-freebsd -fuse-ld=ld -fsanitize=address \ 114 // RUN: -resource-dir=%S/Inputs/resource_dir \ 115 // RUN: --sysroot=%S/Inputs/basic_freebsd_tree \ 116 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-FREEBSD 117 // 118 // CHECK-ASAN-FREEBSD: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 119 // CHECK-ASAN-FREEBSD-NOT: "-lc" 120 // CHECK-ASAN-FREEBSD: freebsd{{/|\\+}}libclang_rt.asan_static.a" 121 // CHECK-ASAN-FREEBSD: freebsd{{/|\\+}}libclang_rt.asan.a" 122 // CHECK-ASAN-FREEBSD-NOT: "--dynamic-list" 123 // CHECK-ASAN-FREEBSD: "--export-dynamic" 124 // CHECK-ASAN-FREEBSD: "-lpthread" 125 // CHECK-ASAN-FREEBSD: "-lrt" 126 127 // RUN: %clang -### %s 2>&1 \ 128 // RUN: --target=i386-unknown-freebsd -fuse-ld=ld -fsanitize=address \ 129 // RUN: -resource-dir=%S/Inputs/resource_dir \ 130 // RUN: --sysroot=%S/Inputs/basic_freebsd_tree \ 131 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-FREEBSD-LDL 132 // 133 // CHECK-ASAN-FREEBSD-LDL: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 134 // CHECK-ASAN-FREEBSD-LDL-NOT: "-ldl" 135 // CHECK-ASAN-FREEBSD-LDL: "--whole-archive" "{{.*}}libclang_rt.asan_static.a" "--no-whole-archive" 136 // CHECK-ASAN-FREEBSD-LDL: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive" 137 138 // RUN: %clangxx -### %s 2>&1 \ 139 // RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform -fsanitize=address \ 140 // RUN: -resource-dir=%S/Inputs/empty_resource_dir \ 141 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 142 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-LINUX-CXX 143 144 // RUN: %clangxx -### %s 2>&1 \ 145 // RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform -fsanitize=address \ 146 // RUN: -resource-dir=%S/Inputs/empty_resource_dir \ 147 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 148 // RUN: -fsanitize-link-c++-runtime \ 149 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-LINUX-CXX 150 151 // CHECK-ASAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 152 // CHECK-ASAN-LINUX-CXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive" 153 // CHECK-ASAN-LINUX-CXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan_cxx.a" "--no-whole-archive" 154 // CHECK-ASAN-LINUX-CXX-NOT: "--dynamic-list" 155 // CHECK-ASAN-LINUX-CXX-SAME: "--export-dynamic" 156 // CHECK-ASAN-LINUX-CXX-SAME: "-lstdc++" 157 // CHECK-ASAN-LINUX-CXX-SAME: "-lpthread" 158 // CHECK-ASAN-LINUX-CXX-SAME: "-lrt" 159 // CHECK-ASAN-LINUX-CXX-SAME: "-ldl" 160 // CHECK-ASAN-LINUX-CXX-SAME: "-lresolv" 161 // CHECK-ASAN-LINUX-CXX-SAME: "-lc" 162 163 // RUN: %clang -### %s 2>&1 \ 164 // RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform -fsanitize=address \ 165 // RUN: -resource-dir=%S/Inputs/empty_resource_dir \ 166 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 167 // RUN: -fno-sanitize-link-c++-runtime \ 168 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-LINUX-CNOCXX 169 170 // CHECK-ASAN-LINUX-CNOCXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 171 // CHECK-ASAN-LINUX-CNOCXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive" 172 // CHECK-ASAN-LINUX-CNOCXX-SAME: "--export-dynamic" 173 // CHECK-ASAN-LINUX-CNOCXX-NOT: stdc++ 174 // CHECK-ASAN-LINUX-CNOCXX-SAME: "-lpthread" 175 // CHECK-ASAN-LINUX-CNOCXX-SAME: "-lrt" 176 // CHECK-ASAN-LINUX-CNOCXX-SAME: "-ldl" 177 // CHECK-ASAN-LINUX-CNOCXX-SAME: "-lresolv" 178 // CHECK-ASAN-LINUX-CNOCXX-SAME: "-lc" 179 180 // RUN: %clangxx -### %s 2>&1 \ 181 // RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform -fsanitize=address \ 182 // RUN: -resource-dir=%S/Inputs/empty_resource_dir \ 183 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 184 // RUN: -fno-sanitize-link-c++-runtime \ 185 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-LINUX-NOCXX 186 187 // CHECK-ASAN-LINUX-NOCXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 188 // CHECK-ASAN-LINUX-NOCXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive" 189 // CHECK-ASAN-LINUX-NOCXX-SAME: "--export-dynamic" 190 // CHECK-ASAN-LINUX-NOCXX-SAME: "-lstdc++" 191 // CHECK-ASAN-LINUX-NOCXX-SAME: "-lpthread" 192 // CHECK-ASAN-LINUX-NOCXX-SAME: "-lrt" 193 // CHECK-ASAN-LINUX-NOCXX-SAME: "-ldl" 194 // CHECK-ASAN-LINUX-NOCXX-SAME: "-lresolv" 195 // CHECK-ASAN-LINUX-NOCXX-SAME: "-lc" 196 197 // RUN: %clangxx -### %s 2>&1 \ 198 // RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform -fsanitize=address \ 199 // RUN: -resource-dir=%S/Inputs/empty_resource_dir \ 200 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 201 // RUN: -nostdlib++ \ 202 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-LINUX-NOSTDCXX 203 204 // CHECK-ASAN-LINUX-NOSTDCXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 205 // CHECK-ASAN-LINUX-NOSTDCXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive" 206 // CHECK-ASAN-LINUX-NOSTDCXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan_cxx.a" "--no-whole-archive" 207 // CHECK-ASAN-LINUX-NOSTDCXX-SAME: "--export-dynamic" 208 // CHECK-ASAN-LINUX-NOSTDCXX-SAME: "-lpthread" 209 // CHECK-ASAN-LINUX-NOSTDCXX-SAME: "-lrt" 210 // CHECK-ASAN-LINUX-NOSTDCXX-SAME: "-ldl" 211 // CHECK-ASAN-LINUX-NOSTDCXX-SAME: "-lresolv" 212 // CHECK-ASAN-LINUX-NOSTDCXX-SAME: "-lc" 213 214 // RUN: %clang -### %s -o /dev/null -fsanitize=address \ 215 // RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform \ 216 // RUN: -resource-dir=%S/Inputs/resource_dir \ 217 // RUN: --sysroot=%S/Inputs/basic_linux_tree -lstdc++ -static 2>&1 \ 218 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-LINUX-CXX-STATIC 219 // 220 // CHECK-ASAN-LINUX-CXX-STATIC: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 221 // CHECK-ASAN-LINUX-CXX-STATIC-NOT: stdc++ 222 // CHECK-ASAN-LINUX-CXX-STATIC: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive" 223 // CHECK-ASAN-LINUX-CXX-STATIC: "--dynamic-list={{.*}}libclang_rt.asan.a.syms" 224 // CHECK-ASAN-LINUX-CXX-STATIC: stdc++ 225 226 // RUN: %clang -### %s 2>&1 \ 227 // RUN: --target=arm-linux-gnueabi -fuse-ld=ld -fsanitize=address \ 228 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 229 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-ARM 230 // 231 // CHECK-ASAN-ARM: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 232 // CHECK-ASAN-ARM-NOT: "-lc" 233 // CHECK-ASAN-ARM: libclang_rt.asan_static.a" 234 // CHECK-ASAN-ARM: libclang_rt.asan.a" 235 // 236 // RUN: %clang -### %s 2>&1 \ 237 // RUN: --target=armv7l-linux-gnueabi -fuse-ld=ld -fsanitize=address \ 238 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 239 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-ARMv7 240 // 241 // CHECK-ASAN-ARMv7: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 242 // CHECK-ASAN-ARMv7-NOT: "-lc" 243 // CHECK-ASAN-ARMv7: libclang_rt.asan_static.a" 244 // CHECK-ASAN-ARMv7: libclang_rt.asan.a" 245 246 // RUN: %clang -### %s 2>&1 \ 247 // RUN: --target=arm-linux-androideabi -fuse-ld=ld -fsanitize=address \ 248 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 249 // RUN: -resource-dir=%S/Inputs/resource_dir \ 250 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-ANDROID 251 // 252 // CHECK-ASAN-ANDROID: "{{(.*[^.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 253 // CHECK-ASAN-ANDROID: "-pie" 254 // CHECK-ASAN-ANDROID-NOT: "-lc" 255 // CHECK-ASAN-ANDROID-NOT: "-lpthread" 256 // CHECK-ASAN-ANDROID-NOT: "-lresolv" 257 // CHECK-ASAN-ANDROID: libclang_rt.asan.so" 258 // CHECK-ASAN-ANDROID: libclang_rt.asan_static.a" 259 // CHECK-ASAN-ANDROID-NOT: "-lpthread" 260 // CHECK-ASAN-ANDROID-NOT: "-lresolv" 261 262 // RUN: %clang -### %s 2>&1 \ 263 // RUN: --target=arm-linux-androideabi -fuse-ld=ld -fsanitize=address \ 264 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 265 // RUN: -resource-dir=%S/Inputs/resource_dir \ 266 // RUN: -static-libsan \ 267 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-ANDROID-STATICLIBASAN 268 // 269 // RUN: %clang -### %s 2>&1 \ 270 // RUN: --target=arm-linux-androideabi -fuse-ld=ld -fsanitize=address \ 271 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 272 // RUN: -resource-dir=%S/Inputs/resource_dir \ 273 // RUN: -static-libasan \ 274 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-ANDROID-STATICLIBASAN 275 // 276 // CHECK-ASAN-ANDROID-STATICLIBASAN: "{{(.*[^.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 277 // CHECK-ASAN-ANDROID-STATICLIBASAN: libclang_rt.asan_static.a" 278 // CHECK-ASAN-ANDROID-STATICLIBASAN: libclang_rt.asan.a" 279 // CHECK-ASAN-ANDROID-STATICLIBASAN-NOT: "-lpthread" 280 // CHECK-ASAN-ANDROID-STATICLIBASAN-NOT: "-lrt" 281 // CHECK-ASAN-ANDROID-STATICLIBASAN-NOT: "-lresolv" 282 283 // RUN: %clang -### %s 2>&1 \ 284 // RUN: --target=arm-linux-androideabi -fuse-ld=ld -fsanitize=undefined \ 285 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 286 // RUN: -resource-dir=%S/Inputs/resource_dir \ 287 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-ANDROID 288 // 289 // CHECK-UBSAN-ANDROID: "{{(.*[^.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 290 // CHECK-UBSAN-ANDROID: "-pie" 291 // CHECK-UBSAN-ANDROID-NOT: "-lc" 292 // CHECK-UBSAN-ANDROID-NOT: "-lpthread" 293 // CHECK-UBSAN-ANDROID-NOT: "-lresolv" 294 // CHECK-UBSAN-ANDROID: libclang_rt.ubsan_standalone.so" 295 // CHECK-UBSAN-ANDROID-NOT: "-lpthread" 296 // CHECK-UBSAN-ANDROID-NOT: "-lresolv" 297 298 // RUN: %clang -### %s 2>&1 \ 299 // RUN: --target=arm-linux-androideabi -fuse-ld=ld -fsanitize=undefined \ 300 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 301 // RUN: -resource-dir=%S/Inputs/resource_dir \ 302 // RUN: -static-libsan \ 303 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-ANDROID-STATICLIBASAN 304 // 305 // CHECK-UBSAN-ANDROID-STATICLIBASAN: "{{(.*[^.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 306 // CHECK-UBSAN-ANDROID-STATICLIBASAN: libclang_rt.ubsan_standalone.a" 307 // CHECK-UBSAN-ANDROID-STATICLIBASAN-NOT: "-lpthread" 308 // CHECK-UBSAN-ANDROID-STATICLIBASAN-NOT: "-lrt" 309 // CHECK-UBSAN-ANDROID-STATICLIBASAN-NOT: "-lresolv" 310 311 // 312 // RUN: %clang -### %s 2>&1 \ 313 // RUN: --target=i686-linux-android -fuse-ld=ld -fsanitize=address \ 314 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 315 // RUN: -resource-dir=%S/Inputs/resource_dir \ 316 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-ANDROID-X86 317 // 318 // CHECK-ASAN-ANDROID-X86: "{{(.*[^.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 319 // CHECK-ASAN-ANDROID-X86: "-pie" 320 // CHECK-ASAN-ANDROID-X86-NOT: "-lc" 321 // CHECK-ASAN-ANDROID-X86-NOT: "-lpthread" 322 // CHECK-ASAN-ANDROID-X86-NOT: "-lresolv" 323 // CHECK-ASAN-ANDROID-X86: libclang_rt.asan.so" 324 // CHECK-ASAN-ANDROID-X86: libclang_rt.asan_static.a" 325 // CHECK-ASAN-ANDROID-X86-NOT: "-lpthread" 326 // CHECK-ASAN-ANDROID-X86-NOT: "-lresolv" 327 // 328 // RUN: %clang -### %s 2>&1 \ 329 // RUN: --target=arm-linux-androideabi -fsanitize=address \ 330 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 331 // RUN: -shared-libsan \ 332 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-ANDROID-SHARED-LIBASAN 333 // 334 // CHECK-ASAN-ANDROID-SHARED-LIBASAN-NOT: argument unused during compilation: '-shared-libsan' 335 // CHECK-ASAN-ANDROID-SHARED-LIBASAN: libclang_rt.asan{{.*}}.so" 336 // CHECK-ASAN-ANDROID-SHARED-LIBASAN: libclang_rt.asan_static{{.*}}.a" 337 // 338 // RUN: %clang -### %s 2>&1 \ 339 // RUN: --target=arm-linux-androideabi -fuse-ld=ld -fsanitize=address \ 340 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 341 // RUN: -resource-dir=%S/Inputs/resource_dir \ 342 // RUN: -shared \ 343 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-ANDROID-SHARED 344 // 345 // CHECK-ASAN-ANDROID-SHARED: "{{(.*[^.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 346 // CHECK-ASAN-ANDROID-SHARED-NOT: "-lc" 347 // CHECK-ASAN-ANDROID-SHARED: libclang_rt.asan.so" 348 // CHECK-ASAN-ANDROID-SHARED: libclang_rt.asan_static.a" 349 // CHECK-ASAN-ANDROID-SHARED-NOT: "-lpthread" 350 // CHECK-ASAN-ANDROID-SHARED-NOT: "-lresolv" 351 352 353 // RUN: %clangxx %s -### -o %t.o 2>&1 \ 354 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld -stdlib=platform -lstdc++ \ 355 // RUN: -fsanitize=type \ 356 // RUN: -resource-dir=%S/Inputs/resource_dir \ 357 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 358 // RUN: | %{filecheck} --check-prefix=CHECK-TYSAN-LINUX-CXX 359 // 360 // CHECK-TYSAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 361 // CHECK-TYSAN-LINUX-CXX-NOT: stdc++ 362 // CHECK-TYSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.tysan{{[^.]*}}.a" "--no-whole-archive" 363 // CHECK-TYSAN-LINUX-CXX: stdc++ 364 365 // RUN: %clangxx -fsanitize=type -### %s 2>&1 \ 366 // RUN: -mmacosx-version-min=10.6 \ 367 // RUN: --target=x86_64-apple-darwin13.4.0 -fuse-ld=ld -stdlib=platform \ 368 // RUN: -resource-dir=%S/Inputs/resource_dir \ 369 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 370 // RUN: | %{filecheck} --check-prefix=CHECK-TYSAN-DARWIN-CXX 371 // CHECK-TYSAN-DARWIN-CXX: "{{.*}}ld{{(.exe)?}}" 372 // CHECK-TYSAN-DARWIN-CXX: libclang_rt.tysan_osx_dynamic.dylib 373 // CHECK-TYSAN-DARWIN-CXX-NOT: -lc++abi 374 375 // RUN: %clangxx -### %s 2>&1 \ 376 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld -stdlib=platform -lstdc++ \ 377 // RUN: -fsanitize=thread \ 378 // RUN: -resource-dir=%S/Inputs/resource_dir \ 379 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 380 // RUN: | %{filecheck} --check-prefix=CHECK-TSAN-LINUX-CXX 381 // 382 // CHECK-TSAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 383 // CHECK-TSAN-LINUX-CXX-NOT: stdc++ 384 // CHECK-TSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.tsan.a" "--no-whole-archive" 385 // CHECK-TSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.tsan.a.syms" 386 // CHECK-TSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.tsan_cxx.a" "--no-whole-archive" 387 // CHECK-TSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.tsan_cxx.a.syms" 388 // CHECK-TSAN-LINUX-CXX-NOT: "--export-dynamic" 389 // CHECK-TSAN-LINUX-CXX: stdc++ 390 // CHECK-TSAN-LINUX-CXX: "-lpthread" 391 // CHECK-TSAN-LINUX-CXX: "-lrt" 392 // CHECK-TSAN-LINUX-CXX: "-ldl" 393 // CHECK-TSAN-LINUX-CXX: "-lresolv" 394 395 // RUN: %clang -fsanitize=thread -fno-sanitize-link-runtime -### %s 2>&1 \ 396 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 397 // RUN: -resource-dir=%S/Inputs/resource_dir \ 398 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 399 // RUN: | %{filecheck} --check-prefix=CHECK-TSAN-NO-LINK-RUNTIME-LINUX 400 // 401 // CHECK-TSAN-NO-LINK-RUNTIME-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 402 403 // RUN: not %clang -fsanitize=thread -fno-sanitize-link-runtime -### %s 2>&1 \ 404 // RUN: --target=arm64e-apple-ios -fuse-ld=ld \ 405 // RUN: -resource-dir=%S/Inputs/resource_dir \ 406 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 407 // RUN: | %{filecheck} --check-prefix=CHECK-TSAN-NO-LINK-RUNTIME-DARWIN 408 // 409 // CHECK-TSAN-NO-LINK-RUNTIME-DARWIN: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 410 411 // RUN: %clangxx -### %s 2>&1 \ 412 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld -stdlib=platform -lstdc++ \ 413 // RUN: -fsanitize=memory \ 414 // RUN: -resource-dir=%S/Inputs/resource_dir \ 415 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 416 // RUN: | %{filecheck} --check-prefix=CHECK-MSAN-LINUX-CXX 417 // 418 // CHECK-MSAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 419 // CHECK-MSAN-LINUX-CXX-NOT: stdc++ 420 // CHECK-MSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.msan.a" "--no-whole-archive" 421 // CHECK-MSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.msan.a.syms" 422 // CHECK-MSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.msan_cxx.a" "--no-whole-archive" 423 // CHECK-MSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.msan_cxx.a.syms" 424 // CHECK-MSAN-LINUX-CXX-NOT: "--export-dynamic" 425 // CHECK-MSAN-LINUX-CXX: stdc++ 426 // CHECK-MSAN-LINUX-CXX: "-lpthread" 427 // CHECK-MSAN-LINUX-CXX: "-lrt" 428 // CHECK-MSAN-LINUX-CXX: "-ldl" 429 // CHECK-MSAN-LINUX-CXX: "-lresolv" 430 431 // RUN: %clang -fsanitize=memory -fno-sanitize-link-runtime -### %s 2>&1 \ 432 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 433 // RUN: -resource-dir=%S/Inputs/resource_dir \ 434 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 435 // RUN: | %{filecheck} --check-prefix=CHECK-MSAN-NO-LINK-RUNTIME-LINUX 436 // 437 // CHECK-MSAN-NO-LINK-RUNTIME-LINUX: "{{.*}}ld{{(.exe)?}}" 438 439 // RUN: %clang -fsanitize=undefined -### %s 2>&1 \ 440 // RUN: --target=x86_64-unknown-linux-gnux32 -fuse-ld=ld \ 441 // RUN: -resource-dir=%S/Inputs/resource_dir \ 442 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 443 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-LINUX 444 445 // RUN: %clang -fsanitize=float-divide-by-zero -### %s 2>&1 \ 446 // RUN: --target=x86_64-unknown-linux-gnux32 -fuse-ld=ld \ 447 // RUN: -resource-dir=%S/Inputs/resource_dir \ 448 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 449 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-LINUX 450 451 // RUN: %clang -fsanitize=undefined -### %s 2>&1 \ 452 // RUN: --target=x86_64-unknown-linux-gnux32 -fuse-ld=ld \ 453 // RUN: -resource-dir=%S/Inputs/resource_dir \ 454 // RUN: --sysroot=%S/Inputs/multilib_64bit_linux_tree \ 455 // RUN: -static-libsan \ 456 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-LINUX 457 458 // CHECK-UBSAN-LINUX: "{{.*}}ld{{(.exe)?}}" 459 // CHECK-UBSAN-LINUX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone.a" "--no-whole-archive" 460 // CHECK-UBSAN-LINUX-NOT: "-lstdc++" 461 // CHECK-UBSAN-LINUX: "-lpthread" 462 // CHECK-UBSAN-LINUX: "-lresolv" 463 464 // RUN: %clang -fsanitize=undefined -fno-sanitize-link-runtime -### %s 2>&1 \ 465 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 466 // RUN: -resource-dir=%S/Inputs/resource_dir \ 467 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 468 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-NO-LINK-RUNTIME-LINUX 469 // 470 // CHECK-UBSAN-NO-LINK-RUNTIME-LINUX: "{{.*}}ld{{(.exe)?}}" 471 472 // RUN: %clang -fsanitize=undefined -fno-sanitize-link-runtime -### %s 2>&1 \ 473 // RUN: --target=x86_64-apple-darwin -fuse-ld=ld \ 474 // RUN: -resource-dir=%S/Inputs/resource_dir \ 475 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 476 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-NO-LINK-RUNTIME-DARWIN 477 // 478 // CHECK-UBSAN-NO-LINK-RUNTIME-DARWIN: "{{.*}}ld{{(.exe)?}}" 479 480 // RUN: %clang -fsanitize=fuzzer -fno-sanitize-link-runtime -### %s 2>&1 \ 481 // RUN: --target=arm64e-apple-watchos -fuse-ld=ld \ 482 // RUN: -resource-dir=%S/Inputs/resource_dir \ 483 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 484 // RUN: | %{filecheck} --check-prefix=CHECK-FUZZER-NO-LINK-RUNTIME-DARWIN 485 // 486 // CHECK-FUZZER-NO-LINK-RUNTIME-DARWIN: "{{.*}}ld{{(.exe)?}}" 487 488 // RUN: %clang -fsanitize=undefined -### %s 2>&1 \ 489 // RUN: --target=i386-unknown-linux -fuse-ld=ld \ 490 // RUN: -resource-dir=%S/Inputs/resource_dir \ 491 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 492 // RUN: -shared-libsan \ 493 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-LINUX-SHAREDLIBASAN 494 495 // RUN: %clang -fsanitize=undefined -### %s 2>&1 \ 496 // RUN: --target=i386-unknown-linux -fuse-ld=ld \ 497 // RUN: -resource-dir=%S/Inputs/resource_dir \ 498 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 499 // RUN: -static-libsan -shared-libsan \ 500 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-LINUX-SHAREDLIBASAN 501 502 // RUN: %clang -fsanitize=undefined -### %s 2>&1 \ 503 // RUN: --target=i386-unknown-linux -fuse-ld=ld \ 504 // RUN: -resource-dir=%S/Inputs/resource_dir \ 505 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 506 // RUN: -shared -shared-libsan \ 507 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-LINUX-SHAREDLIBASAN 508 509 // CHECK-UBSAN-LINUX-SHAREDLIBASAN: "{{.*}}ld{{(.exe)?}}" 510 // CHECK-UBSAN-LINUX-SHAREDLIBASAN: "{{.*}}libclang_rt.ubsan_standalone.so{{.*}}" 511 512 // RUN: %clang -fsanitize=undefined -fsanitize-link-c++-runtime -### %s 2>&1 \ 513 // RUN: --target=i386-unknown-linux \ 514 // RUN: -resource-dir=%S/Inputs/resource_dir \ 515 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 516 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-LINUX-LINK-CXX 517 // CHECK-UBSAN-LINUX-LINK-CXX-NOT: "-lstdc++" 518 // CHECK-UBSAN-LINUX-LINK-CXX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone_cxx.a" "--no-whole-archive" 519 // CHECK-UBSAN-LINUX-LINK-CXX-NOT: "-lstdc++" 520 521 // RUN: %clangxx -fsanitize=undefined -### %s 2>&1 \ 522 // RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform \ 523 // RUN: -resource-dir=%S/Inputs/resource_dir \ 524 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 525 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-LINUX-CXX 526 // CHECK-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}" 527 // CHECK-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone.a" "--no-whole-archive" 528 // CHECK-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone_cxx.a" "--no-whole-archive" 529 // CHECK-UBSAN-LINUX-CXX: "-lstdc++" 530 // CHECK-UBSAN-LINUX-CXX: "-lpthread" 531 // CHECK-UBSAN-LINUX-CXX: "-lresolv" 532 533 // RUN: %clang -fsanitize=undefined -fsanitize-minimal-runtime -### %s 2>&1 \ 534 // RUN: --target=i386-unknown-linux -fuse-ld=ld \ 535 // RUN: -resource-dir=%S/Inputs/resource_dir \ 536 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 537 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-MINIMAL-LINUX 538 // CHECK-UBSAN-MINIMAL-LINUX: "{{.*}}ld{{(.exe)?}}" 539 // CHECK-UBSAN-MINIMAL-LINUX: "--whole-archive" "{{.*}}libclang_rt.ubsan_minimal.a" "--no-whole-archive" 540 // CHECK-UBSAN-MINIMAL-LINUX: "-lpthread" 541 // CHECK-UBSAN-MINIMAL-LINUX: "-lresolv" 542 543 // RUN: %clang -fsanitize=undefined -fsanitize-minimal-runtime -### %s 2>&1 \ 544 // RUN: --target=x86_64-apple-darwin -fuse-ld=ld \ 545 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 546 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-MINIMAL-DARWIN 547 // CHECK-UBSAN-MINIMAL-DARWIN: "{{.*}}ld{{(.exe)?}}" 548 // CHECK-UBSAN-MINIMAL-DARWIN: "{{.*}}libclang_rt.ubsan_minimal_osx_dynamic.dylib" 549 550 // RUN: not %clang -fsanitize=undefined -### %s 2>&1 \ 551 // RUN: --target=x86_64-apple-darwin -fuse-ld=ld -static-libsan \ 552 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 553 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-STATIC-DARWIN 554 // CHECK-UBSAN-STATIC-DARWIN: {{.*}}error: static UndefinedBehaviorSanitizer runtime is not supported on darwin 555 556 // RUN: not %clang -fsanitize=address -### %s 2>&1 \ 557 // RUN: --target=x86_64-apple-darwin -fuse-ld=ld -static-libsan \ 558 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 559 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-STATIC-DARWIN 560 // CHECK-ASAN-STATIC-DARWIN: {{.*}}error: static AddressSanitizer runtime is not supported on darwin 561 562 // RUN: not %clang -fsanitize=thread -### %s 2>&1 \ 563 // RUN: --target=x86_64-apple-darwin -fuse-ld=ld -static-libsan \ 564 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 565 // RUN: | %{filecheck} --check-prefix=CHECK-TSAN-STATIC-DARWIN 566 // CHECK-TSAN-STATIC-DARWIN: {{.*}}error: static ThreadSanitizer runtime is not supported on darwin 567 568 // RUN: %clang -fsanitize=address,undefined -### %s 2>&1 \ 569 // RUN: --target=i386-unknown-linux -fuse-ld=ld \ 570 // RUN: -resource-dir=%S/Inputs/resource_dir \ 571 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 572 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-UBSAN-LINUX 573 // CHECK-ASAN-UBSAN-LINUX: "{{.*}}ld{{(.exe)?}}" 574 // CHECK-ASAN-UBSAN-LINUX: "--whole-archive" "{{.*}}libclang_rt.asan_static.a" "--no-whole-archive" 575 // CHECK-ASAN-UBSAN-LINUX: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive" 576 // CHECK-ASAN-UBSAN-LINUX: "--dynamic-list={{.*}}libclang_rt.asan.a.syms" 577 // CHECK-ASAN-UBSAN-LINUX-NOT: "-lstdc++" 578 // CHECK-ASAN-UBSAN-LINUX: "-lpthread" 579 // CHECK-ASAN-UBSAN-LINUX: "-lresolv" 580 581 // RUN: %clangxx -fsanitize=address,undefined -### %s 2>&1 \ 582 // RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform \ 583 // RUN: -resource-dir=%S/Inputs/resource_dir \ 584 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 585 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-UBSAN-LINUX-CXX 586 // CHECK-ASAN-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}" 587 // CHECK-ASAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.asan_static.a" "--no-whole-archive" 588 // CHECK-ASAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive" 589 // CHECK-ASAN-UBSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.asan.a.syms" 590 // CHECK-ASAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.asan_cxx.a" "--no-whole-archive" 591 // CHECK-ASAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone_cxx.a" "--no-whole-archive" 592 // CHECK-ASAN-UBSAN-LINUX-CXX: "-lstdc++" 593 // CHECK-ASAN-UBSAN-LINUX-CXX: "-lpthread" 594 // CHECK-ASAN-UBSAN-LINUX-CXX: "-lresolv" 595 596 // RUN: %clangxx -fsanitize=address,undefined -fno-sanitize=vptr -### %s 2>&1 \ 597 // RUN: --target=i386-unknown-linux -fuse-ld=ld -stdlib=platform \ 598 // RUN: -resource-dir=%S/Inputs/resource_dir \ 599 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 600 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-UBSAN-NOVPTR-LINUX-CXX 601 // CHECK-ASAN-UBSAN-NOVPTR-LINUX-CXX: "{{.*}}ld{{(.exe)?}}" 602 // CHECK-ASAN-UBSAN-NOVPTR-LINUX-CXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan_static.a" "--no-whole-archive" 603 // CHECK-ASAN-UBSAN-NOVPTR-LINUX-CXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan.a" "--no-whole-archive" 604 // CHECK-ASAN-UBSAN-NOVPTR-LINUX-CXX-SAME: "--dynamic-list={{.*}}libclang_rt.asan.a.syms" 605 // CHECK-ASAN-UBSAN-NOVPTR-LINUX-CXX-SAME: "--whole-archive" "{{.*}}libclang_rt.asan_cxx.a" "--no-whole-archive" 606 // CHECK-ASAN-UBSAN-NOVPTR-LINUX-CXX-SAME: "-lstdc++" 607 // CHECK-ASAN-UBSAN-NOVPTR-LINUX-CXX-SAME: "-lpthread" 608 // CHECK-ASAN-UBSAN-NOVPTR-LINUX-CXX-SAME: "-lresolv" 609 610 // RUN: %clangxx -fsanitize=memory,undefined -### %s 2>&1 \ 611 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 612 // RUN: -resource-dir=%S/Inputs/resource_dir \ 613 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 614 // RUN: | %{filecheck} --check-prefix=CHECK-MSAN-UBSAN-LINUX-CXX 615 // CHECK-MSAN-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}" 616 // CHECK-MSAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.msan.a" "--no-whole-archive" 617 // CHECK-MSAN-UBSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.msan.a.syms" 618 // CHECK-MSAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.msan_cxx.a" "--no-whole-archive" 619 // CHECK-MSAN-UBSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.msan_cxx.a.syms" 620 // CHECK-MSAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone_cxx.a" "--no-whole-archive" 621 622 // RUN: %clangxx -fsanitize=thread,undefined -### %s 2>&1 \ 623 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 624 // RUN: -resource-dir=%S/Inputs/resource_dir \ 625 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 626 // RUN: | %{filecheck} --check-prefix=CHECK-TSAN-UBSAN-LINUX-CXX 627 // CHECK-TSAN-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}" 628 // CHECK-TSAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.tsan.a" "--no-whole-archive" 629 // CHECK-TSAN-UBSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.tsan.a.syms" 630 // CHECK-TSAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.tsan_cxx.a" "--no-whole-archive" 631 // CHECK-TSAN-UBSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.tsan_cxx.a.syms" 632 // CHECK-TSAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone_cxx.a" "--no-whole-archive" 633 634 // RUN: %clang -fsanitize=undefined -### %s 2>&1 \ 635 // RUN: --target=i386-unknown-linux -fuse-ld=ld \ 636 // RUN: -resource-dir=%S/Inputs/resource_dir \ 637 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 638 // RUN: -shared \ 639 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-LINUX-SHARED 640 // CHECK-UBSAN-LINUX-SHARED: "{{.*}}ld{{(.exe)?}}" 641 // CHECK-UBSAN-LINUX-SHARED-NOT: --export-dynamic 642 // CHECK-UBSAN-LINUX-SHARED-NOT: --dynamic-list 643 644 // RUN: %clang -### %s 2>&1 \ 645 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld -fsanitize=leak \ 646 // RUN: -resource-dir=%S/Inputs/resource_dir \ 647 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 648 // RUN: | %{filecheck} --check-prefix=CHECK-LSAN-LINUX 649 // 650 // CHECK-LSAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 651 // CHECK-LSAN-LINUX-NOT: "-lc" 652 // CHECK-LSAN-LINUX: libclang_rt.lsan.a" 653 // CHECK-LSAN-LINUX: "-lpthread" 654 // CHECK-LSAN-LINUX: "-ldl" 655 // CHECK-LSAN-LINUX: "-lresolv" 656 657 // RUN: %clang -fsanitize=leak -fno-sanitize-link-runtime -### %s 2>&1 \ 658 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 659 // RUN: -resource-dir=%S/Inputs/resource_dir \ 660 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 661 // RUN: | %{filecheck} --check-prefix=CHECK-LSAN-NO-LINK-RUNTIME-LINUX 662 // 663 // CHECK-LSAN-NO-LINK-RUNTIME-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 664 665 // RUN: %clang -### %s 2>&1 \ 666 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld -fsanitize=leak -fsanitize-coverage=func \ 667 // RUN: -resource-dir=%S/Inputs/resource_dir \ 668 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 669 // RUN: | %{filecheck} --check-prefix=CHECK-LSAN-COV-LINUX 670 // 671 // CHECK-LSAN-COV-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 672 // CHECK-LSAN-COV-LINUX-NOT: "-lc" 673 // CHECK-LSAN-COV-LINUX: libclang_rt.lsan.a 674 // CHECK-LSAV-COV-LINUX: libclang_rt.lsan-x86_64.a" 675 // CHECK-LSAN-COV-LINUX: "-lpthread" 676 // CHECK-LSAN-COV-LINUX: "-ldl" 677 // CHECK-LSAN-COV-LINUX: "-lresolv" 678 679 // RUN: %clang -fsanitize=leak,address -### %s 2>&1 \ 680 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 681 // RUN: -resource-dir=%S/Inputs/resource_dir \ 682 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 683 // RUN: | %{filecheck} --check-prefix=CHECK-LSAN-ASAN-LINUX 684 // CHECK-LSAN-ASAN-LINUX: "{{.*}}ld{{(.exe)?}}" 685 // CHECK-LSAN-ASAN-LINUX: libclang_rt.asan_static 686 // CHECK-LSAN-ASAN-LINUX: libclang_rt.asan 687 // CHECK-LSAN-ASAN-LINUX: "--dynamic-list={{.*}}libclang_rt.asan.a.syms" 688 689 // RUN: %clang -fsanitize=address -fsanitize-coverage=func -### %s 2>&1 \ 690 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 691 // RUN: -resource-dir=%S/Inputs/resource_dir \ 692 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 693 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-COV-LINUX 694 // CHECK-ASAN-COV-LINUX: "{{.*}}ld{{(.exe)?}}" 695 // CHECK-ASAN-COV-LINUX: libclang_rt.asan_static 696 // CHECK-ASAN-COV-LINUX: libclang_rt.asan 697 // CHECK-ASAN-COV-LINUX: "--dynamic-list={{.*}}libclang_rt.asan.a.syms" 698 // CHECK-ASAN-COV-LINUX-NOT: "-lstdc++" 699 // CHECK-ASAN-COV-LINUX: "-lpthread" 700 // CHECK-ASAN-COV-LINUX: "-lresolv" 701 702 // RUN: %clang -fsanitize=memory -fsanitize-coverage=func -### %s 2>&1 \ 703 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 704 // RUN: -resource-dir=%S/Inputs/resource_dir \ 705 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 706 // RUN: | %{filecheck} --check-prefix=CHECK-MSAN-COV-LINUX 707 // CHECK-MSAN-COV-LINUX: "{{.*}}ld{{(.exe)?}}" 708 // CHECK-MSAN-COV-LINUX: "--whole-archive" "{{.*}}libclang_rt.msan.a" "--no-whole-archive" 709 // CHECK-MSAN-COV-LINUX: "--dynamic-list={{.*}}libclang_rt.msan.a.syms" 710 // CHECK-MSAN-COV-LINUX-NOT: "-lstdc++" 711 // CHECK-MSAN-COV-LINUX: "-lpthread" 712 // CHECK-MSAN-COV-LINUX: "-lresolv" 713 714 // RUN: %clang -fsanitize=dataflow -fsanitize-coverage=func -### %s 2>&1 \ 715 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 716 // RUN: -resource-dir=%S/Inputs/resource_dir \ 717 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 718 // RUN: | %{filecheck} --check-prefix=CHECK-DFSAN-COV-LINUX 719 // CHECK-DFSAN-COV-LINUX: "{{.*}}ld{{(.exe)?}}" 720 // CHECK-DFSAN-COV-LINUX: "--whole-archive" "{{.*}}libclang_rt.dfsan.a" "--no-whole-archive" 721 // CHECK-DFSAN-COV-LINUX-NOT: "-lstdc++" 722 // CHECK-DFSAN-COV-LINUX: "-lpthread" 723 // CHECK-DFSAN-COV-LINUX: "-lresolv" 724 725 // RUN: %clang -fsanitize=undefined -fsanitize-coverage=func -### %s 2>&1 \ 726 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 727 // RUN: -resource-dir=%S/Inputs/resource_dir \ 728 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 729 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-COV-LINUX 730 // CHECK-UBSAN-COV-LINUX: "{{.*}}ld{{(.exe)?}}" 731 // CHECK-UBSAN-COV-LINUX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone.a" "--no-whole-archive" 732 // CHECK-UBSAN-COV-LINUX-NOT: "-lstdc++" 733 // CHECK-UBSAN-COV-LINUX: "-lpthread" 734 // CHECK-UBSAN-COV-LINUX: "-lresolv" 735 736 // RUN: %clang -fsanitize-coverage=func -### %s 2>&1 \ 737 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 738 // RUN: -resource-dir=%S/Inputs/resource_dir \ 739 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 740 // RUN: | %{filecheck} --check-prefix=CHECK-COV-LINUX 741 // CHECK-COV-LINUX: "{{.*}}ld{{(.exe)?}}" 742 // CHECK-COV-LINUX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone.a" "--no-whole-archive" 743 // CHECK-COV-LINUX-NOT: "-lstdc++" 744 // CHECK-COV-LINUX: "-lpthread" 745 // CHECK-COV-LINUX: "-lresolv" 746 747 // RUN: %clang -### %s 2>&1 \ 748 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld -fsanitize=numerical \ 749 // RUN: -resource-dir=%S/Inputs/resource_dir \ 750 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 751 // RUN: | %{filecheck} --check-prefix=CHECK-NSAN-LINUX 752 // 753 // CHECK-NSAN-LINUX: "{{.*}}ld{{(.exe)?}}" 754 // CHECK-NSAN-LINUX-NOT: "-lc" 755 // CHECK-NSAN-LINUX: libclang_rt.nsan.a" 756 // CHECK-NSAN-LINUX: "-lpthread" "-lrt" "-lm" "-ldl" "-lresolv" 757 758 // RUN: %clang -### %s 2>&1 --target=x86_64-unknown-linux -fuse-ld=ld -fsanitize=numerical -shared-libsan \ 759 // RUN: -resource-dir=%S/Inputs/resource_dir \ 760 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 761 // RUN: | %{filecheck} --check-prefix=CHECK-NSAN-SHARED-LINUX 762 763 // CHECK-NSAN-SHARED-LINUX: libclang_rt.nsan.so" 764 // CHECK-NSAN-SHARED-LINUX-NOT: "-lpthread" 765 // CHECK-NSAN-SHARED-LINUX-NOT: "-ldl" 766 // CHECK-NSAN-SHARED-LINUX-NOT: "--dynamic-list 767 768 // RUN: %clang -### %s 2>&1 --target=x86_64-unknown-linux -fsanitize=numerical,undefined \ 769 // RUN: -resource-dir=%S/Inputs/resource_dir \ 770 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 771 // RUN: | %{filecheck} --check-prefix=CHECK-NSAN-UBSAN 772 773 // CHECK-NSAN-UBSAN: "--whole-archive" "{{[^"]*}}libclang_rt.nsan.a" "--no-whole-archive" 774 775 // CFI by itself does not link runtime libraries. 776 // RUN: not %clang -fsanitize=cfi -### %s 2>&1 \ 777 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld -rtlib=platform \ 778 // RUN: -resource-dir=%S/Inputs/resource_dir \ 779 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 780 // RUN: | %{filecheck} --check-prefix=CHECK-CFI-LINUX 781 // CHECK-CFI-LINUX: "{{.*}}ld{{(.exe)?}}" 782 783 // CFI with diagnostics links the UBSan runtime. 784 // RUN: not %clang -fsanitize=cfi -fno-sanitize-trap=cfi -fsanitize-recover=cfi \ 785 // RUN: -### %s 2>&1\ 786 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 787 // RUN: -resource-dir=%S/Inputs/resource_dir \ 788 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 789 // RUN: | %{filecheck} --check-prefix=CHECK-CFI-DIAG-LINUX 790 // CHECK-CFI-DIAG-LINUX: "{{.*}}ld{{(.exe)?}}" 791 // CHECK-CFI-DIAG-LINUX: "--whole-archive" "{{[^"]*}}libclang_rt.ubsan_standalone.a" "--no-whole-archive" 792 793 // Cross-DSO CFI links the CFI runtime. 794 // RUN: not %clang -fsanitize=cfi -fsanitize-cfi-cross-dso -### %s 2>&1 \ 795 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 796 // RUN: -resource-dir=%S/Inputs/resource_dir \ 797 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 798 // RUN: | %{filecheck} --check-prefix=CHECK-CFI-CROSS-DSO-LINUX 799 // CHECK-CFI-CROSS-DSO-LINUX: "{{.*}}ld{{(.exe)?}}" 800 // CHECK-CFI-CROSS-DSO-LINUX: "--whole-archive" "{{[^"]*}}libclang_rt.cfi.a" "--no-whole-archive" 801 // CHECK-CFI-CROSS-DSO-LINUX: -export-dynamic 802 803 // Cross-DSO CFI with diagnostics links just the CFI runtime. 804 // RUN: not %clang -fsanitize=cfi -fsanitize-cfi-cross-dso -### %s 2>&1 \ 805 // RUN: -fno-sanitize-trap=cfi -fsanitize-recover=cfi \ 806 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 807 // RUN: -resource-dir=%S/Inputs/resource_dir \ 808 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 809 // RUN: | %{filecheck} --check-prefix=CHECK-CFI-CROSS-DSO-DIAG-LINUX 810 // CHECK-CFI-CROSS-DSO-DIAG-LINUX: "{{.*}}ld{{(.exe)?}}" 811 // CHECK-CFI-CROSS-DSO-DIAG-LINUX: "--whole-archive" "{{[^"]*}}libclang_rt.cfi_diag.a" "--no-whole-archive" 812 // CHECK-CFI-CROSS-DSO-DIAG-LINUX: -export-dynamic 813 814 // Cross-DSO CFI on Android does not link runtime libraries. 815 // RUN: not %clang -fsanitize=cfi -fsanitize-cfi-cross-dso -### %s 2>&1 \ 816 // RUN: --target=aarch64-linux-android -fuse-ld=ld \ 817 // RUN: -resource-dir=%S/Inputs/resource_dir \ 818 // RUN: --sysroot=%S/Inputs/basic_android_tree \ 819 // RUN: | %{filecheck} --check-prefix=CHECK-CFI-CROSS-DSO-ANDROID 820 // CHECK-CFI-CROSS-DSO-ANDROID: "{{.*}}ld{{(.exe)?}}" 821 822 // Cross-DSO CFI with diagnostics on Android links just the UBSAN runtime. 823 // RUN: not %clang -fsanitize=cfi -fsanitize-cfi-cross-dso -### %s 2>&1 \ 824 // RUN: -fno-sanitize-trap=cfi -fsanitize-recover=cfi \ 825 // RUN: --target=aarch64-linux-android -fuse-ld=ld \ 826 // RUN: -resource-dir=%S/Inputs/resource_dir \ 827 // RUN: --sysroot=%S/Inputs/basic_android_tree \ 828 // RUN: | %{filecheck} --check-prefix=CHECK-CFI-CROSS-DSO-DIAG-ANDROID 829 // CHECK-CFI-CROSS-DSO-DIAG-ANDROID: "{{.*}}ld{{(.exe)?}}" 830 // CHECK-CFI-CROSS-DSO-DIAG-ANDROID: "{{[^"]*}}libclang_rt.ubsan_standalone.so" 831 // CHECK-CFI-CROSS-DSO-DIAG-ANDROID: "--export-dynamic-symbol=__cfi_check" 832 833 // RUN: %clangxx -fsanitize=address -### %s 2>&1 \ 834 // RUN: -mmacos-version-min=10.6 \ 835 // RUN: --target=x86_64-apple-darwin13.4.0 -fuse-ld=ld -stdlib=platform \ 836 // RUN: -resource-dir=%S/Inputs/resource_dir \ 837 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 838 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-DARWIN106-CXX 839 // CHECK-ASAN-DARWIN106-CXX: "{{.*}}ld{{(.exe)?}}" 840 // CHECK-ASAN-DARWIN106-CXX: libclang_rt.asan_osx_dynamic.dylib 841 // CHECK-ASAN-DARWIN106-CXX-NOT: -lc++abi 842 843 // RUN: %clangxx -fsanitize=leak -### %s 2>&1 \ 844 // RUN: -mmacos-version-min=10.6 \ 845 // RUN: --target=x86_64-apple-darwin13.4.0 -fuse-ld=ld -stdlib=platform \ 846 // RUN: -resource-dir=%S/Inputs/resource_dir \ 847 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 848 // RUN: | %{filecheck} --check-prefix=CHECK-LSAN-DARWIN106-CXX 849 // CHECK-LSAN-DARWIN106-CXX: "{{.*}}ld{{(.exe)?}}" 850 // CHECK-LSAN-DARWIN106-CXX: libclang_rt.lsan_osx_dynamic.dylib 851 // CHECK-LSAN-DARWIN106-CXX-NOT: -lc++abi 852 853 // RUN: %clang -### %s 2>&1 \ 854 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld -fsanitize=safe-stack \ 855 // RUN: -resource-dir=%S/Inputs/resource_dir \ 856 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 857 // RUN: | %{filecheck} --check-prefix=CHECK-SAFESTACK-LINUX 858 // 859 // CHECK-SAFESTACK-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 860 // CHECK-SAFESTACK-LINUX-NOT: "-lc" 861 // CHECK-SAFESTACK-LINUX-NOT: whole-archive 862 // CHECK-SAFESTACK-LINUX: "-u" "__safestack_init" 863 // CHECK-SAFESTACK-LINUX: libclang_rt.safestack.a" 864 // CHECK-SAFESTACK-LINUX: "-lpthread" 865 // CHECK-SAFESTACK-LINUX: "-ldl" 866 // CHECK-SAFESTACK-LINUX: "-lresolv" 867 868 // RUN: %clang -fsanitize=shadow-call-stack -### %s 2>&1 \ 869 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 870 // RUN: | %{filecheck} --check-prefix=CHECK-SHADOWCALLSTACK-LINUX-X86-64 871 // CHECK-SHADOWCALLSTACK-LINUX-X86-64-NOT: error: 872 // CHECK-SHADOWCALLSTACK-LINUX-X86-64: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 873 874 // RUN: not %clang -fsanitize=shadow-call-stack -### %s 2>&1 \ 875 // RUN: --target=aarch64-unknown-linux -fuse-ld=ld \ 876 // RUN: | %{filecheck} --check-prefix=CHECK-SHADOWCALLSTACK-LINUX-AARCH64 877 // CHECK-SHADOWCALLSTACK-LINUX-AARCH64: '-fsanitize=shadow-call-stack' only allowed with '-ffixed-x18' 878 879 // RUN: %clang -fsanitize=shadow-call-stack -### %s 2>&1 \ 880 // RUN: --target=riscv32-unknown-elf -fuse-ld=ld \ 881 // RUN: | %{filecheck} --check-prefix=CHECK-SHADOWCALLSTACK-ELF-RISCV32 882 // CHECK-SHADOWCALLSTACK-ELF-RISCV32-NOT: error: 883 // CHECK-SHADOWCALLSTACK-ELF-RISCV32: "{{(.*[^-.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 884 885 // RUN: %clang -fsanitize=shadow-call-stack -### %s 2>&1 \ 886 // RUN: --target=riscv64-unknown-linux -fuse-ld=ld \ 887 // RUN: | %{filecheck} --check-prefix=CHECK-SHADOWCALLSTACK-LINUX-RISCV64 888 // CHECK-SHADOWCALLSTACK-LINUX-RISCV64-NOT: error: 889 // CHECK-SHADOWCALLSTACK-LINUX-RISCV64: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 890 891 // RUN: %clang -target riscv64-linux-android -fsanitize=shadow-call-stack %s -### 2>&1 \ 892 // RUN: | %{filecheck} --check-prefix=CHECK-SHADOWCALLSTACK-ANDROID-RISCV64 893 // CHECK-SHADOWCALLSTACK-ANDROID-RISCV64-NOT: error: 894 // CHECK-SHADOWCALLSTACK-ANDROID-RISCV64: "{{(.*[^-.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 895 896 // RUN: %clang -fsanitize=shadow-call-stack -### %s 2>&1 \ 897 // RUN: --target=riscv64-unknown-fuchsia -fuse-ld=ld \ 898 // RUN: | %{filecheck} --check-prefix=CHECK-SHADOWCALLSTACK-FUCHSIA-RISCV64 899 // CHECK-SHADOWCALLSTACK-FUCHSIA-RISCV64-NOT: error: 900 // CHECK-SHADOWCALLSTACK-FUCHSIA-RISCV64: "{{(.*[^-.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 901 902 // RUN: %clang -fsanitize=shadow-call-stack -### %s 2>&1 \ 903 // RUN: --target=aarch64-unknown-linux -fuse-ld=ld -ffixed-x18 \ 904 // RUN: | %{filecheck} --check-prefix=CHECK-SHADOWCALLSTACK-LINUX-AARCH64-X18 905 // RUN: %clang -fsanitize=shadow-call-stack -### %s 2>&1 \ 906 // RUN: --target=arm64-unknown-ios -fuse-ld=ld \ 907 // RUN: | %{filecheck} --check-prefix=CHECK-SHADOWCALLSTACK-LINUX-AARCH64-X18 908 // CHECK-SHADOWCALLSTACK-LINUX-AARCH64-X18-NOT: error: 909 // CHECK-SHADOWCALLSTACK-LINUX-AARCH64-X18: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 910 911 // RUN: %clang -fsanitize=shadow-call-stack -### %s 2>&1 \ 912 // RUN: --target=aarch64-unknown-linux-android -fuse-ld=ld \ 913 // RUN: | %{filecheck} --check-prefix=CHECK-SHADOWCALLSTACK-LINUX-AARCH64-X18-ANDROID 914 // CHECK-SHADOWCALLSTACK-LINUX-AARCH64-X18-ANDROID-NOT: error: 915 // CHECK-SHADOWCALLSTACK-LINUX-AARCH64-X18-ANDROID: "{{(.*[^-.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 916 917 // RUN: not %clang -fsanitize=shadow-call-stack -### %s 2>&1 \ 918 // RUN: --target=x86-unknown-linux -fuse-ld=ld \ 919 // RUN: | %{filecheck} --check-prefix=CHECK-SHADOWCALLSTACK-LINUX-X86 920 // CHECK-SHADOWCALLSTACK-LINUX-X86: error: unsupported option '-fsanitize=shadow-call-stack' for target 'x86-unknown-linux' 921 922 // RUN: %clang -fsanitize=shadow-call-stack -### %s 2>&1 \ 923 // RUN: -fsanitize=safe-stack --target=x86_64-unknown-linux -fuse-ld=ld \ 924 // RUN: | %{filecheck} --check-prefix=CHECK-SHADOWCALLSTACK-SAFESTACK 925 // CHECK-SHADOWCALLSTACK-SAFESTACK-NOT: error: 926 // CHECK-SHADOWCALLSTACK-SAFESTACK: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 927 // CHECK-SHADOWCALLSTACK-SAFESTACK: libclang_rt.safestack.a 928 929 // RUN: not %clang -fsanitize=cfi -fsanitize-stats -### %s 2>&1 \ 930 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld \ 931 // RUN: -resource-dir=%S/Inputs/resource_dir \ 932 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 933 // RUN: | %{filecheck} --check-prefix=CHECK-CFI-STATS-LINUX 934 // CHECK-CFI-STATS-LINUX: "{{.*}}ld{{(.exe)?}}" 935 // CHECK-CFI-STATS-LINUX: "--whole-archive" "{{[^"]*}}libclang_rt.stats_client.a" "--no-whole-archive" 936 // CHECK-CFI-STATS-LINUX-NOT: "--whole-archive" 937 // CHECK-CFI-STATS-LINUX: "{{[^"]*}}libclang_rt.stats.a" 938 939 // RUN: not %clang -fsanitize=cfi -fsanitize-stats -### %s 2>&1 \ 940 // RUN: --target=x86_64-apple-darwin -fuse-ld=ld \ 941 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 942 // RUN: | %{filecheck} --check-prefix=CHECK-CFI-STATS-DARWIN 943 // CHECK-CFI-STATS-DARWIN: "{{.*}}ld{{(.exe)?}}" 944 // CHECK-CFI-STATS-DARWIN: "{{[^"]*}}libclang_rt.stats_client_osx.a" 945 // CHECK-CFI-STATS-DARWIN: "{{[^"]*}}libclang_rt.stats_osx_dynamic.dylib" 946 947 // RUN: not %clang -fsanitize=cfi -fsanitize-stats -### %s 2>&1 \ 948 // RUN: --target=x86_64-pc-windows \ 949 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 950 // RUN: | %{filecheck} --check-prefix=CHECK-CFI-STATS-WIN64 951 // CHECK-CFI-STATS-WIN64: "--dependent-lib=clang_rt.stats_client{{(-x86_64)?}}.lib" 952 // CHECK-CFI-STATS-WIN64: "--dependent-lib=clang_rt.stats{{(-x86_64)?}}.lib" 953 // CHECK-CFI-STATS-WIN64: "--linker-option=/include:__sanitizer_stats_register" 954 955 // RUN: not %clang -fsanitize=cfi -fsanitize-stats -### %s 2>&1 \ 956 // RUN: --target=i686-pc-windows \ 957 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 958 // RUN: | %{filecheck} --check-prefix=CHECK-CFI-STATS-WIN32 959 // RUN: not %clang -fsanitize=cfi -fsanitize-stats -### %s 2>&1 \ 960 // RUN: --target=i686-pc-windows \ 961 // RUN: -fno-rtlib-defaultlib \ 962 // RUN: -frtlib-defaultlib \ 963 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 964 // RUN: | %{filecheck} --check-prefix=CHECK-CFI-STATS-WIN32 965 // CHECK-CFI-STATS-WIN32: "--dependent-lib=clang_rt.stats_client{{(-i386)?}}.lib" 966 // CHECK-CFI-STATS-WIN32: "--dependent-lib=clang_rt.stats{{(-i386)?}}.lib" 967 // CHECK-CFI-STATS-WIN32: "--linker-option=/include:___sanitizer_stats_register" 968 969 // RUN: not %clang -fsanitize=cfi -fsanitize-stats -### %s 2>&1 \ 970 // RUN: --target=i686-pc-windows \ 971 // RUN: -fno-rtlib-defaultlib \ 972 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 973 // RUN: | %{filecheck} --check-prefix=CHECK-CFI-STATS-WIN32-NODEF 974 // CHECK-CFI-STATS-WIN32-NODEF-NOT: "--dependent-lib=clang_rt.stats_client{{(-i386)?}}.lib" 975 // CHECK-CFI-STATS-WIN32-NODEF-NOT: "--dependent-lib=clang_rt.stats{{(-i386)?}}.lib" 976 977 // RUN: %clang -### %s 2>&1 \ 978 // RUN: --target=arm-linux-androideabi -fuse-ld=ld -fsanitize=safe-stack \ 979 // RUN: --sysroot=%S/Inputs/basic_android_tree \ 980 // RUN: | %{filecheck} --check-prefix=CHECK-SAFESTACK-ANDROID-ARM 981 // 982 // CHECK-SAFESTACK-ANDROID-ARM: "{{(.*[^-.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 983 984 // RUN: %clang -### %s -shared 2>&1 \ 985 // RUN: --target=arm-linux-androideabi -fuse-ld=ld -fsanitize=safe-stack \ 986 // RUN: --sysroot=%S/Inputs/basic_android_tree \ 987 // RUN: | %{filecheck} --check-prefix=CHECK-SAFESTACK-SHARED-ANDROID-ARM 988 // 989 // CHECK-SAFESTACK-SHARED-ANDROID-ARM: "{{(.*[^-.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 990 991 // RUN: %clang -### %s 2>&1 \ 992 // RUN: --target=aarch64-linux-android -fuse-ld=ld -fsanitize=safe-stack \ 993 // RUN: --sysroot=%S/Inputs/basic_android_tree \ 994 // RUN: | %{filecheck} --check-prefix=CHECK-SAFESTACK-ANDROID-AARCH64 995 // 996 // CHECK-SAFESTACK-ANDROID-AARCH64: "{{(.*[^-.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 997 998 // RUN: not %clang -fsanitize=undefined -### %s 2>&1 \ 999 // RUN: --target=x86_64-scei-ps4 -fuse-ld=ld \ 1000 // RUN: -shared \ 1001 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-PS4 1002 // CHECK-UBSAN-PS4: --dependent-lib=libSceDbgUBSanitizer_stub_weak.a 1003 // CHECK-UBSAN-PS4: "{{.*}}ld{{(.gold)?(.exe)?}}" 1004 // CHECK-UBSAN-PS4: -lSceDbgUBSanitizer_stub_weak 1005 1006 // RUN: not %clang -fsanitize=undefined -### %s 2>&1 \ 1007 // RUN: --target=x86_64-sie-ps5 -fuse-ld=ld \ 1008 // RUN: -shared \ 1009 // RUN: | %{filecheck} --check-prefix=CHECK-UBSAN-PS5 1010 // CHECK-UBSAN-PS5: --dependent-lib=libSceUBSanitizer_nosubmission_stub_weak.a 1011 // CHECK-UBSAN-PS5: "{{.*}}ld{{(.gold)?(.exe)?}}" 1012 // CHECK-UBSAN-PS5: -lSceUBSanitizer_nosubmission_stub_weak 1013 1014 // RUN: not %clang -fsanitize=address -### %s 2>&1 \ 1015 // RUN: --target=x86_64-scei-ps4 -fuse-ld=ld \ 1016 // RUN: -shared \ 1017 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-PS4 1018 // CHECK-ASAN-PS4: --dependent-lib=libSceDbgAddressSanitizer_stub_weak.a 1019 // CHECK-ASAN-PS4: "{{.*}}ld{{(.gold)?(.exe)?}}" 1020 // CHECK-ASAN-PS4: -lSceDbgAddressSanitizer_stub_weak 1021 1022 // RUN: not %clang -fsanitize=address -### %s 2>&1 \ 1023 // RUN: --target=x86_64-sie-ps5 -fuse-ld=ld \ 1024 // RUN: -shared \ 1025 // RUN: | %{filecheck} --check-prefix=CHECK-ASAN-PS5 1026 // CHECK-ASAN-PS5: --dependent-lib=libSceAddressSanitizer_nosubmission_stub_weak.a 1027 // CHECK-ASAN-PS5: "{{.*}}ld{{(.gold)?(.exe)?}}" 1028 // CHECK-ASAN-PS5: -lSceAddressSanitizer_nosubmission_stub_weak 1029 1030 // RUN: not %clang -fsanitize=address,undefined -### %s 2>&1 \ 1031 // RUN: --target=x86_64-scei-ps4 -fuse-ld=ld \ 1032 // RUN: -shared \ 1033 // RUN: | %{filecheck} --check-prefix=CHECK-AUBSAN-PS4 1034 // CHECK-AUBSAN-PS4-NOT: --dependent-lib=libSceDbgUBSanitizer_stub_weak.a 1035 // CHECK-AUBSAN-PS4: --dependent-lib=libSceDbgAddressSanitizer_stub_weak.a 1036 // CHECK-AUBSAN-PS4-NOT: --dependent-lib=libSceDbgUBSanitizer_stub_weak.a 1037 // CHECK-AUBSAN-PS4: "{{.*}}ld{{(.gold)?(.exe)?}}" 1038 // CHECK-AUBSAN-PS4: -lSceDbgAddressSanitizer_stub_weak 1039 1040 // RUN: not %clang -fsanitize=address,undefined -### %s 2>&1 \ 1041 // RUN: --target=x86_64-sie-ps5 -fuse-ld=ld \ 1042 // RUN: -shared \ 1043 // RUN: | %{filecheck} --check-prefix=CHECK-AUBSAN-PS5 1044 // CHECK-AUBSAN-PS5-NOT: --dependent-lib=libSceUBSanitizer_nosubmission_stub_weak.a 1045 // CHECK-AUBSAN-PS5: --dependent-lib=libSceAddressSanitizer_nosubmission_stub_weak.a 1046 // CHECK-AUBSAN-PS5-NOT: --dependent-lib=libSceUBSanitizer_nosubmission_stub_weak.a 1047 // CHECK-AUBSAN-PS5: "{{.*}}ld{{(.gold)?(.exe)?}}" 1048 // CHECK-AUBSAN-PS5: -lSceAddressSanitizer_nosubmission_stub_weak 1049 1050 // RUN: not %clang -fsanitize=address,undefined -### %s 2>&1 \ 1051 // RUN: --target=x86_64-scei-ps4 -fuse-ld=ld \ 1052 // RUN: -shared \ 1053 // RUN: -nostdlib \ 1054 // RUN: | %{filecheck} --check-prefix=CHECK-NOLIB-PS4 1055 // CHECK-NOLIB-PS4-NOT: SceDbgAddressSanitizer_stub_weak 1056 1057 // RUN: not %clang -fsanitize=address,undefined -### %s 2>&1 \ 1058 // RUN: --target=x86_64-sie-ps5 -fuse-ld=ld \ 1059 // RUN: -shared \ 1060 // RUN: -nostdlib \ 1061 // RUN: | %{filecheck} --check-prefix=CHECK-NOLIB-PS5 1062 // CHECK-NOLIB-PS5-NOT: SceAddressSanitizer_nosubmission_stub_weak 1063 1064 // RUN: %clang -fsanitize=scudo -### %s 2>&1 \ 1065 // RUN: --target=i386-unknown-linux -fuse-ld=ld \ 1066 // RUN: -resource-dir=%S/Inputs/resource_dir \ 1067 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1068 // RUN: | %{filecheck} --check-prefix=CHECK-SCUDO-LINUX 1069 // CHECK-SCUDO-LINUX: "{{.*}}ld{{(.exe)?}}" 1070 // CHECK-SCUDO-LINUX: "--whole-archive" "{{.*}}libclang_rt.scudo_standalone.a" "--no-whole-archive" 1071 // CHECK-SCUDO-LINUX-NOT: "-lstdc++" 1072 // CHECK-SCUDO-LINUX: "-lpthread" 1073 // CHECK-SCUDO-LINUX: "-ldl" 1074 // CHECK-SCUDO-LINUX: "-lresolv" 1075 1076 // RUN: %clang -### %s -o %t.so -shared 2>&1 \ 1077 // RUN: --target=i386-unknown-linux -fuse-ld=ld -fsanitize=scudo -shared-libsan \ 1078 // RUN: -resource-dir=%S/Inputs/resource_dir \ 1079 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1080 // RUN: | %{filecheck} --check-prefix=CHECK-SCUDO-SHARED-LINUX 1081 // 1082 // CHECK-SCUDO-SHARED-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 1083 // CHECK-SCUDO-SHARED-LINUX-NOT: "-lc" 1084 // CHECK-SCUDO-SHARED-LINUX: libclang_rt.scudo_standalone.so" 1085 // CHECK-SCUDO-SHARED-LINUX-NOT: "-lpthread" 1086 // CHECK-SCUDO-SHARED-LINUX-NOT: "-lrt" 1087 // CHECK-SCUDO-SHARED-LINUX-NOT: "-ldl" 1088 // CHECK-SCUDO-SHARED-LINUX-NOT: "-lresolv" 1089 // CHECK-SCUDO-SHARED-LINUX-NOT: "--export-dynamic" 1090 // CHECK-SCUDO-SHARED-LINUX-NOT: "--dynamic-list" 1091 1092 // RUN: %clang -### %s 2>&1 \ 1093 // RUN: --target=arm-linux-androideabi -fuse-ld=ld -fsanitize=scudo \ 1094 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1095 // RUN: | %{filecheck} --check-prefix=CHECK-SCUDO-ANDROID 1096 // 1097 // CHECK-SCUDO-ANDROID: "{{(.*[^.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 1098 // CHECK-SCUDO-ANDROID-NOT: "-lc" 1099 // CHECK-SCUDO-ANDROID: "-pie" 1100 // CHECK-SCUDO-ANDROID-NOT: "-lpthread" 1101 // CHECK-SCUDO-ANDROID-NOT: "-lresolv" 1102 // CHECK-SCUDO-ANDROID: libclang_rt.scudo_standalone.so" 1103 // CHECK-SCUDO-ANDROID-NOT: "-lpthread" 1104 // CHECK-SCUDO-ANDROID-NOT: "-lresolv" 1105 1106 // RUN: %clang -### %s 2>&1 \ 1107 // RUN: --target=arm-linux-androideabi -fuse-ld=ld -fsanitize=scudo \ 1108 // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 1109 // RUN: -static-libsan \ 1110 // RUN: | %{filecheck} --check-prefix=CHECK-SCUDO-ANDROID-STATIC 1111 // CHECK-SCUDO-ANDROID-STATIC: "{{(.*[^.0-9A-Z_a-z])?}}ld.lld{{(.exe)?}}" 1112 // CHECK-SCUDO-ANDROID-STATIC: "-pie" 1113 // CHECK-SCUDO-ANDROID-STATIC: "--whole-archive" "{{.*}}libclang_rt.scudo_standalone.a" "--no-whole-archive" 1114 // CHECK-SCUDO-ANDROID-STATIC-NOT: "-lstdc++" 1115 // CHECK-SCUDO-ANDROID-STATIC-NOT: "-lpthread" 1116 // CHECK-SCUDO-ANDROID-STATIC-NOT: "-lrt" 1117 // CHECK-SCUDO-ANDROID-STATIC-NOT: "-lresolv" 1118 1119 // RUN: %clang -### %s 2>&1 \ 1120 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ 1121 // RUN: -resource-dir=%S/Inputs/resource_dir \ 1122 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1123 // RUN: | %{filecheck} --check-prefix=CHECK-HWASAN-X86-64-LINUX 1124 // 1125 // CHECK-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 1126 // CHECK-HWASAN-X86-64-LINUX-NOT: "-lc" 1127 // CHECK-HWASAN-X86-64-LINUX: libclang_rt.hwasan.a" 1128 // CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" 1129 // CHECK-HWASAN-X86-64-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan.a.syms" 1130 // CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" 1131 // CHECK-HWASAN-X86-64-LINUX: "-lpthread" 1132 // CHECK-HWASAN-X86-64-LINUX: "-lrt" 1133 // CHECK-HWASAN-X86-64-LINUX: "-ldl" 1134 // CHECK-HWASAN-X86-64-LINUX: "-lresolv" 1135 1136 // RUN: %clang -### %s 2>&1 \ 1137 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ 1138 // RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ 1139 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1140 // RUN: | %{filecheck} --check-prefix=CHECK-SHARED-HWASAN-X86-64-LINUX 1141 // 1142 // CHECK-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 1143 // CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc" 1144 // CHECK-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan.so" 1145 // CHECK-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-preinit.a" 1146 // CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread" 1147 // CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt" 1148 // CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl" 1149 // CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lresolv" 1150 // CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" 1151 // CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list" 1152 1153 // RUN: %clang -### %s -o %t.so -shared 2>&1 \ 1154 // RUN: --target=x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ 1155 // RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ 1156 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1157 // RUN: | %{filecheck} --check-prefix=CHECK-DSO-SHARED-HWASAN-X86-64-LINUX 1158 // 1159 // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 1160 // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc" 1161 // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan.so" 1162 // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread" 1163 // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt" 1164 // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl" 1165 // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lresolv" 1166 // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" 1167 // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list" 1168 1169 // RUN: %clang -### %s 2>&1 \ 1170 // RUN: --target=aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ 1171 // RUN: -resource-dir=%S/Inputs/resource_dir \ 1172 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1173 // RUN: | %{filecheck} --check-prefix=CHECK-HWASAN-AARCH64-LINUX 1174 // 1175 // CHECK-HWASAN-AARCH64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 1176 // CHECK-HWASAN-AARCH64-LINUX-NOT: "-lc" 1177 // CHECK-HWASAN-AARCH64-LINUX: libclang_rt.hwasan.a" 1178 // CHECK-HWASAN-AARCH64-LINUX-NOT: "--export-dynamic" 1179 // CHECK-HWASAN-AARCH64-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan.a.syms" 1180 // CHECK-HWASAN-AARCH64-LINUX-NOT: "--export-dynamic" 1181 // CHECK-HWASAN-AARCH64-LINUX: "-lpthread" 1182 // CHECK-HWASAN-AARCH64-LINUX: "-lrt" 1183 // CHECK-HWASAN-AARCH64-LINUX: "-ldl" 1184 // CHECK-HWASAN-AARCH64-LINUX: "-lresolv" 1185 1186 // RUN: %clang -### %s 2>&1 \ 1187 // RUN: --target=aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ 1188 // RUN: -shared-libsan \ 1189 // RUN: -resource-dir=%S/Inputs/resource_dir \ 1190 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1191 // RUN: | %{filecheck} --check-prefix=CHECK-SHARED-HWASAN-AARCH64-LINUX 1192 // 1193 // CHECK-SHARED-HWASAN-AARCH64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 1194 // CHECK-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lc" 1195 // CHECK-SHARED-HWASAN-AARCH64-LINUX: libclang_rt.hwasan.so" 1196 // CHECK-SHARED-HWASAN-AARCH64-LINUX: libclang_rt.hwasan-preinit.a" 1197 // CHECK-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lpthread" 1198 // CHECK-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lrt" 1199 // CHECK-SHARED-HWASAN-AARCH64-LINUX-NOT: "-ldl" 1200 // CHECK-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lresolv" 1201 // CHECK-SHARED-HWASAN-AARCH64-LINUX-NOT: "--export-dynamic" 1202 // CHECK-SHARED-HWASAN-AARCH64-LINUX-NOT: "--dynamic-list" 1203 1204 // RUN: %clang -### %s -o %t.so -shared 2>&1 \ 1205 // RUN: --target=aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ 1206 // RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ 1207 // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 1208 // RUN: | %{filecheck} --check-prefix=CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX 1209 // 1210 // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 1211 // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lc" 1212 // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX: libclang_rt.hwasan.so" 1213 // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lpthread" 1214 // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lrt" 1215 // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX-NOT: "-ldl" 1216 // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lresolv" 1217 // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX-NOT: "--export-dynamic" 1218 // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX-NOT: "--dynamic-list" 1219