1*67e74705SXin Li // Test sanitizers ld flags. 2*67e74705SXin Li 3*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 4*67e74705SXin Li // RUN: -target i386-unknown-linux -fsanitize=address \ 5*67e74705SXin Li // RUN: -resource-dir=%S/Inputs/resource_dir \ 6*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 7*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-LINUX %s 8*67e74705SXin Li // 9*67e74705SXin Li // CHECK-ASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 10*67e74705SXin Li // CHECK-ASAN-LINUX-NOT: "-lc" 11*67e74705SXin Li // CHECK-ASAN-LINUX: libclang_rt.asan-i386.a" 12*67e74705SXin Li // CHECK-ASAN-LINUX-NOT: "-export-dynamic" 13*67e74705SXin Li // CHECK-ASAN-LINUX: "--dynamic-list={{.*}}libclang_rt.asan-i386.a.syms" 14*67e74705SXin Li // CHECK-ASAN-LINUX-NOT: "-export-dynamic" 15*67e74705SXin Li // CHECK-ASAN-LINUX: "-lpthread" 16*67e74705SXin Li // CHECK-ASAN-LINUX: "-lrt" 17*67e74705SXin Li // CHECK-ASAN-LINUX: "-ldl" 18*67e74705SXin Li 19*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 20*67e74705SXin Li // RUN: -target i386-unknown-linux -fsanitize=address -shared-libasan \ 21*67e74705SXin Li // RUN: -resource-dir=%S/Inputs/resource_dir \ 22*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 23*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-SHARED-ASAN-LINUX %s 24*67e74705SXin Li // 25*67e74705SXin Li // CHECK-SHARED-ASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 26*67e74705SXin Li // CHECK-SHARED-ASAN-LINUX-NOT: "-lc" 27*67e74705SXin Li // CHECK-SHARED-ASAN-LINUX-NOT: libclang_rt.asan-i386.a" 28*67e74705SXin Li // CHECK-SHARED-ASAN-LINUX: libclang_rt.asan-i386.so" 29*67e74705SXin Li // CHECK-SHARED-ASAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.asan-preinit-i386.a" "-no-whole-archive" 30*67e74705SXin Li // CHECK-SHARED-ASAN-LINUX-NOT: "-lpthread" 31*67e74705SXin Li // CHECK-SHARED-ASAN-LINUX-NOT: "-lrt" 32*67e74705SXin Li // CHECK-SHARED-ASAN-LINUX-NOT: "-ldl" 33*67e74705SXin Li // CHECK-SHARED-ASAN-LINUX-NOT: "-export-dynamic" 34*67e74705SXin Li // CHECK-SHARED-ASAN-LINUX-NOT: "--dynamic-list" 35*67e74705SXin Li 36*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \ 37*67e74705SXin Li // RUN: -target i386-unknown-linux -fsanitize=address -shared-libasan \ 38*67e74705SXin Li // RUN: -resource-dir=%S/Inputs/resource_dir \ 39*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 40*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DSO-SHARED-ASAN-LINUX %s 41*67e74705SXin Li // 42*67e74705SXin Li // CHECK-DSO-SHARED-ASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 43*67e74705SXin Li // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-lc" 44*67e74705SXin Li // CHECK-DSO-SHARED-ASAN-LINUX-NOT: libclang_rt.asan-i386.a" 45*67e74705SXin Li // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "libclang_rt.asan-preinit-i386.a" 46*67e74705SXin Li // CHECK-DSO-SHARED-ASAN-LINUX: libclang_rt.asan-i386.so" 47*67e74705SXin Li // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-lpthread" 48*67e74705SXin Li // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-lrt" 49*67e74705SXin Li // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-ldl" 50*67e74705SXin Li // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-export-dynamic" 51*67e74705SXin Li // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "--dynamic-list" 52*67e74705SXin Li 53*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 54*67e74705SXin Li // RUN: -target i386-unknown-freebsd -fsanitize=address \ 55*67e74705SXin Li // RUN: -resource-dir=%S/Inputs/resource_dir \ 56*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_freebsd_tree \ 57*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-FREEBSD %s 58*67e74705SXin Li // 59*67e74705SXin Li // CHECK-ASAN-FREEBSD: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 60*67e74705SXin Li // CHECK-ASAN-FREEBSD-NOT: "-lc" 61*67e74705SXin Li // CHECK-ASAN-FREEBSD-NOT: libclang_rt.asan_cxx 62*67e74705SXin Li // CHECK-ASAN-FREEBSD: freebsd{{/|\\+}}libclang_rt.asan-i386.a" 63*67e74705SXin Li // CHECK-ASAN-FREEBSD-NOT: libclang_rt.asan_cxx 64*67e74705SXin Li // CHECK-ASAN-FREEBSD-NOT: "--dynamic-list" 65*67e74705SXin Li // CHECK-ASAN-FREEBSD: "-export-dynamic" 66*67e74705SXin Li // CHECK-ASAN-FREEBSD: "-lpthread" 67*67e74705SXin Li // CHECK-ASAN-FREEBSD: "-lrt" 68*67e74705SXin Li 69*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 70*67e74705SXin Li // RUN: -target i386-unknown-freebsd -fsanitize=address \ 71*67e74705SXin Li // RUN: -resource-dir=%S/Inputs/resource_dir \ 72*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_freebsd_tree \ 73*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-FREEBSD-LDL %s 74*67e74705SXin Li // 75*67e74705SXin Li // CHECK-ASAN-FREEBSD-LDL: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 76*67e74705SXin Li // CHECK-ASAN-FREEBSD-LDL-NOT: "-ldl" 77*67e74705SXin Li 78*67e74705SXin Li // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 79*67e74705SXin Li // RUN: -target i386-unknown-linux -stdlib=platform -fsanitize=address \ 80*67e74705SXin Li // RUN: -resource-dir=%S/Inputs/empty_resource_dir \ 81*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 82*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-LINUX-CXX %s 83*67e74705SXin Li // 84*67e74705SXin Li // CHECK-ASAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 85*67e74705SXin Li // CHECK-ASAN-LINUX-CXX-NOT: "-lc" 86*67e74705SXin Li // CHECK-ASAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.asan-i386.a" "-no-whole-archive" 87*67e74705SXin Li // CHECK-ASAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.asan_cxx-i386.a" "-no-whole-archive" 88*67e74705SXin Li // CHECK-ASAN-LINUX-CXX-NOT: "--dynamic-list" 89*67e74705SXin Li // CHECK-ASAN-LINUX-CXX: "-export-dynamic" 90*67e74705SXin Li // CHECK-ASAN-LINUX-CXX: stdc++ 91*67e74705SXin Li // CHECK-ASAN-LINUX-CXX: "-lpthread" 92*67e74705SXin Li // CHECK-ASAN-LINUX-CXX: "-lrt" 93*67e74705SXin Li // CHECK-ASAN-LINUX-CXX: "-ldl" 94*67e74705SXin Li 95*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o /dev/null -fsanitize=address \ 96*67e74705SXin Li // RUN: -target i386-unknown-linux -stdlib=platform \ 97*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree -lstdc++ -static 2>&1 \ 98*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-LINUX-CXX-STATIC %s 99*67e74705SXin Li // 100*67e74705SXin Li // CHECK-ASAN-LINUX-CXX-STATIC: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 101*67e74705SXin Li // CHECK-ASAN-LINUX-CXX-STATIC-NOT: stdc++ 102*67e74705SXin Li // CHECK-ASAN-LINUX-CXX-STATIC: "-whole-archive" "{{.*}}libclang_rt.asan-i386.a" "-no-whole-archive" 103*67e74705SXin Li // CHECK-ASAN-LINUX-CXX-STATIC: stdc++ 104*67e74705SXin Li 105*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 106*67e74705SXin Li // RUN: -target arm-linux-gnueabi -fsanitize=address \ 107*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 108*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-ARM %s 109*67e74705SXin Li // 110*67e74705SXin Li // CHECK-ASAN-ARM: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 111*67e74705SXin Li // CHECK-ASAN-ARM-NOT: "-lc" 112*67e74705SXin Li // CHECK-ASAN-ARM: libclang_rt.asan-arm.a" 113*67e74705SXin Li // 114*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 115*67e74705SXin Li // RUN: -target armv7l-linux-gnueabi -fsanitize=address \ 116*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 117*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-ARMv7 %s 118*67e74705SXin Li // 119*67e74705SXin Li // CHECK-ASAN-ARMv7: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 120*67e74705SXin Li // CHECK-ASAN-ARMv7-NOT: "-lc" 121*67e74705SXin Li // CHECK-ASAN-ARMv7: libclang_rt.asan-arm.a" 122*67e74705SXin Li 123*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 124*67e74705SXin Li // RUN: -target arm-linux-androideabi -fsanitize=address \ 125*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 126*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-ANDROID %s 127*67e74705SXin Li // 128*67e74705SXin Li // CHECK-ASAN-ANDROID: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 129*67e74705SXin Li // CHECK-ASAN-ANDROID-NOT: "-lc" 130*67e74705SXin Li // CHECK-ASAN-ANDROID: "-pie" 131*67e74705SXin Li // CHECK-ASAN-ANDROID-NOT: "-lpthread" 132*67e74705SXin Li // CHECK-ASAN-ANDROID: libclang_rt.asan-arm-android.so" 133*67e74705SXin Li // CHECK-ASAN-ANDROID-NOT: "-lpthread" 134*67e74705SXin Li // 135*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 136*67e74705SXin Li // RUN: -target arm-linux-androideabi -fsanitize=address \ 137*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 138*67e74705SXin Li // RUN: -shared-libasan \ 139*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-ANDROID-SHARED-LIBASAN %s 140*67e74705SXin Li // 141*67e74705SXin Li // CHECK-ASAN-ANDROID-SHARED-LIBASAN-NOT: argument unused during compilation: '-shared-libasan' 142*67e74705SXin Li // 143*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 144*67e74705SXin Li // RUN: -target arm-linux-androideabi -fsanitize=address \ 145*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ 146*67e74705SXin Li // RUN: -shared \ 147*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-ANDROID-SHARED %s 148*67e74705SXin Li // 149*67e74705SXin Li // CHECK-ASAN-ANDROID-SHARED: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 150*67e74705SXin Li // CHECK-ASAN-ANDROID-SHARED-NOT: "-lc" 151*67e74705SXin Li // CHECK-ASAN-ANDROID-SHARED: libclang_rt.asan-arm-android.so" 152*67e74705SXin Li // CHECK-ASAN-ANDROID-SHARED-NOT: "-lpthread" 153*67e74705SXin Li 154*67e74705SXin Li // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 155*67e74705SXin Li // RUN: -target x86_64-unknown-linux -stdlib=platform -lstdc++ \ 156*67e74705SXin Li // RUN: -fsanitize=thread \ 157*67e74705SXin Li // RUN: -resource-dir=%S/Inputs/resource_dir \ 158*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 159*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-TSAN-LINUX-CXX %s 160*67e74705SXin Li // 161*67e74705SXin Li // CHECK-TSAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 162*67e74705SXin Li // CHECK-TSAN-LINUX-CXX-NOT: stdc++ 163*67e74705SXin Li // CHECK-TSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.tsan-x86_64.a" "-no-whole-archive" 164*67e74705SXin Li // CHECK-TSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.tsan-x86_64.a.syms" 165*67e74705SXin Li // CHECK-TSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.tsan_cxx-x86_64.a" "-no-whole-archive" 166*67e74705SXin Li // CHECK-TSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.tsan_cxx-x86_64.a.syms" 167*67e74705SXin Li // CHECK-TSAN-LINUX-CXX-NOT: "-export-dynamic" 168*67e74705SXin Li // CHECK-TSAN-LINUX-CXX: stdc++ 169*67e74705SXin Li // CHECK-TSAN-LINUX-CXX: "-lpthread" 170*67e74705SXin Li // CHECK-TSAN-LINUX-CXX: "-lrt" 171*67e74705SXin Li // CHECK-TSAN-LINUX-CXX: "-ldl" 172*67e74705SXin Li 173*67e74705SXin Li // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 174*67e74705SXin Li // RUN: -target x86_64-unknown-linux -stdlib=platform -lstdc++ \ 175*67e74705SXin Li // RUN: -fsanitize=memory \ 176*67e74705SXin Li // RUN: -resource-dir=%S/Inputs/resource_dir \ 177*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 178*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MSAN-LINUX-CXX %s 179*67e74705SXin Li // 180*67e74705SXin Li // CHECK-MSAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 181*67e74705SXin Li // CHECK-MSAN-LINUX-CXX-NOT: stdc++ 182*67e74705SXin Li // CHECK-MSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.msan-x86_64.a" "-no-whole-archive" 183*67e74705SXin Li // CHECK-MSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.msan-x86_64.a.syms" 184*67e74705SXin Li // CHECK-MSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.msan_cxx-x86_64.a" "-no-whole-archive" 185*67e74705SXin Li // CHECK-MSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.msan_cxx-x86_64.a.syms" 186*67e74705SXin Li // CHECK-MSAN-LINUX-CXX-NOT: "-export-dynamic" 187*67e74705SXin Li // CHECK-MSAN-LINUX-CXX: stdc++ 188*67e74705SXin Li // CHECK-MSAN-LINUX-CXX: "-lpthread" 189*67e74705SXin Li // CHECK-MSAN-LINUX-CXX: "-lrt" 190*67e74705SXin Li // CHECK-MSAN-LINUX-CXX: "-ldl" 191*67e74705SXin Li 192*67e74705SXin Li // RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \ 193*67e74705SXin Li // RUN: -target i386-unknown-linux \ 194*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 195*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX %s 196*67e74705SXin Li // CHECK-UBSAN-LINUX: "{{.*}}ld{{(.exe)?}}" 197*67e74705SXin Li // CHECK-UBSAN-LINUX-NOT: libclang_rt.asan 198*67e74705SXin Li // CHECK-UBSAN-LINUX-NOT: libclang_rt.ubsan_standalone_cxx 199*67e74705SXin Li // CHECK-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.ubsan_standalone-i386.a" "-no-whole-archive" 200*67e74705SXin Li // CHECK-UBSAN-LINUX-NOT: libclang_rt.asan 201*67e74705SXin Li // CHECK-UBSAN-LINUX-NOT: libclang_rt.ubsan_standalone_cxx 202*67e74705SXin Li // CHECK-UBSAN-LINUX-NOT: "-lstdc++" 203*67e74705SXin Li // CHECK-UBSAN-LINUX: "-lpthread" 204*67e74705SXin Li 205*67e74705SXin Li // RUN: %clang -fsanitize=undefined -fsanitize-link-c++-runtime %s -### -o %t.o 2>&1 \ 206*67e74705SXin Li // RUN: -target i386-unknown-linux \ 207*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 208*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX-LINK-CXX %s 209*67e74705SXin Li // CHECK-UBSAN-LINUX-LINK-CXX-NOT: "-lstdc++" 210*67e74705SXin Li // CHECK-UBSAN-LINUX-LINK-CXX: "-whole-archive" "{{.*}}libclang_rt.ubsan_standalone_cxx-i386.a" "-no-whole-archive" 211*67e74705SXin Li // CHECK-UBSAN-LINUX-LINK-CXX-NOT: "-lstdc++" 212*67e74705SXin Li 213*67e74705SXin Li // RUN: %clangxx -fsanitize=undefined %s -### -o %t.o 2>&1 \ 214*67e74705SXin Li // RUN: -target i386-unknown-linux -stdlib=platform \ 215*67e74705SXin Li // RUN: -resource-dir=%S/Inputs/resource_dir \ 216*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 217*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX-CXX %s 218*67e74705SXin Li // CHECK-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}" 219*67e74705SXin Li // CHECK-UBSAN-LINUX-CXX-NOT: libclang_rt.asan 220*67e74705SXin Li // CHECK-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.ubsan_standalone-i386.a" "-no-whole-archive" 221*67e74705SXin Li // CHECK-UBSAN-LINUX-CXX-NOT: libclang_rt.asan 222*67e74705SXin Li // CHECK-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.ubsan_standalone_cxx-i386.a" "-no-whole-archive" 223*67e74705SXin Li // CHECK-UBSAN-LINUX-CXX-NOT: libclang_rt.asan 224*67e74705SXin Li // CHECK-UBSAN-LINUX-CXX: "-lstdc++" 225*67e74705SXin Li // CHECK-UBSAN-LINUX-CXX-NOT: libclang_rt.asan 226*67e74705SXin Li // CHECK-UBSAN-LINUX-CXX: "-lpthread" 227*67e74705SXin Li 228*67e74705SXin Li // RUN: %clang -fsanitize=address,undefined %s -### -o %t.o 2>&1 \ 229*67e74705SXin Li // RUN: -target i386-unknown-linux \ 230*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 231*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-UBSAN-LINUX %s 232*67e74705SXin Li // CHECK-ASAN-UBSAN-LINUX: "{{.*}}ld{{(.exe)?}}" 233*67e74705SXin Li // CHECK-ASAN-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.asan-i386.a" "-no-whole-archive" 234*67e74705SXin Li // CHECK-ASAN-UBSAN-LINUX-NOT: libclang_rt.ubsan 235*67e74705SXin Li // CHECK-ASAN-UBSAN-LINUX-NOT: "-lstdc++" 236*67e74705SXin Li // CHECK-ASAN-UBSAN-LINUX: "-lpthread" 237*67e74705SXin Li 238*67e74705SXin Li // RUN: %clangxx -fsanitize=address,undefined %s -### -o %t.o 2>&1 \ 239*67e74705SXin Li // RUN: -target i386-unknown-linux -stdlib=platform \ 240*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 241*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-UBSAN-LINUX-CXX %s 242*67e74705SXin Li // CHECK-ASAN-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}" 243*67e74705SXin Li // CHECK-ASAN-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.asan-i386.a" "-no-whole-archive" 244*67e74705SXin Li // CHECK-ASAN-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.asan_cxx-i386.a" "-no-whole-archive" 245*67e74705SXin Li // CHECK-ASAN-UBSAN-LINUX-CXX-NOT: libclang_rt.ubsan 246*67e74705SXin Li // CHECK-ASAN-UBSAN-LINUX-CXX: "-lstdc++" 247*67e74705SXin Li // CHECK-ASAN-UBSAN-LINUX-CXX: "-lpthread" 248*67e74705SXin Li 249*67e74705SXin Li // RUN: %clangxx -fsanitize=memory,undefined %s -### -o %t.o 2>&1 \ 250*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 251*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 252*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MSAN-UBSAN-LINUX-CXX %s 253*67e74705SXin Li // CHECK-MSAN-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}" 254*67e74705SXin Li // CHECK-MSAN-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.msan-x86_64.a" "-no-whole-archive" 255*67e74705SXin Li // CHECK-MSAN-UBSAN-LINUX-CXX-NOT: libclang_rt.ubsan 256*67e74705SXin Li 257*67e74705SXin Li // RUN: %clangxx -fsanitize=thread,undefined %s -### -o %t.o 2>&1 \ 258*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 259*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 260*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-TSAN-UBSAN-LINUX-CXX %s 261*67e74705SXin Li // CHECK-TSAN-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}" 262*67e74705SXin Li // CHECK-TSAN-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.tsan-x86_64.a" "-no-whole-archive" 263*67e74705SXin Li // CHECK-TSAN-UBSAN-LINUX-CXX-NOT: libclang_rt.ubsan 264*67e74705SXin Li 265*67e74705SXin Li // RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \ 266*67e74705SXin Li // RUN: -target i386-unknown-linux \ 267*67e74705SXin Li // RUN: -resource-dir=%S/Inputs/resource_dir \ 268*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 269*67e74705SXin Li // RUN: -shared \ 270*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX-SHARED %s 271*67e74705SXin Li // CHECK-UBSAN-LINUX-SHARED: "{{.*}}ld{{(.exe)?}}" 272*67e74705SXin Li // CHECK-UBSAN-LINUX-SHARED-NOT: --export-dynamic 273*67e74705SXin Li // CHECK-UBSAN-LINUX-SHARED-NOT: --dynamic-list 274*67e74705SXin Li // CHECK-UBSAN-LINUX-SHARED-NOT: libclang_rt.ubsan 275*67e74705SXin Li 276*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 277*67e74705SXin Li // RUN: -target x86_64-unknown-linux -fsanitize=leak \ 278*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 279*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LSAN-LINUX %s 280*67e74705SXin Li // 281*67e74705SXin Li // CHECK-LSAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 282*67e74705SXin Li // CHECK-LSAN-LINUX-NOT: "-lc" 283*67e74705SXin Li // CHECK-LSAN-LINUX: libclang_rt.lsan-x86_64.a" 284*67e74705SXin Li // CHECK-LSAN-LINUX: "-lpthread" 285*67e74705SXin Li // CHECK-LSAN-LINUX: "-ldl" 286*67e74705SXin Li 287*67e74705SXin Li // RUN: %clang -fsanitize=leak,address %s -### -o %t.o 2>&1 \ 288*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 289*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 290*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-LSAN-ASAN-LINUX %s 291*67e74705SXin Li // CHECK-LSAN-ASAN-LINUX: "{{.*}}ld{{(.exe)?}}" 292*67e74705SXin Li // CHECK-LSAN-ASAN-LINUX-NOT: libclang_rt.lsan 293*67e74705SXin Li // CHECK-LSAN-ASAN-LINUX: libclang_rt.asan-x86_64 294*67e74705SXin Li // CHECK-LSAN-ASAN-LINUX-NOT: libclang_rt.lsan 295*67e74705SXin Li 296*67e74705SXin Li // RUN: %clang -fsanitize=address -fsanitize-coverage=func %s -### -o %t.o 2>&1 \ 297*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 298*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 299*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-COV-LINUX %s 300*67e74705SXin Li // CHECK-ASAN-COV-LINUX: "{{.*}}ld{{(.exe)?}}" 301*67e74705SXin Li // CHECK-ASAN-COV-LINUX: "-whole-archive" "{{.*}}libclang_rt.asan-x86_64.a" "-no-whole-archive" 302*67e74705SXin Li // CHECK-ASAN-COV-LINUX-NOT: libclang_rt.ubsan 303*67e74705SXin Li // CHECK-ASAN-COV-LINUX-NOT: "-lstdc++" 304*67e74705SXin Li // CHECK-ASAN-COV-LINUX: "-lpthread" 305*67e74705SXin Li 306*67e74705SXin Li // RUN: %clang -fsanitize=memory -fsanitize-coverage=func %s -### -o %t.o 2>&1 \ 307*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 308*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 309*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MSAN-COV-LINUX %s 310*67e74705SXin Li // CHECK-MSAN-COV-LINUX: "{{.*}}ld{{(.exe)?}}" 311*67e74705SXin Li // CHECK-MSAN-COV-LINUX: "-whole-archive" "{{.*}}libclang_rt.msan-x86_64.a" "-no-whole-archive" 312*67e74705SXin Li // CHECK-MSAN-COV-LINUX-NOT: libclang_rt.ubsan 313*67e74705SXin Li // CHECK-MSAN-COV-LINUX-NOT: "-lstdc++" 314*67e74705SXin Li // CHECK-MSAN-COV-LINUX: "-lpthread" 315*67e74705SXin Li 316*67e74705SXin Li // RUN: %clang -fsanitize=dataflow -fsanitize-coverage=func %s -### -o %t.o 2>&1 \ 317*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 318*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 319*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DFSAN-COV-LINUX %s 320*67e74705SXin Li // CHECK-DFSAN-COV-LINUX: "{{.*}}ld{{(.exe)?}}" 321*67e74705SXin Li // CHECK-DFSAN-COV-LINUX: "-whole-archive" "{{.*}}libclang_rt.dfsan-x86_64.a" "-no-whole-archive" 322*67e74705SXin Li // CHECK-DFSAN-COV-LINUX-NOT: libclang_rt.ubsan 323*67e74705SXin Li // CHECK-DFSAN-COV-LINUX-NOT: "-lstdc++" 324*67e74705SXin Li // CHECK-DFSAN-COV-LINUX: "-lpthread" 325*67e74705SXin Li 326*67e74705SXin Li // RUN: %clang -fsanitize=undefined -fsanitize-coverage=func %s -### -o %t.o 2>&1 \ 327*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 328*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 329*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-UBSAN-COV-LINUX %s 330*67e74705SXin Li // CHECK-UBSAN-COV-LINUX: "{{.*}}ld{{(.exe)?}}" 331*67e74705SXin Li // CHECK-UBSAN-COV-LINUX: "-whole-archive" "{{.*}}libclang_rt.ubsan_standalone-x86_64.a" "-no-whole-archive" 332*67e74705SXin Li // CHECK-UBSAN-COV-LINUX-NOT: "-lstdc++" 333*67e74705SXin Li // CHECK-UBSAN-COV-LINUX: "-lpthread" 334*67e74705SXin Li 335*67e74705SXin Li // RUN: %clang -fsanitize-coverage=func %s -### -o %t.o 2>&1 \ 336*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 337*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 338*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-COV-LINUX %s 339*67e74705SXin Li // CHECK-COV-LINUX: "{{.*}}ld{{(.exe)?}}" 340*67e74705SXin Li // CHECK-COV-LINUX: "-whole-archive" "{{.*}}libclang_rt.ubsan_standalone-x86_64.a" "-no-whole-archive" 341*67e74705SXin Li // CHECK-COV-LINUX-NOT: "-lstdc++" 342*67e74705SXin Li // CHECK-COV-LINUX: "-lpthread" 343*67e74705SXin Li 344*67e74705SXin Li // CFI by itself does not link runtime libraries. 345*67e74705SXin Li // RUN: %clang -fsanitize=cfi %s -### -o %t.o 2>&1 \ 346*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 347*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 348*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CFI-LINUX %s 349*67e74705SXin Li // CHECK-CFI-LINUX: "{{.*}}ld{{(.exe)?}}" 350*67e74705SXin Li // CHECK-CFI-LINUX-NOT: libclang_rt. 351*67e74705SXin Li 352*67e74705SXin Li // CFI with diagnostics links the UBSan runtime. 353*67e74705SXin Li // RUN: %clang -fsanitize=cfi -fno-sanitize-trap=cfi -fsanitize-recover=cfi \ 354*67e74705SXin Li // RUN: %s -### -o %t.o 2>&1\ 355*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 356*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 357*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CFI-DIAG-LINUX %s 358*67e74705SXin Li // CHECK-CFI-DIAG-LINUX: "{{.*}}ld{{(.exe)?}}" 359*67e74705SXin Li // CHECK-CFI-DIAG-LINUX: "-whole-archive" "{{[^"]*}}libclang_rt.ubsan_standalone-x86_64.a" "-no-whole-archive" 360*67e74705SXin Li 361*67e74705SXin Li // Cross-DSO CFI links the CFI runtime. 362*67e74705SXin Li // RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso %s -### -o %t.o 2>&1 \ 363*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 364*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 365*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CFI-CROSS-DSO-LINUX %s 366*67e74705SXin Li // CHECK-CFI-CROSS-DSO-LINUX: "{{.*}}ld{{(.exe)?}}" 367*67e74705SXin Li // CHECK-CFI-CROSS-DSO-LINUX: "-whole-archive" "{{[^"]*}}libclang_rt.cfi-x86_64.a" "-no-whole-archive" 368*67e74705SXin Li 369*67e74705SXin Li // Cross-DSO CFI with diagnostics links just the CFI runtime. 370*67e74705SXin Li // RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso %s -### -o %t.o 2>&1 \ 371*67e74705SXin Li // RUN: -fno-sanitize-trap=cfi -fsanitize-recover=cfi \ 372*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 373*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 374*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CFI-CROSS-DSO-DIAG-LINUX %s 375*67e74705SXin Li // CHECK-CFI-CROSS-DSO-DIAG-LINUX: "{{.*}}ld{{(.exe)?}}" 376*67e74705SXin Li // CHECK-CFI-CROSS-DSO-DIAG-LINUX: "-whole-archive" "{{[^"]*}}libclang_rt.cfi_diag-x86_64.a" "-no-whole-archive" 377*67e74705SXin Li 378*67e74705SXin Li // RUN: %clangxx -fsanitize=address %s -### -o %t.o 2>&1 \ 379*67e74705SXin Li // RUN: -mmacosx-version-min=10.6 \ 380*67e74705SXin Li // RUN: -target x86_64-apple-darwin13.4.0 -stdlib=platform \ 381*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 382*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-DARWIN106-CXX %s 383*67e74705SXin Li // CHECK-ASAN-DARWIN106-CXX: "{{.*}}ld{{(.exe)?}}" 384*67e74705SXin Li // CHECK-ASAN-DARWIN106-CXX: libclang_rt.asan_osx_dynamic.dylib 385*67e74705SXin Li // CHECK-ASAN-DARWIN106-CXX-NOT: -lc++abi 386*67e74705SXin Li 387*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 388*67e74705SXin Li // RUN: -target x86_64-unknown-linux -fsanitize=safe-stack \ 389*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 390*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-SAFESTACK-LINUX %s 391*67e74705SXin Li // 392*67e74705SXin Li // CHECK-SAFESTACK-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 393*67e74705SXin Li // CHECK-SAFESTACK-LINUX-NOT: "-lc" 394*67e74705SXin Li // CHECK-SAFESTACK-LINUX: libclang_rt.safestack-x86_64.a" 395*67e74705SXin Li // CHECK-SAFESTACK-LINUX: "-lpthread" 396*67e74705SXin Li // CHECK-SAFESTACK-LINUX: "-ldl" 397*67e74705SXin Li 398*67e74705SXin Li // RUN: %clang -fsanitize=cfi -fsanitize-stats %s -### -o %t.o 2>&1 \ 399*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 400*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 401*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CFI-STATS-LINUX %s 402*67e74705SXin Li // CHECK-CFI-STATS-LINUX: "{{.*}}ld{{(.exe)?}}" 403*67e74705SXin Li // CHECK-CFI-STATS-LINUX: "-whole-archive" "{{[^"]*}}libclang_rt.stats_client-x86_64.a" "-no-whole-archive" 404*67e74705SXin Li // CHECK-CFI-STATS-LINUX-NOT: "-whole-archive" 405*67e74705SXin Li // CHECK-CFI-STATS-LINUX: "{{[^"]*}}libclang_rt.stats-x86_64.a" 406*67e74705SXin Li 407*67e74705SXin Li // RUN: %clang -fsanitize=cfi -fsanitize-stats %s -### -o %t.o 2>&1 \ 408*67e74705SXin Li // RUN: -target x86_64-apple-darwin \ 409*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 410*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CFI-STATS-DARWIN %s 411*67e74705SXin Li // CHECK-CFI-STATS-DARWIN: "{{.*}}ld{{(.exe)?}}" 412*67e74705SXin Li // CHECK-CFI-STATS-DARWIN: "{{[^"]*}}libclang_rt.stats_client_osx.a" 413*67e74705SXin Li // CHECK-CFI-STATS-DARWIN: "{{[^"]*}}libclang_rt.stats_osx_dynamic.dylib" 414*67e74705SXin Li 415*67e74705SXin Li // RUN: %clang -fsanitize=cfi -fsanitize-stats %s -### -o %t.o 2>&1 \ 416*67e74705SXin Li // RUN: -target x86_64-pc-windows \ 417*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 418*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CFI-STATS-WIN64 %s 419*67e74705SXin Li // CHECK-CFI-STATS-WIN64: "--dependent-lib={{[^"]*}}clang_rt.stats_client-x86_64.lib" 420*67e74705SXin Li // CHECK-CFI-STATS-WIN64: "--dependent-lib={{[^"]*}}clang_rt.stats-x86_64.lib" 421*67e74705SXin Li // CHECK-CFI-STATS-WIN64: "--linker-option=/include:__sanitizer_stats_register" 422*67e74705SXin Li 423*67e74705SXin Li // RUN: %clang -fsanitize=cfi -fsanitize-stats %s -### -o %t.o 2>&1 \ 424*67e74705SXin Li // RUN: -target i686-pc-windows \ 425*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_linux_tree \ 426*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-CFI-STATS-WIN32 %s 427*67e74705SXin Li // CHECK-CFI-STATS-WIN32: "--dependent-lib={{[^"]*}}clang_rt.stats_client-i386.lib" 428*67e74705SXin Li // CHECK-CFI-STATS-WIN32: "--dependent-lib={{[^"]*}}clang_rt.stats-i386.lib" 429*67e74705SXin Li // CHECK-CFI-STATS-WIN32: "--linker-option=/include:___sanitizer_stats_register" 430*67e74705SXin Li 431*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 432*67e74705SXin Li // RUN: -target arm-linux-androideabi -fsanitize=safe-stack \ 433*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree \ 434*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-SAFESTACK-ANDROID-ARM %s 435*67e74705SXin Li // 436*67e74705SXin Li // CHECK-SAFESTACK-ANDROID-ARM: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 437*67e74705SXin Li // CHECK-SAFESTACK-ANDROID-ARM-NOT: libclang_rt.safestack 438*67e74705SXin Li 439*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o -shared 2>&1 \ 440*67e74705SXin Li // RUN: -target arm-linux-androideabi -fsanitize=safe-stack \ 441*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree \ 442*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-SAFESTACK-ANDROID-ARM %s 443*67e74705SXin Li // 444*67e74705SXin Li // CHECK-SAFESTACK-SHARED-ANDROID-ARM: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 445*67e74705SXin Li // CHECK-SAFESTACK-SHARED-ANDROID-ARM-NOT: libclang_rt.safestack 446*67e74705SXin Li 447*67e74705SXin Li // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ 448*67e74705SXin Li // RUN: -target aarch64-linux-android -fsanitize=safe-stack \ 449*67e74705SXin Li // RUN: --sysroot=%S/Inputs/basic_android_tree \ 450*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-SAFESTACK-ANDROID-AARCH64 %s 451*67e74705SXin Li // 452*67e74705SXin Li // CHECK-SAFESTACK-ANDROID-AARCH64: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 453*67e74705SXin Li // CHECK-SAFESTACK-ANDROID-AARCH64-NOT: libclang_rt.safestack 454*67e74705SXin Li 455*67e74705SXin Li // RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \ 456*67e74705SXin Li // RUN: -target x86_64-scei-ps4 \ 457*67e74705SXin Li // RUN: -shared \ 458*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-UBSAN-PS4 %s 459*67e74705SXin Li // CHECK-UBSAN-PS4: "{{.*}}ld{{(.gold)?(.exe)?}}" 460*67e74705SXin Li // CHECK-UBSAN-PS4: -lSceDbgUBSanitizer_stub_weak 461*67e74705SXin Li 462*67e74705SXin Li // RUN: %clang -fsanitize=address %s -### -o %t.o 2>&1 \ 463*67e74705SXin Li // RUN: -target x86_64-scei-ps4 \ 464*67e74705SXin Li // RUN: -shared \ 465*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ASAN-PS4 %s 466*67e74705SXin Li // CHECK-ASAN-PS4: "{{.*}}ld{{(.gold)?(.exe)?}}" 467*67e74705SXin Li // CHECK-ASAN-PS4: -lSceDbgAddressSanitizer_stub_weak 468*67e74705SXin Li 469*67e74705SXin Li // RUN: %clang -fsanitize=address,undefined %s -### -o %t.o 2>&1 \ 470*67e74705SXin Li // RUN: -target x86_64-scei-ps4 \ 471*67e74705SXin Li // RUN: -shared \ 472*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-AUBSAN-PS4 %s 473*67e74705SXin Li // CHECK-AUBSAN-PS4: "{{.*}}ld{{(.gold)?(.exe)?}}" 474*67e74705SXin Li // CHECK-AUBSAN-PS4: -lSceDbgAddressSanitizer_stub_weak 475*67e74705SXin Li 476*67e74705SXin Li // RUN: %clang -fsanitize=efficiency-cache-frag %s -### -o %t.o 2>&1 \ 477*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 478*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ESAN-LINUX %s 479*67e74705SXin Li // RUN: %clang -fsanitize=efficiency-working-set %s -### -o %t.o 2>&1 \ 480*67e74705SXin Li // RUN: -target x86_64-unknown-linux \ 481*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-ESAN-LINUX %s 482*67e74705SXin Li // 483*67e74705SXin Li // CHECK-ESAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" 484*67e74705SXin Li // CHECK-ESAN-LINUX: libclang_rt.esan-x86_64.a 485