blob: 405e3a6166161b5251201604764c9fa6885f8904 [file] [log] [blame]
Alexey Samsonov86143042013-02-27 11:14:55 +00001// Test sanitizers ld flags.
2
3// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
4// RUN: -target i386-unknown-linux -fsanitize=address \
Richard Smith76e6e132013-03-23 00:30:08 +00005// RUN: -resource-dir=%S/Inputs/resource_dir \
Alexey Samsonov86143042013-02-27 11:14:55 +00006// RUN: --sysroot=%S/Inputs/basic_linux_tree \
7// RUN: | FileCheck --check-prefix=CHECK-ASAN-LINUX %s
8//
9// CHECK-ASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
10// CHECK-ASAN-LINUX-NOT: "-lc"
11// CHECK-ASAN-LINUX: libclang_rt.asan-i386.a"
12// CHECK-ASAN-LINUX: "-lpthread"
Evgeniy Stepanov3a8aff92013-05-24 14:28:03 +000013// CHECK-ASAN-LINUX: "-lrt"
Alexey Samsonov86143042013-02-27 11:14:55 +000014// CHECK-ASAN-LINUX: "-ldl"
Richard Smith76e6e132013-03-23 00:30:08 +000015// CHECK-ASAN-LINUX-NOT: "-export-dynamic"
16// CHECK-ASAN-LINUX: "--dynamic-list={{.*}}libclang_rt.asan-i386.a.syms"
Alexey Samsonov86143042013-02-27 11:14:55 +000017
Stephen Hines651f13c2014-04-23 16:59:28 -070018// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
19// RUN: -target i386-unknown-linux -fsanitize=address -shared-libasan \
20// RUN: -resource-dir=%S/Inputs/resource_dir \
21// RUN: --sysroot=%S/Inputs/basic_linux_tree \
22// RUN: | FileCheck --check-prefix=CHECK-SHARED-ASAN-LINUX %s
23//
24// CHECK-SHARED-ASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
25// CHECK-SHARED-ASAN-LINUX-NOT: "-lc"
26// CHECK-SHARED-ASAN-LINUX-NOT: libclang_rt.asan-i386.a"
27// CHECK-SHARED-ASAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.asan-preinit-i386.a" "-no-whole-archive"
28// CHECK-SHARED-ASAN-LINUX: libclang_rt.asan-i386.so"
29// CHECK-SHARED-ASAN-LINUX-NOT: "-lpthread"
30// CHECK-SHARED-ASAN-LINUX-NOT: "-lrt"
31// CHECK-SHARED-ASAN-LINUX-NOT: "-ldl"
32// CHECK-SHARED-ASAN-LINUX-NOT: "-export-dynamic"
33// CHECK-SHARED-ASAN-LINUX-NOT: "--dynamic-list"
34
35// RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \
36// RUN: -target i386-unknown-linux -fsanitize=address -shared-libasan \
37// RUN: -resource-dir=%S/Inputs/resource_dir \
38// RUN: --sysroot=%S/Inputs/basic_linux_tree \
39// RUN: | FileCheck --check-prefix=CHECK-DSO-SHARED-ASAN-LINUX %s
40//
41// CHECK-DSO-SHARED-ASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
42// CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-lc"
43// CHECK-DSO-SHARED-ASAN-LINUX-NOT: libclang_rt.asan-i386.a"
44// CHECK-DSO-SHARED-ASAN-LINUX-NOT: "libclang_rt.asan-preinit-i386.a"
45// CHECK-DSO-SHARED-ASAN-LINUX: libclang_rt.asan-i386.so"
46// CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-lpthread"
47// CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-lrt"
48// CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-ldl"
49// CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-export-dynamic"
50// CHECK-DSO-SHARED-ASAN-LINUX-NOT: "--dynamic-list"
51
52// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
53// RUN: -target i386-unknown-freebsd -fsanitize=address \
54// RUN: -resource-dir=%S/Inputs/resource_dir \
55// RUN: --sysroot=%S/Inputs/basic_freebsd_tree \
56// RUN: | FileCheck --check-prefix=CHECK-ASAN-FREEBSD %s
57//
58// CHECK-ASAN-FREEBSD: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
59// CHECK-ASAN-FREEBSD-NOT: "-lc"
Stephen Hines6bcf27b2014-05-29 04:14:42 -070060// CHECK-ASAN-FREEBSD-NOT: libclang_rt.asan_cxx
Stephen Hines651f13c2014-04-23 16:59:28 -070061// CHECK-ASAN-FREEBSD: freebsd{{/|\\+}}libclang_rt.asan-i386.a"
Stephen Hines6bcf27b2014-05-29 04:14:42 -070062// CHECK-ASAN-FREEBSD-NOT: libclang_rt.asan_cxx
Stephen Hines651f13c2014-04-23 16:59:28 -070063// CHECK-ASAN-FREEBSD: "-lpthread"
64// CHECK-ASAN-FREEBSD: "-lrt"
65// CHECK-ASAN-FREEBSD: "-export-dynamic"
66// CHECK-ASAN-FREEBSD-NOT: "--dynamic-list"
67
68// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
69// RUN: -target i386-unknown-freebsd -fsanitize=address \
70// RUN: -resource-dir=%S/Inputs/resource_dir \
71// RUN: --sysroot=%S/Inputs/basic_freebsd_tree \
72// RUN: | FileCheck --check-prefix=CHECK-ASAN-FREEBSD-LDL %s
73//
74// CHECK-ASAN-FREEBSD-LDL: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
75// CHECK-ASAN-FREEBSD-LDL-NOT: "-ldl"
76
Alexey Samsonov86143042013-02-27 11:14:55 +000077// RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
78// RUN: -target i386-unknown-linux -fsanitize=address \
Richard Smith76e6e132013-03-23 00:30:08 +000079// RUN: -resource-dir=%S/Inputs/empty_resource_dir \
Alexey Samsonov86143042013-02-27 11:14:55 +000080// RUN: --sysroot=%S/Inputs/basic_linux_tree \
81// RUN: | FileCheck --check-prefix=CHECK-ASAN-LINUX-CXX %s
82//
83// CHECK-ASAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
84// CHECK-ASAN-LINUX-CXX-NOT: "-lc"
Stephen Hines6bcf27b2014-05-29 04:14:42 -070085// CHECK-ASAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.asan_cxx-i386.a" "-no-whole-archive"
Alexey Samsonov86143042013-02-27 11:14:55 +000086// CHECK-ASAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.asan-i386.a" "-no-whole-archive"
87// CHECK-ASAN-LINUX-CXX: "-lpthread"
Evgeniy Stepanov3a8aff92013-05-24 14:28:03 +000088// CHECK-ASAN-LINUX-CXX: "-lrt"
Alexey Samsonov86143042013-02-27 11:14:55 +000089// CHECK-ASAN-LINUX-CXX: "-ldl"
90// CHECK-ASAN-LINUX-CXX: "-export-dynamic"
Richard Smith76e6e132013-03-23 00:30:08 +000091// CHECK-ASAN-LINUX-CXX-NOT: "--dynamic-list"
Alexey Samsonov86143042013-02-27 11:14:55 +000092// CHECK-ASAN-LINUX-CXX: stdc++
93
94// RUN: %clang -no-canonical-prefixes %s -### -o /dev/null -fsanitize=address \
95// RUN: -target i386-unknown-linux --sysroot=%S/Inputs/basic_linux_tree \
96// RUN: -lstdc++ -static 2>&1 \
97// RUN: | FileCheck --check-prefix=CHECK-ASAN-LINUX-CXX-STATIC %s
98//
99// CHECK-ASAN-LINUX-CXX-STATIC: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
100// CHECK-ASAN-LINUX-CXX-STATIC-NOT: stdc++
101// CHECK-ASAN-LINUX-CXX-STATIC: "-whole-archive" "{{.*}}libclang_rt.asan-i386.a" "-no-whole-archive"
102// CHECK-ASAN-LINUX-CXX-STATIC: stdc++
103
104// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Stephen Hines651f13c2014-04-23 16:59:28 -0700105// RUN: -target arm-linux-gnueabi -fsanitize=address \
106// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
107// RUN: | FileCheck --check-prefix=CHECK-ASAN-ARM %s
108//
109// CHECK-ASAN-ARM: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
110// CHECK-ASAN-ARM-NOT: "-lc"
111// CHECK-ASAN-ARM: libclang_rt.asan-arm.a"
112//
113// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
114// RUN: -target armv7l-linux-gnueabi -fsanitize=address \
115// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
116// RUN: | FileCheck --check-prefix=CHECK-ASAN-ARMv7 %s
117//
118// CHECK-ASAN-ARMv7: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
119// CHECK-ASAN-ARMv7-NOT: "-lc"
120// CHECK-ASAN-ARMv7: libclang_rt.asan-arm.a"
121
122// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
Alexey Samsonov86143042013-02-27 11:14:55 +0000123// RUN: -target arm-linux-androideabi -fsanitize=address \
124// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
125// RUN: | FileCheck --check-prefix=CHECK-ASAN-ANDROID %s
126//
127// CHECK-ASAN-ANDROID: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
128// CHECK-ASAN-ANDROID-NOT: "-lc"
129// CHECK-ASAN-ANDROID: libclang_rt.asan-arm-android.so"
130// CHECK-ASAN-ANDROID-NOT: "-lpthread"
Stephen Hines651f13c2014-04-23 16:59:28 -0700131// CHECK-ASAN-ANDROID: "-pie"
132// CHECK-ASAN-ANDROID-NOT: "-lpthread"
Alexey Samsonov86143042013-02-27 11:14:55 +0000133//
134// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
135// RUN: -target arm-linux-androideabi -fsanitize=address \
136// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
137// RUN: -shared \
138// RUN: | FileCheck --check-prefix=CHECK-ASAN-ANDROID-SHARED %s
139//
140// CHECK-ASAN-ANDROID-SHARED: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
141// CHECK-ASAN-ANDROID-SHARED-NOT: "-lc"
142// CHECK-ASAN-ANDROID-SHARED: libclang_rt.asan-arm-android.so"
143// CHECK-ASAN-ANDROID-SHARED-NOT: "-lpthread"
144
145// RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
146// RUN: -target x86_64-unknown-linux -lstdc++ -fsanitize=thread \
Richard Smith76e6e132013-03-23 00:30:08 +0000147// RUN: -resource-dir=%S/Inputs/resource_dir \
Alexey Samsonov86143042013-02-27 11:14:55 +0000148// RUN: --sysroot=%S/Inputs/basic_linux_tree \
149// RUN: | FileCheck --check-prefix=CHECK-TSAN-LINUX-CXX %s
150//
151// CHECK-TSAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
152// CHECK-TSAN-LINUX-CXX-NOT: stdc++
153// CHECK-TSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.tsan-x86_64.a" "-no-whole-archive"
154// CHECK-TSAN-LINUX-CXX: "-lpthread"
Evgeniy Stepanov3a8aff92013-05-24 14:28:03 +0000155// CHECK-TSAN-LINUX-CXX: "-lrt"
Alexey Samsonov86143042013-02-27 11:14:55 +0000156// CHECK-TSAN-LINUX-CXX: "-ldl"
Richard Smith76e6e132013-03-23 00:30:08 +0000157// CHECK-TSAN-LINUX-CXX-NOT: "-export-dynamic"
158// CHECK-TSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.tsan-x86_64.a.syms"
Alexey Samsonov86143042013-02-27 11:14:55 +0000159// CHECK-TSAN-LINUX-CXX: stdc++
160
161// RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
162// RUN: -target x86_64-unknown-linux -lstdc++ -fsanitize=memory \
Richard Smith76e6e132013-03-23 00:30:08 +0000163// RUN: -resource-dir=%S/Inputs/resource_dir \
Alexey Samsonov86143042013-02-27 11:14:55 +0000164// RUN: --sysroot=%S/Inputs/basic_linux_tree \
165// RUN: | FileCheck --check-prefix=CHECK-MSAN-LINUX-CXX %s
166//
167// CHECK-MSAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
168// CHECK-MSAN-LINUX-CXX-NOT: stdc++
169// CHECK-MSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.msan-x86_64.a" "-no-whole-archive"
170// CHECK-MSAN-LINUX-CXX: "-lpthread"
Evgeniy Stepanov3a8aff92013-05-24 14:28:03 +0000171// CHECK-MSAN-LINUX-CXX: "-lrt"
Alexey Samsonov86143042013-02-27 11:14:55 +0000172// CHECK-MSAN-LINUX-CXX: "-ldl"
Richard Smith76e6e132013-03-23 00:30:08 +0000173// CHECK-MSAN-LINUX-CXX-NOT: "-export-dynamic"
174// CHECK-MSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.msan-x86_64.a.syms"
Alexey Samsonov86143042013-02-27 11:14:55 +0000175// CHECK-MSAN-LINUX-CXX: stdc++
176
177// RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \
178// RUN: -target i386-unknown-linux \
179// RUN: --sysroot=%S/Inputs/basic_linux_tree \
180// RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX %s
181// CHECK-UBSAN-LINUX: "{{.*}}ld{{(.exe)?}}"
Richard Smith61a574f2013-03-20 23:49:07 +0000182// CHECK-UBSAN-LINUX-NOT: libclang_rt.asan
Peter Collingbournebf548552013-10-20 21:29:13 +0000183// CHECK-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.san-i386.a" "-no-whole-archive"
Nick Lewycky63d29e22013-10-19 00:27:23 +0000184// CHECK-UBSAN-LINUX-NOT: libclang_rt.asan
Peter Collingbournebf548552013-10-20 21:29:13 +0000185// CHECK-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.ubsan-i386.a" "-no-whole-archive"
186// CHECK-UBSAN-LINUX-NOT: libclang_rt.ubsan_cxx
Alexey Samsonov86143042013-02-27 11:14:55 +0000187// CHECK-UBSAN-LINUX: "-lpthread"
Richard Smith61a574f2013-03-20 23:49:07 +0000188// CHECK-UBSAN-LINUX-NOT: "-lstdc++"
189
190// RUN: %clangxx -fsanitize=undefined %s -### -o %t.o 2>&1 \
191// RUN: -target i386-unknown-linux \
192// RUN: --sysroot=%S/Inputs/basic_linux_tree \
193// RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX-CXX %s
194// CHECK-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}"
195// CHECK-UBSAN-LINUX-CXX-NOT: libclang_rt.asan
Peter Collingbournebf548552013-10-20 21:29:13 +0000196// CHECK-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.san-i386.a" "-no-whole-archive"
Richard Smith61a574f2013-03-20 23:49:07 +0000197// CHECK-UBSAN-LINUX-CXX-NOT: libclang_rt.asan
Peter Collingbournebf548552013-10-20 21:29:13 +0000198// CHECK-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.ubsan-i386.a" "-no-whole-archive"
199// CHECK-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.ubsan_cxx-i386.a" "-no-whole-archive"
Richard Smith61a574f2013-03-20 23:49:07 +0000200// CHECK-UBSAN-LINUX-CXX: "-lpthread"
201// CHECK-UBSAN-LINUX-CXX: "-lstdc++"
202
203// RUN: %clang -fsanitize=address,undefined %s -### -o %t.o 2>&1 \
204// RUN: -target i386-unknown-linux \
205// RUN: --sysroot=%S/Inputs/basic_linux_tree \
206// RUN: | FileCheck --check-prefix=CHECK-ASAN-UBSAN-LINUX %s
207// CHECK-ASAN-UBSAN-LINUX: "{{.*}}ld{{(.exe)?}}"
208// CHECK-ASAN-UBSAN-LINUX-NOT: libclang_rt.san
209// CHECK-ASAN-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.asan-i386.a" "-no-whole-archive"
210// CHECK-ASAN-UBSAN-LINUX-NOT: libclang_rt.san
Peter Collingbournebf548552013-10-20 21:29:13 +0000211// CHECK-ASAN-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.ubsan-i386.a" "-no-whole-archive"
Richard Smith61a574f2013-03-20 23:49:07 +0000212// CHECK-ASAN-UBSAN-LINUX-NOT: libclang_rt.ubsan_cxx
213// CHECK-ASAN-UBSAN-LINUX: "-lpthread"
214// CHECK-ASAN-UBSAN-LINUX-NOT: "-lstdc++"
215
216// RUN: %clangxx -fsanitize=address,undefined %s -### -o %t.o 2>&1 \
217// RUN: -target i386-unknown-linux \
218// RUN: --sysroot=%S/Inputs/basic_linux_tree \
219// RUN: | FileCheck --check-prefix=CHECK-ASAN-UBSAN-LINUX-CXX %s
220// CHECK-ASAN-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}"
221// CHECK-ASAN-UBSAN-LINUX-CXX-NOT: libclang_rt.san
222// CHECK-ASAN-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.asan-i386.a" "-no-whole-archive"
223// CHECK-ASAN-UBSAN-LINUX-CXX-NOT: libclang_rt.san
Peter Collingbournebf548552013-10-20 21:29:13 +0000224// CHECK-ASAN-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.ubsan-i386.a" "-no-whole-archive"
225// CHECK-ASAN-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.ubsan_cxx-i386.a" "-no-whole-archive"
Richard Smith61a574f2013-03-20 23:49:07 +0000226// CHECK-ASAN-UBSAN-LINUX-CXX: "-lpthread"
227// CHECK-ASAN-UBSAN-LINUX-CXX: "-lstdc++"
Alexey Samsonov86143042013-02-27 11:14:55 +0000228
229// RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \
230// RUN: -target i386-unknown-linux \
231// RUN: --sysroot=%S/Inputs/basic_linux_tree \
232// RUN: -shared \
233// RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX-SHARED %s
234// CHECK-UBSAN-LINUX-SHARED: "{{.*}}ld{{(.exe)?}}"
Nick Lewycky1f8d6632013-08-13 22:32:35 +0000235// CHECK-UBSAN-LINUX-SHARED: libclang_rt.ubsan-i386.a"
Sergey Matveev050309f2013-05-27 11:17:01 +0000236
237// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
238// RUN: -target x86_64-unknown-linux -fsanitize=leak \
239// RUN: --sysroot=%S/Inputs/basic_linux_tree \
240// RUN: | FileCheck --check-prefix=CHECK-LSAN-LINUX %s
241//
242// CHECK-LSAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
243// CHECK-LSAN-LINUX-NOT: "-lc"
244// CHECK-LSAN-LINUX: libclang_rt.lsan-x86_64.a"
245// CHECK-LSAN-LINUX: "-lpthread"
246// CHECK-LSAN-LINUX: "-ldl"
247
248// RUN: %clang -fsanitize=leak,undefined %s -### -o %t.o 2>&1 \
249// RUN: -target x86_64-unknown-linux \
250// RUN: --sysroot=%S/Inputs/basic_linux_tree \
251// RUN: | FileCheck --check-prefix=CHECK-LSAN-UBSAN-LINUX %s
252// CHECK-LSAN-UBSAN-LINUX: "{{.*}}ld{{(.exe)?}}"
253// CHECK-LSAN-UBSAN-LINUX-NOT: libclang_rt.san
254// CHECK-LSAN-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.lsan-x86_64.a" "-no-whole-archive"
255// CHECK-LSAN-UBSAN-LINUX-NOT: libclang_rt.san
Peter Collingbournebf548552013-10-20 21:29:13 +0000256// CHECK-LSAN-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.ubsan-x86_64.a" "-no-whole-archive"
Sergey Matveev050309f2013-05-27 11:17:01 +0000257// CHECK-LSAN-UBSAN-LINUX-NOT: libclang_rt.ubsan_cxx
258// CHECK-LSAN-UBSAN-LINUX: "-lpthread"
259// CHECK-LSAN-UBSAN-LINUX-NOT: "-lstdc++"
260
261// RUN: %clang -fsanitize=leak,address %s -### -o %t.o 2>&1 \
262// RUN: -target x86_64-unknown-linux \
263// RUN: --sysroot=%S/Inputs/basic_linux_tree \
264// RUN: | FileCheck --check-prefix=CHECK-LSAN-ASAN-LINUX %s
265// CHECK-LSAN-ASAN-LINUX: "{{.*}}ld{{(.exe)?}}"
266// CHECK-LSAN-ASAN-LINUX-NOT: libclang_rt.lsan
267// CHECK-LSAN-ASAN-LINUX: libclang_rt.asan-x86_64
268// CHECK-LSAN-ASAN-LINUX-NOT: libclang_rt.lsan