blob: 786262c68b84128e1e4ed5d76197af768ab667fc [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 \
Stephen Hinesc568f1e2014-07-21 00:47:37 -0700137// RUN: -shared-libasan \
138// RUN: | FileCheck --check-prefix=CHECK-ASAN-ANDROID-SHARED-LIBASAN %s
139//
140// CHECK-ASAN-ANDROID-SHARED-LIBASAN-NOT: argument unused during compilation: '-shared-libasan'
141//
142// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
143// RUN: -target arm-linux-androideabi -fsanitize=address \
144// RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \
Alexey Samsonov86143042013-02-27 11:14:55 +0000145// RUN: -shared \
146// RUN: | FileCheck --check-prefix=CHECK-ASAN-ANDROID-SHARED %s
147//
148// CHECK-ASAN-ANDROID-SHARED: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
149// CHECK-ASAN-ANDROID-SHARED-NOT: "-lc"
150// CHECK-ASAN-ANDROID-SHARED: libclang_rt.asan-arm-android.so"
151// CHECK-ASAN-ANDROID-SHARED-NOT: "-lpthread"
152
153// RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
154// RUN: -target x86_64-unknown-linux -lstdc++ -fsanitize=thread \
Richard Smith76e6e132013-03-23 00:30:08 +0000155// RUN: -resource-dir=%S/Inputs/resource_dir \
Alexey Samsonov86143042013-02-27 11:14:55 +0000156// RUN: --sysroot=%S/Inputs/basic_linux_tree \
157// RUN: | FileCheck --check-prefix=CHECK-TSAN-LINUX-CXX %s
158//
159// CHECK-TSAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
160// CHECK-TSAN-LINUX-CXX-NOT: stdc++
161// CHECK-TSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.tsan-x86_64.a" "-no-whole-archive"
162// CHECK-TSAN-LINUX-CXX: "-lpthread"
Evgeniy Stepanov3a8aff92013-05-24 14:28:03 +0000163// CHECK-TSAN-LINUX-CXX: "-lrt"
Alexey Samsonov86143042013-02-27 11:14:55 +0000164// CHECK-TSAN-LINUX-CXX: "-ldl"
Richard Smith76e6e132013-03-23 00:30:08 +0000165// CHECK-TSAN-LINUX-CXX-NOT: "-export-dynamic"
166// CHECK-TSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.tsan-x86_64.a.syms"
Alexey Samsonov86143042013-02-27 11:14:55 +0000167// CHECK-TSAN-LINUX-CXX: stdc++
168
169// RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \
170// RUN: -target x86_64-unknown-linux -lstdc++ -fsanitize=memory \
Richard Smith76e6e132013-03-23 00:30:08 +0000171// RUN: -resource-dir=%S/Inputs/resource_dir \
Alexey Samsonov86143042013-02-27 11:14:55 +0000172// RUN: --sysroot=%S/Inputs/basic_linux_tree \
173// RUN: | FileCheck --check-prefix=CHECK-MSAN-LINUX-CXX %s
174//
175// CHECK-MSAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
176// CHECK-MSAN-LINUX-CXX-NOT: stdc++
177// CHECK-MSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.msan-x86_64.a" "-no-whole-archive"
178// CHECK-MSAN-LINUX-CXX: "-lpthread"
Evgeniy Stepanov3a8aff92013-05-24 14:28:03 +0000179// CHECK-MSAN-LINUX-CXX: "-lrt"
Alexey Samsonov86143042013-02-27 11:14:55 +0000180// CHECK-MSAN-LINUX-CXX: "-ldl"
Richard Smith76e6e132013-03-23 00:30:08 +0000181// CHECK-MSAN-LINUX-CXX-NOT: "-export-dynamic"
182// CHECK-MSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.msan-x86_64.a.syms"
Alexey Samsonov86143042013-02-27 11:14:55 +0000183// CHECK-MSAN-LINUX-CXX: stdc++
184
185// RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \
186// RUN: -target i386-unknown-linux \
187// RUN: --sysroot=%S/Inputs/basic_linux_tree \
188// RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX %s
189// CHECK-UBSAN-LINUX: "{{.*}}ld{{(.exe)?}}"
Richard Smith61a574f2013-03-20 23:49:07 +0000190// CHECK-UBSAN-LINUX-NOT: libclang_rt.asan
Peter Collingbournebf548552013-10-20 21:29:13 +0000191// CHECK-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.san-i386.a" "-no-whole-archive"
Nick Lewycky63d29e22013-10-19 00:27:23 +0000192// CHECK-UBSAN-LINUX-NOT: libclang_rt.asan
Peter Collingbournebf548552013-10-20 21:29:13 +0000193// CHECK-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.ubsan-i386.a" "-no-whole-archive"
194// CHECK-UBSAN-LINUX-NOT: libclang_rt.ubsan_cxx
Alexey Samsonov86143042013-02-27 11:14:55 +0000195// CHECK-UBSAN-LINUX: "-lpthread"
Richard Smith61a574f2013-03-20 23:49:07 +0000196// CHECK-UBSAN-LINUX-NOT: "-lstdc++"
197
198// RUN: %clangxx -fsanitize=undefined %s -### -o %t.o 2>&1 \
199// RUN: -target i386-unknown-linux \
Stephen Hinesc568f1e2014-07-21 00:47:37 -0700200// RUN: -resource-dir=%S/Inputs/resource_dir \
Richard Smith61a574f2013-03-20 23:49:07 +0000201// RUN: --sysroot=%S/Inputs/basic_linux_tree \
202// RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX-CXX %s
203// CHECK-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}"
204// CHECK-UBSAN-LINUX-CXX-NOT: libclang_rt.asan
Peter Collingbournebf548552013-10-20 21:29:13 +0000205// CHECK-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.san-i386.a" "-no-whole-archive"
Richard Smith61a574f2013-03-20 23:49:07 +0000206// CHECK-UBSAN-LINUX-CXX-NOT: libclang_rt.asan
Peter Collingbournebf548552013-10-20 21:29:13 +0000207// CHECK-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.ubsan-i386.a" "-no-whole-archive"
Stephen Hinesc568f1e2014-07-21 00:47:37 -0700208// CHECK-UBSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.ubsan-i386.a.syms"
Peter Collingbournebf548552013-10-20 21:29:13 +0000209// CHECK-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.ubsan_cxx-i386.a" "-no-whole-archive"
Richard Smith61a574f2013-03-20 23:49:07 +0000210// CHECK-UBSAN-LINUX-CXX: "-lpthread"
Stephen Hinesc568f1e2014-07-21 00:47:37 -0700211// CHECK-UBSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.ubsan_cxx-i386.a.syms"
Richard Smith61a574f2013-03-20 23:49:07 +0000212// CHECK-UBSAN-LINUX-CXX: "-lstdc++"
213
214// RUN: %clang -fsanitize=address,undefined %s -### -o %t.o 2>&1 \
215// RUN: -target i386-unknown-linux \
216// RUN: --sysroot=%S/Inputs/basic_linux_tree \
217// RUN: | FileCheck --check-prefix=CHECK-ASAN-UBSAN-LINUX %s
218// CHECK-ASAN-UBSAN-LINUX: "{{.*}}ld{{(.exe)?}}"
219// CHECK-ASAN-UBSAN-LINUX-NOT: libclang_rt.san
220// CHECK-ASAN-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.asan-i386.a" "-no-whole-archive"
221// CHECK-ASAN-UBSAN-LINUX-NOT: libclang_rt.san
Peter Collingbournebf548552013-10-20 21:29:13 +0000222// CHECK-ASAN-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.ubsan-i386.a" "-no-whole-archive"
Richard Smith61a574f2013-03-20 23:49:07 +0000223// CHECK-ASAN-UBSAN-LINUX-NOT: libclang_rt.ubsan_cxx
224// CHECK-ASAN-UBSAN-LINUX: "-lpthread"
225// CHECK-ASAN-UBSAN-LINUX-NOT: "-lstdc++"
226
227// RUN: %clangxx -fsanitize=address,undefined %s -### -o %t.o 2>&1 \
228// RUN: -target i386-unknown-linux \
229// RUN: --sysroot=%S/Inputs/basic_linux_tree \
230// RUN: | FileCheck --check-prefix=CHECK-ASAN-UBSAN-LINUX-CXX %s
231// CHECK-ASAN-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}"
232// CHECK-ASAN-UBSAN-LINUX-CXX-NOT: libclang_rt.san
233// CHECK-ASAN-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.asan-i386.a" "-no-whole-archive"
234// CHECK-ASAN-UBSAN-LINUX-CXX-NOT: libclang_rt.san
Peter Collingbournebf548552013-10-20 21:29:13 +0000235// CHECK-ASAN-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.ubsan-i386.a" "-no-whole-archive"
236// CHECK-ASAN-UBSAN-LINUX-CXX: "-whole-archive" "{{.*}}libclang_rt.ubsan_cxx-i386.a" "-no-whole-archive"
Richard Smith61a574f2013-03-20 23:49:07 +0000237// CHECK-ASAN-UBSAN-LINUX-CXX: "-lpthread"
238// CHECK-ASAN-UBSAN-LINUX-CXX: "-lstdc++"
Alexey Samsonov86143042013-02-27 11:14:55 +0000239
240// RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \
241// RUN: -target i386-unknown-linux \
Stephen Hinesc568f1e2014-07-21 00:47:37 -0700242// RUN: -resource-dir=%S/Inputs/resource_dir \
Alexey Samsonov86143042013-02-27 11:14:55 +0000243// RUN: --sysroot=%S/Inputs/basic_linux_tree \
244// RUN: -shared \
245// RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX-SHARED %s
246// CHECK-UBSAN-LINUX-SHARED: "{{.*}}ld{{(.exe)?}}"
Stephen Hinesc568f1e2014-07-21 00:47:37 -0700247// CHECK-UBSAN-LINUX-SHARED-NOT: --export-dynamic
248// CHECK-UBSAN-LINUX-SHARED-NOT: --dynamic-list
249// CHECK-UBSAN-LINUX-SHARED-NOT: libclang_rt.ubsan-i386.a"
250// CHECK-UBSAN-LINUX-SHARED-NOT: --export-dynamic
251// CHECK-UBSAN-LINUX-SHARED-NOT: --dynamic-list
Sergey Matveev050309f2013-05-27 11:17:01 +0000252
253// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
254// RUN: -target x86_64-unknown-linux -fsanitize=leak \
255// RUN: --sysroot=%S/Inputs/basic_linux_tree \
256// RUN: | FileCheck --check-prefix=CHECK-LSAN-LINUX %s
257//
258// CHECK-LSAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
259// CHECK-LSAN-LINUX-NOT: "-lc"
260// CHECK-LSAN-LINUX: libclang_rt.lsan-x86_64.a"
261// CHECK-LSAN-LINUX: "-lpthread"
262// CHECK-LSAN-LINUX: "-ldl"
263
264// RUN: %clang -fsanitize=leak,undefined %s -### -o %t.o 2>&1 \
265// RUN: -target x86_64-unknown-linux \
266// RUN: --sysroot=%S/Inputs/basic_linux_tree \
267// RUN: | FileCheck --check-prefix=CHECK-LSAN-UBSAN-LINUX %s
268// CHECK-LSAN-UBSAN-LINUX: "{{.*}}ld{{(.exe)?}}"
269// CHECK-LSAN-UBSAN-LINUX-NOT: libclang_rt.san
270// CHECK-LSAN-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.lsan-x86_64.a" "-no-whole-archive"
271// CHECK-LSAN-UBSAN-LINUX-NOT: libclang_rt.san
Peter Collingbournebf548552013-10-20 21:29:13 +0000272// CHECK-LSAN-UBSAN-LINUX: "-whole-archive" "{{.*}}libclang_rt.ubsan-x86_64.a" "-no-whole-archive"
Sergey Matveev050309f2013-05-27 11:17:01 +0000273// CHECK-LSAN-UBSAN-LINUX-NOT: libclang_rt.ubsan_cxx
274// CHECK-LSAN-UBSAN-LINUX: "-lpthread"
275// CHECK-LSAN-UBSAN-LINUX-NOT: "-lstdc++"
276
277// RUN: %clang -fsanitize=leak,address %s -### -o %t.o 2>&1 \
278// RUN: -target x86_64-unknown-linux \
279// RUN: --sysroot=%S/Inputs/basic_linux_tree \
280// RUN: | FileCheck --check-prefix=CHECK-LSAN-ASAN-LINUX %s
281// CHECK-LSAN-ASAN-LINUX: "{{.*}}ld{{(.exe)?}}"
282// CHECK-LSAN-ASAN-LINUX-NOT: libclang_rt.lsan
283// CHECK-LSAN-ASAN-LINUX: libclang_rt.asan-x86_64
284// CHECK-LSAN-ASAN-LINUX-NOT: libclang_rt.lsan