1 | // Test sanitizers ld flags. |
2 | |
3 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
4 | // RUN: -target i386-unknown-linux -fuse-ld=ld -fsanitize=address \ |
5 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
6 | // 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-NOT: "--export-dynamic" |
13 | // CHECK-ASAN-LINUX: "--dynamic-list={{.*}}libclang_rt.asan-i386.a.syms" |
14 | // CHECK-ASAN-LINUX-NOT: "--export-dynamic" |
15 | // CHECK-ASAN-LINUX: "-lpthread" |
16 | // CHECK-ASAN-LINUX: "-lrt" |
17 | // CHECK-ASAN-LINUX: "-ldl" |
18 | |
19 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
20 | // RUN: -target i386-unknown-linux -fuse-ld=ld -fsanitize=address -shared-libsan \ |
21 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
22 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
23 | // RUN: | FileCheck --check-prefix=CHECK-SHARED-ASAN-LINUX %s |
24 | |
25 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
26 | // RUN: -target i386-unknown-linux -fuse-ld=ld -fsanitize=address -shared-libasan \ |
27 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
28 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
29 | // RUN: | FileCheck --check-prefix=CHECK-SHARED-ASAN-LINUX %s |
30 | |
31 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
32 | // RUN: -target i386-unknown-linux -fuse-ld=ld -fsanitize=address \ |
33 | // RUN: -shared-libsan -static-libsan -shared-libasan \ |
34 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
35 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
36 | // RUN: | FileCheck --check-prefix=CHECK-SHARED-ASAN-LINUX %s |
37 | // |
38 | // CHECK-SHARED-ASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
39 | // CHECK-SHARED-ASAN-LINUX-NOT: "-lc" |
40 | // CHECK-SHARED-ASAN-LINUX-NOT: libclang_rt.asan-i386.a" |
41 | // CHECK-SHARED-ASAN-LINUX: libclang_rt.asan-i386.so" |
42 | // CHECK-SHARED-ASAN-LINUX: "--whole-archive" "{{.*}}libclang_rt.asan-preinit-i386.a" "--no-whole-archive" |
43 | // CHECK-SHARED-ASAN-LINUX-NOT: "-lpthread" |
44 | // CHECK-SHARED-ASAN-LINUX-NOT: "-lrt" |
45 | // CHECK-SHARED-ASAN-LINUX-NOT: "-ldl" |
46 | // CHECK-SHARED-ASAN-LINUX-NOT: "--export-dynamic" |
47 | // CHECK-SHARED-ASAN-LINUX-NOT: "--dynamic-list" |
48 | |
49 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \ |
50 | // RUN: -target i386-unknown-linux -fuse-ld=ld -fsanitize=address -shared-libsan \ |
51 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
52 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
53 | // RUN: | FileCheck --check-prefix=CHECK-DSO-SHARED-ASAN-LINUX %s |
54 | // |
55 | // CHECK-DSO-SHARED-ASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
56 | // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-lc" |
57 | // CHECK-DSO-SHARED-ASAN-LINUX-NOT: libclang_rt.asan-i386.a" |
58 | // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "libclang_rt.asan-preinit-i386.a" |
59 | // CHECK-DSO-SHARED-ASAN-LINUX: libclang_rt.asan-i386.so" |
60 | // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-lpthread" |
61 | // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-lrt" |
62 | // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "-ldl" |
63 | // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "--export-dynamic" |
64 | // CHECK-DSO-SHARED-ASAN-LINUX-NOT: "--dynamic-list" |
65 | |
66 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
67 | // RUN: -target i386-unknown-freebsd -fuse-ld=ld -fsanitize=address \ |
68 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
69 | // RUN: --sysroot=%S/Inputs/basic_freebsd_tree \ |
70 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-FREEBSD %s |
71 | // |
72 | // CHECK-ASAN-FREEBSD: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
73 | // CHECK-ASAN-FREEBSD-NOT: "-lc" |
74 | // CHECK-ASAN-FREEBSD-NOT: libclang_rt.asan_cxx |
75 | // CHECK-ASAN-FREEBSD: freebsd{{/|\\+}}libclang_rt.asan-i386.a" |
76 | // CHECK-ASAN-FREEBSD-NOT: libclang_rt.asan_cxx |
77 | // CHECK-ASAN-FREEBSD-NOT: "--dynamic-list" |
78 | // CHECK-ASAN-FREEBSD: "--export-dynamic" |
79 | // CHECK-ASAN-FREEBSD: "-lpthread" |
80 | // CHECK-ASAN-FREEBSD: "-lrt" |
81 | |
82 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
83 | // RUN: -target i386-unknown-freebsd -fuse-ld=ld -fsanitize=address \ |
84 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
85 | // RUN: --sysroot=%S/Inputs/basic_freebsd_tree \ |
86 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-FREEBSD-LDL %s |
87 | // |
88 | // CHECK-ASAN-FREEBSD-LDL: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
89 | // CHECK-ASAN-FREEBSD-LDL-NOT: "-ldl" |
90 | |
91 | // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
92 | // RUN: -target i386-unknown-linux -fuse-ld=ld -stdlib=platform -fsanitize=address \ |
93 | // RUN: -resource-dir=%S/Inputs/empty_resource_dir \ |
94 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
95 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-LINUX-CXX %s |
96 | // |
97 | // CHECK-ASAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
98 | // CHECK-ASAN-LINUX-CXX-NOT: "-lc" |
99 | // CHECK-ASAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.asan-i386.a" "--no-whole-archive" |
100 | // CHECK-ASAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.asan_cxx-i386.a" "--no-whole-archive" |
101 | // CHECK-ASAN-LINUX-CXX-NOT: "--dynamic-list" |
102 | // CHECK-ASAN-LINUX-CXX: "--export-dynamic" |
103 | // CHECK-ASAN-LINUX-CXX: stdc++ |
104 | // CHECK-ASAN-LINUX-CXX: "-lpthread" |
105 | // CHECK-ASAN-LINUX-CXX: "-lrt" |
106 | // CHECK-ASAN-LINUX-CXX: "-ldl" |
107 | |
108 | // RUN: %clang -no-canonical-prefixes %s -### -o /dev/null -fsanitize=address \ |
109 | // RUN: -target i386-unknown-linux -fuse-ld=ld -stdlib=platform \ |
110 | // RUN: --sysroot=%S/Inputs/basic_linux_tree -lstdc++ -static 2>&1 \ |
111 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-LINUX-CXX-STATIC %s |
112 | // |
113 | // CHECK-ASAN-LINUX-CXX-STATIC: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
114 | // CHECK-ASAN-LINUX-CXX-STATIC-NOT: stdc++ |
115 | // CHECK-ASAN-LINUX-CXX-STATIC: "--whole-archive" "{{.*}}libclang_rt.asan-i386.a" "--no-whole-archive" |
116 | // CHECK-ASAN-LINUX-CXX-STATIC: stdc++ |
117 | |
118 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
119 | // RUN: -target arm-linux-gnueabi -fuse-ld=ld -fsanitize=address \ |
120 | // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
121 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-ARM %s |
122 | // |
123 | // CHECK-ASAN-ARM: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
124 | // CHECK-ASAN-ARM-NOT: "-lc" |
125 | // CHECK-ASAN-ARM: libclang_rt.asan-arm.a" |
126 | // |
127 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
128 | // RUN: -target armv7l-linux-gnueabi -fuse-ld=ld -fsanitize=address \ |
129 | // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
130 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-ARMv7 %s |
131 | // |
132 | // CHECK-ASAN-ARMv7: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
133 | // CHECK-ASAN-ARMv7-NOT: "-lc" |
134 | // CHECK-ASAN-ARMv7: libclang_rt.asan-arm.a" |
135 | |
136 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
137 | // RUN: -target arm-linux-androideabi -fuse-ld=ld -fsanitize=address \ |
138 | // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
139 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-ANDROID %s |
140 | // |
141 | // CHECK-ASAN-ANDROID: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
142 | // CHECK-ASAN-ANDROID-NOT: "-lc" |
143 | // CHECK-ASAN-ANDROID-NOT: "-pie" |
144 | // CHECK-ASAN-ANDROID-NOT: "-lpthread" |
145 | // CHECK-ASAN-ANDROID: libclang_rt.asan-arm-android.so" |
146 | // CHECK-ASAN-ANDROID-NOT: "-lpthread" |
147 | |
148 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
149 | // RUN: -target arm-linux-androideabi -fuse-ld=ld -fsanitize=address \ |
150 | // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
151 | // RUN: -static-libsan \ |
152 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-ANDROID-STATICLIBASAN %s |
153 | // |
154 | // CHECK-ASAN-ANDROID-STATICLIBASAN: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
155 | // CHECK-ASAN-ANDROID-STATICLIBASAN: libclang_rt.asan-arm-android.a" |
156 | // CHECK-ASAN-ANDROID-STATICLIBASAN-NOT: "-lpthread" |
157 | // CHECK-ASAN-ANDROID-STATICLIBASAN-NOT: "-lrt" |
158 | |
159 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
160 | // RUN: -target arm-linux-androideabi -fuse-ld=ld -fsanitize=undefined \ |
161 | // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
162 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-ANDROID %s |
163 | // |
164 | // CHECK-UBSAN-ANDROID: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
165 | // CHECK-UBSAN-ANDROID-NOT: "-lc" |
166 | // CHECK-UBSAN-ANDROID-NOT: "-pie" |
167 | // CHECK-UBSAN-ANDROID-NOT: "-lpthread" |
168 | // CHECK-UBSAN-ANDROID: libclang_rt.ubsan_standalone-arm-android.so" |
169 | // CHECK-UBSAN-ANDROID-NOT: "-lpthread" |
170 | |
171 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
172 | // RUN: -target arm-linux-androideabi -fuse-ld=ld -fsanitize=undefined \ |
173 | // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
174 | // RUN: -static-libsan \ |
175 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-ANDROID-STATICLIBASAN %s |
176 | // |
177 | // CHECK-UBSAN-ANDROID-STATICLIBASAN: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
178 | // CHECK-UBSAN-ANDROID-STATICLIBASAN: libclang_rt.ubsan_standalone-arm-android.a" |
179 | // CHECK-UBSAN-ANDROID-STATICLIBASAN-NOT: "-lpthread" |
180 | // CHECK-UBSAN-ANDROID-STATICLIBASAN-NOT: "-lrt" |
181 | |
182 | // |
183 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
184 | // RUN: -target i686-linux-android -fuse-ld=ld -fsanitize=address \ |
185 | // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
186 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-ANDROID-X86 %s |
187 | // |
188 | // CHECK-ASAN-ANDROID-X86: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
189 | // CHECK-ASAN-ANDROID-X86-NOT: "-lc" |
190 | // CHECK-ASAN-ANDROID-X86-NOT: "-pie" |
191 | // CHECK-ASAN-ANDROID-X86-NOT: "-lpthread" |
192 | // CHECK-ASAN-ANDROID-X86: libclang_rt.asan-i686-android.so" |
193 | // CHECK-ASAN-ANDROID-X86-NOT: "-lpthread" |
194 | // |
195 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
196 | // RUN: -target arm-linux-androideabi -fsanitize=address \ |
197 | // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
198 | // RUN: -shared-libsan \ |
199 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-ANDROID-SHARED-LIBASAN %s |
200 | // |
201 | // CHECK-ASAN-ANDROID-SHARED-LIBASAN-NOT: argument unused during compilation: '-shared-libsan' |
202 | // |
203 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
204 | // RUN: -target arm-linux-androideabi -fuse-ld=ld -fsanitize=address \ |
205 | // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
206 | // RUN: -shared \ |
207 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-ANDROID-SHARED %s |
208 | // |
209 | // CHECK-ASAN-ANDROID-SHARED: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
210 | // CHECK-ASAN-ANDROID-SHARED-NOT: "-lc" |
211 | // CHECK-ASAN-ANDROID-SHARED: libclang_rt.asan-arm-android.so" |
212 | // CHECK-ASAN-ANDROID-SHARED-NOT: "-lpthread" |
213 | |
214 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
215 | // RUN: -target sparcel-myriad-rtems-elf -fuse-ld=ld -fsanitize=address \ |
216 | // RUN: --sysroot=%S/Inputs/basic_myriad_tree \ |
217 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-MYRIAD %s |
218 | // |
219 | // CHECK-ASAN-MYRIAD: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
220 | // CHECK-ASAN-MYRIAD-NOT: "-lc" |
221 | // CHECK-ASAN-MYRIAD: libclang_rt.asan-sparcel.a" |
222 | |
223 | // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
224 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld -stdlib=platform -lstdc++ \ |
225 | // RUN: -fsanitize=thread \ |
226 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
227 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
228 | // RUN: | FileCheck --check-prefix=CHECK-TSAN-LINUX-CXX %s |
229 | // |
230 | // CHECK-TSAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
231 | // CHECK-TSAN-LINUX-CXX-NOT: stdc++ |
232 | // CHECK-TSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.tsan-x86_64.a" "--no-whole-archive" |
233 | // CHECK-TSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.tsan-x86_64.a.syms" |
234 | // CHECK-TSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.tsan_cxx-x86_64.a" "--no-whole-archive" |
235 | // CHECK-TSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.tsan_cxx-x86_64.a.syms" |
236 | // CHECK-TSAN-LINUX-CXX-NOT: "--export-dynamic" |
237 | // CHECK-TSAN-LINUX-CXX: stdc++ |
238 | // CHECK-TSAN-LINUX-CXX: "-lpthread" |
239 | // CHECK-TSAN-LINUX-CXX: "-lrt" |
240 | // CHECK-TSAN-LINUX-CXX: "-ldl" |
241 | |
242 | // RUN: %clangxx -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
243 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld -stdlib=platform -lstdc++ \ |
244 | // RUN: -fsanitize=memory \ |
245 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
246 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
247 | // RUN: | FileCheck --check-prefix=CHECK-MSAN-LINUX-CXX %s |
248 | // |
249 | // CHECK-MSAN-LINUX-CXX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
250 | // CHECK-MSAN-LINUX-CXX-NOT: stdc++ |
251 | // CHECK-MSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.msan-x86_64.a" "--no-whole-archive" |
252 | // CHECK-MSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.msan-x86_64.a.syms" |
253 | // CHECK-MSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.msan_cxx-x86_64.a" "--no-whole-archive" |
254 | // CHECK-MSAN-LINUX-CXX: "--dynamic-list={{.*}}libclang_rt.msan_cxx-x86_64.a.syms" |
255 | // CHECK-MSAN-LINUX-CXX-NOT: "--export-dynamic" |
256 | // CHECK-MSAN-LINUX-CXX: stdc++ |
257 | // CHECK-MSAN-LINUX-CXX: "-lpthread" |
258 | // CHECK-MSAN-LINUX-CXX: "-lrt" |
259 | // CHECK-MSAN-LINUX-CXX: "-ldl" |
260 | |
261 | // RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \ |
262 | // RUN: -target i386-unknown-linux -fuse-ld=ld \ |
263 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
264 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX %s |
265 | |
266 | // RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \ |
267 | // RUN: -target i386-unknown-linux -fuse-ld=ld \ |
268 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
269 | // RUN: -static-libsan \ |
270 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX %s |
271 | |
272 | // CHECK-UBSAN-LINUX: "{{.*}}ld{{(.exe)?}}" |
273 | // CHECK-UBSAN-LINUX-NOT: libclang_rt.asan |
274 | // CHECK-UBSAN-LINUX-NOT: libclang_rt.ubsan_standalone_cxx |
275 | // CHECK-UBSAN-LINUX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone-i386.a" "--no-whole-archive" |
276 | // CHECK-UBSAN-LINUX-NOT: libclang_rt.asan |
277 | // CHECK-UBSAN-LINUX-NOT: libclang_rt.ubsan_standalone_cxx |
278 | // CHECK-UBSAN-LINUX-NOT: "-lstdc++" |
279 | // CHECK-UBSAN-LINUX: "-lpthread" |
280 | |
281 | // RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \ |
282 | // RUN: -target i386-unknown-linux -fuse-ld=ld \ |
283 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
284 | // RUN: -shared-libsan \ |
285 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX-SHAREDLIBASAN %s |
286 | |
287 | // RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \ |
288 | // RUN: -target i386-unknown-linux -fuse-ld=ld \ |
289 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
290 | // RUN: -static-libsan -shared-libsan \ |
291 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX-SHAREDLIBASAN %s |
292 | |
293 | // RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \ |
294 | // RUN: -target i386-unknown-linux -fuse-ld=ld \ |
295 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
296 | // RUN: -shared -shared-libsan \ |
297 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX-SHAREDLIBASAN %s |
298 | |
299 | // CHECK-UBSAN-LINUX-SHAREDLIBASAN: "{{.*}}ld{{(.exe)?}}" |
300 | // CHECK-UBSAN-LINUX-SHAREDLIBASAN: "{{.*}}libclang_rt.ubsan_standalone-i386.so{{.*}}" |
301 | |
302 | // RUN: %clang -fsanitize=undefined -fsanitize-link-c++-runtime %s -### -o %t.o 2>&1 \ |
303 | // RUN: -target i386-unknown-linux \ |
304 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
305 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX-LINK-CXX %s |
306 | // CHECK-UBSAN-LINUX-LINK-CXX-NOT: "-lstdc++" |
307 | // CHECK-UBSAN-LINUX-LINK-CXX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone_cxx-i386.a" "--no-whole-archive" |
308 | // CHECK-UBSAN-LINUX-LINK-CXX-NOT: "-lstdc++" |
309 | |
310 | // RUN: %clangxx -fsanitize=undefined %s -### -o %t.o 2>&1 \ |
311 | // RUN: -target i386-unknown-linux -fuse-ld=ld -stdlib=platform \ |
312 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
313 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
314 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX-CXX %s |
315 | // CHECK-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}" |
316 | // CHECK-UBSAN-LINUX-CXX-NOT: libclang_rt.asan |
317 | // CHECK-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone-i386.a" "--no-whole-archive" |
318 | // CHECK-UBSAN-LINUX-CXX-NOT: libclang_rt.asan |
319 | // CHECK-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone_cxx-i386.a" "--no-whole-archive" |
320 | // CHECK-UBSAN-LINUX-CXX-NOT: libclang_rt.asan |
321 | // CHECK-UBSAN-LINUX-CXX: "-lstdc++" |
322 | // CHECK-UBSAN-LINUX-CXX-NOT: libclang_rt.asan |
323 | // CHECK-UBSAN-LINUX-CXX: "-lpthread" |
324 | |
325 | // RUN: %clang -fsanitize=undefined -fsanitize-minimal-runtime %s -### -o %t.o 2>&1 \ |
326 | // RUN: -target i386-unknown-linux -fuse-ld=ld \ |
327 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
328 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-MINIMAL-LINUX %s |
329 | // CHECK-UBSAN-MINIMAL-LINUX: "{{.*}}ld{{(.exe)?}}" |
330 | // CHECK-UBSAN-MINIMAL-LINUX: "--whole-archive" "{{.*}}libclang_rt.ubsan_minimal-i386.a" "--no-whole-archive" |
331 | // CHECK-UBSAN-MINIMAL-LINUX: "-lpthread" |
332 | |
333 | // RUN: %clang -fsanitize=undefined -fsanitize-minimal-runtime %s -### -o %t.o 2>&1 \ |
334 | // RUN: -target x86_64-apple-darwin -fuse-ld=ld \ |
335 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
336 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-MINIMAL-DARWIN %s |
337 | // CHECK-UBSAN-MINIMAL-DARWIN: "{{.*}}ld{{(.exe)?}}" |
338 | // CHECK-UBSAN-MINIMAL-DARWIN: "{{.*}}libclang_rt.ubsan_minimal_osx_dynamic.dylib" |
339 | |
340 | // RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \ |
341 | // RUN: -target x86_64-apple-darwin -fuse-ld=ld -static-libsan \ |
342 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
343 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-STATIC-DARWIN %s |
344 | // CHECK-UBSAN-STATIC-DARWIN: "{{.*}}ld{{(.exe)?}}" |
345 | // CHECK-UBSAN-STATIC-DARWIN: "{{.*}}libclang_rt.ubsan_osx.a" |
346 | |
347 | // RUN: %clang -fsanitize=address,undefined %s -### -o %t.o 2>&1 \ |
348 | // RUN: -target i386-unknown-linux -fuse-ld=ld \ |
349 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
350 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-UBSAN-LINUX %s |
351 | // CHECK-ASAN-UBSAN-LINUX: "{{.*}}ld{{(.exe)?}}" |
352 | // CHECK-ASAN-UBSAN-LINUX: "--whole-archive" "{{.*}}libclang_rt.asan-i386.a" "--no-whole-archive" |
353 | // CHECK-ASAN-UBSAN-LINUX-NOT: libclang_rt.ubsan |
354 | // CHECK-ASAN-UBSAN-LINUX-NOT: "-lstdc++" |
355 | // CHECK-ASAN-UBSAN-LINUX: "-lpthread" |
356 | |
357 | // RUN: %clangxx -fsanitize=address,undefined %s -### -o %t.o 2>&1 \ |
358 | // RUN: -target i386-unknown-linux -fuse-ld=ld -stdlib=platform \ |
359 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
360 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-UBSAN-LINUX-CXX %s |
361 | // CHECK-ASAN-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}" |
362 | // CHECK-ASAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.asan-i386.a" "--no-whole-archive" |
363 | // CHECK-ASAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.asan_cxx-i386.a" "--no-whole-archive" |
364 | // CHECK-ASAN-UBSAN-LINUX-CXX-NOT: libclang_rt.ubsan |
365 | // CHECK-ASAN-UBSAN-LINUX-CXX: "-lstdc++" |
366 | // CHECK-ASAN-UBSAN-LINUX-CXX: "-lpthread" |
367 | |
368 | // RUN: %clangxx -fsanitize=memory,undefined %s -### -o %t.o 2>&1 \ |
369 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld \ |
370 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
371 | // RUN: | FileCheck --check-prefix=CHECK-MSAN-UBSAN-LINUX-CXX %s |
372 | // CHECK-MSAN-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}" |
373 | // CHECK-MSAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.msan-x86_64.a" "--no-whole-archive" |
374 | // CHECK-MSAN-UBSAN-LINUX-CXX-NOT: libclang_rt.ubsan |
375 | |
376 | // RUN: %clangxx -fsanitize=thread,undefined %s -### -o %t.o 2>&1 \ |
377 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld \ |
378 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
379 | // RUN: | FileCheck --check-prefix=CHECK-TSAN-UBSAN-LINUX-CXX %s |
380 | // CHECK-TSAN-UBSAN-LINUX-CXX: "{{.*}}ld{{(.exe)?}}" |
381 | // CHECK-TSAN-UBSAN-LINUX-CXX: "--whole-archive" "{{.*}}libclang_rt.tsan-x86_64.a" "--no-whole-archive" |
382 | // CHECK-TSAN-UBSAN-LINUX-CXX-NOT: libclang_rt.ubsan |
383 | |
384 | // RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \ |
385 | // RUN: -target i386-unknown-linux -fuse-ld=ld \ |
386 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
387 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
388 | // RUN: -shared \ |
389 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-LINUX-SHARED %s |
390 | // CHECK-UBSAN-LINUX-SHARED: "{{.*}}ld{{(.exe)?}}" |
391 | // CHECK-UBSAN-LINUX-SHARED-NOT: --export-dynamic |
392 | // CHECK-UBSAN-LINUX-SHARED-NOT: --dynamic-list |
393 | // CHECK-UBSAN-LINUX-SHARED-NOT: libclang_rt.ubsan |
394 | |
395 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
396 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=leak \ |
397 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
398 | // RUN: | FileCheck --check-prefix=CHECK-LSAN-LINUX %s |
399 | // |
400 | // CHECK-LSAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
401 | // CHECK-LSAN-LINUX-NOT: "-lc" |
402 | // CHECK-LSAN-LINUX-NOT: libclang_rt.ubsan |
403 | // CHECK-LSAN-LINUX: libclang_rt.lsan-x86_64.a" |
404 | // CHECK-LSAN-LINUX: "-lpthread" |
405 | // CHECK-LSAN-LINUX: "-ldl" |
406 | |
407 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
408 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=leak -fsanitize-coverage=func \ |
409 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
410 | // RUN: | FileCheck --check-prefix=CHECK-LSAN-COV-LINUX %s |
411 | // |
412 | // CHECK-LSAN-COV-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
413 | // CHECK-LSAN-COV-LINUX-NOT: "-lc" |
414 | // CHECK-LSAN-COV-LINUX-NOT: libclang_rt.ubsan |
415 | // CHECK-LSAV-COV-LINUX: libclang_rt.lsan-x86_64.a" |
416 | // CHECK-LSAN-COV-LINUX-NOT: libclang_rt.ubsan |
417 | // CHECK-LSAN-COV-LINUX: "-lpthread" |
418 | // CHECK-LSAN-COV-LINUX: "-ldl" |
419 | |
420 | // RUN: %clang -fsanitize=leak,address %s -### -o %t.o 2>&1 \ |
421 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld \ |
422 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
423 | // RUN: | FileCheck --check-prefix=CHECK-LSAN-ASAN-LINUX %s |
424 | // CHECK-LSAN-ASAN-LINUX: "{{.*}}ld{{(.exe)?}}" |
425 | // CHECK-LSAN-ASAN-LINUX-NOT: libclang_rt.lsan |
426 | // CHECK-LSAN-ASAN-LINUX: libclang_rt.asan-x86_64 |
427 | // CHECK-LSAN-ASAN-LINUX-NOT: libclang_rt.lsan |
428 | |
429 | // RUN: %clang -fsanitize=address -fsanitize-coverage=func %s -### -o %t.o 2>&1 \ |
430 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld \ |
431 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
432 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-COV-LINUX %s |
433 | // CHECK-ASAN-COV-LINUX: "{{.*}}ld{{(.exe)?}}" |
434 | // CHECK-ASAN-COV-LINUX: "--whole-archive" "{{.*}}libclang_rt.asan-x86_64.a" "--no-whole-archive" |
435 | // CHECK-ASAN-COV-LINUX-NOT: libclang_rt.ubsan |
436 | // CHECK-ASAN-COV-LINUX-NOT: "-lstdc++" |
437 | // CHECK-ASAN-COV-LINUX: "-lpthread" |
438 | |
439 | // RUN: %clang -fsanitize=memory -fsanitize-coverage=func %s -### -o %t.o 2>&1 \ |
440 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld \ |
441 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
442 | // RUN: | FileCheck --check-prefix=CHECK-MSAN-COV-LINUX %s |
443 | // CHECK-MSAN-COV-LINUX: "{{.*}}ld{{(.exe)?}}" |
444 | // CHECK-MSAN-COV-LINUX: "--whole-archive" "{{.*}}libclang_rt.msan-x86_64.a" "--no-whole-archive" |
445 | // CHECK-MSAN-COV-LINUX-NOT: libclang_rt.ubsan |
446 | // CHECK-MSAN-COV-LINUX-NOT: "-lstdc++" |
447 | // CHECK-MSAN-COV-LINUX: "-lpthread" |
448 | |
449 | // RUN: %clang -fsanitize=dataflow -fsanitize-coverage=func %s -### -o %t.o 2>&1 \ |
450 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld \ |
451 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
452 | // RUN: | FileCheck --check-prefix=CHECK-DFSAN-COV-LINUX %s |
453 | // CHECK-DFSAN-COV-LINUX: "{{.*}}ld{{(.exe)?}}" |
454 | // CHECK-DFSAN-COV-LINUX: "--whole-archive" "{{.*}}libclang_rt.dfsan-x86_64.a" "--no-whole-archive" |
455 | // CHECK-DFSAN-COV-LINUX-NOT: libclang_rt.ubsan |
456 | // CHECK-DFSAN-COV-LINUX-NOT: "-lstdc++" |
457 | // CHECK-DFSAN-COV-LINUX: "-lpthread" |
458 | |
459 | // RUN: %clang -fsanitize=undefined -fsanitize-coverage=func %s -### -o %t.o 2>&1 \ |
460 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld \ |
461 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
462 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-COV-LINUX %s |
463 | // CHECK-UBSAN-COV-LINUX: "{{.*}}ld{{(.exe)?}}" |
464 | // CHECK-UBSAN-COV-LINUX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone-x86_64.a" "--no-whole-archive" |
465 | // CHECK-UBSAN-COV-LINUX-NOT: "-lstdc++" |
466 | // CHECK-UBSAN-COV-LINUX: "-lpthread" |
467 | |
468 | // RUN: %clang -fsanitize-coverage=func %s -### -o %t.o 2>&1 \ |
469 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld \ |
470 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
471 | // RUN: | FileCheck --check-prefix=CHECK-COV-LINUX %s |
472 | // CHECK-COV-LINUX: "{{.*}}ld{{(.exe)?}}" |
473 | // CHECK-COV-LINUX: "--whole-archive" "{{.*}}libclang_rt.ubsan_standalone-x86_64.a" "--no-whole-archive" |
474 | // CHECK-COV-LINUX-NOT: "-lstdc++" |
475 | // CHECK-COV-LINUX: "-lpthread" |
476 | |
477 | // CFI by itself does not link runtime libraries. |
478 | // RUN: %clang -fsanitize=cfi %s -### -o %t.o 2>&1 \ |
479 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld -rtlib=platform \ |
480 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
481 | // RUN: | FileCheck --check-prefix=CHECK-CFI-LINUX %s |
482 | // CHECK-CFI-LINUX: "{{.*}}ld{{(.exe)?}}" |
483 | // CHECK-CFI-LINUX-NOT: libclang_rt. |
484 | |
485 | // CFI with diagnostics links the UBSan runtime. |
486 | // RUN: %clang -fsanitize=cfi -fno-sanitize-trap=cfi -fsanitize-recover=cfi \ |
487 | // RUN: %s -### -o %t.o 2>&1\ |
488 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld \ |
489 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
490 | // RUN: | FileCheck --check-prefix=CHECK-CFI-DIAG-LINUX %s |
491 | // CHECK-CFI-DIAG-LINUX: "{{.*}}ld{{(.exe)?}}" |
492 | // CHECK-CFI-DIAG-LINUX: "--whole-archive" "{{[^"]*}}libclang_rt.ubsan_standalone-x86_64.a" "--no-whole-archive" |
493 | |
494 | // Cross-DSO CFI links the CFI runtime. |
495 | // RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso %s -### -o %t.o 2>&1 \ |
496 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld \ |
497 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
498 | // RUN: | FileCheck --check-prefix=CHECK-CFI-CROSS-DSO-LINUX %s |
499 | // CHECK-CFI-CROSS-DSO-LINUX: "{{.*}}ld{{(.exe)?}}" |
500 | // CHECK-CFI-CROSS-DSO-LINUX: "--whole-archive" "{{[^"]*}}libclang_rt.cfi-x86_64.a" "--no-whole-archive" |
501 | // CHECK-CFI-CROSS-DSO-LINUX: -export-dynamic |
502 | |
503 | // Cross-DSO CFI with diagnostics links just the CFI runtime. |
504 | // RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso %s -### -o %t.o 2>&1 \ |
505 | // RUN: -fno-sanitize-trap=cfi -fsanitize-recover=cfi \ |
506 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld \ |
507 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
508 | // RUN: | FileCheck --check-prefix=CHECK-CFI-CROSS-DSO-DIAG-LINUX %s |
509 | // CHECK-CFI-CROSS-DSO-DIAG-LINUX: "{{.*}}ld{{(.exe)?}}" |
510 | // CHECK-CFI-CROSS-DSO-DIAG-LINUX: "--whole-archive" "{{[^"]*}}libclang_rt.cfi_diag-x86_64.a" "--no-whole-archive" |
511 | // CHECK-CFI-CROSS-DSO-DIAG-LINUX: -export-dynamic |
512 | |
513 | // Cross-DSO CFI on Android does not link runtime libraries. |
514 | // RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso %s -### -o %t.o 2>&1 \ |
515 | // RUN: -target aarch64-linux-android -fuse-ld=ld \ |
516 | // RUN: --sysroot=%S/Inputs/basic_android_tree \ |
517 | // RUN: | FileCheck --check-prefix=CHECK-CFI-CROSS-DSO-ANDROID %s |
518 | // CHECK-CFI-CROSS-DSO-ANDROID: "{{.*}}ld{{(.exe)?}}" |
519 | // CHECK-CFI-CROSS-DSO-ANDROID-NOT: libclang_rt.cfi |
520 | |
521 | // Cross-DSO CFI with diagnostics on Android links just the UBSAN runtime. |
522 | // RUN: %clang -fsanitize=cfi -fsanitize-cfi-cross-dso %s -### -o %t.o 2>&1 \ |
523 | // RUN: -fno-sanitize-trap=cfi -fsanitize-recover=cfi \ |
524 | // RUN: -target aarch64-linux-android -fuse-ld=ld \ |
525 | // RUN: --sysroot=%S/Inputs/basic_android_tree \ |
526 | // RUN: | FileCheck --check-prefix=CHECK-CFI-CROSS-DSO-DIAG-ANDROID %s |
527 | // CHECK-CFI-CROSS-DSO-DIAG-ANDROID: "{{.*}}ld{{(.exe)?}}" |
528 | // CHECK-CFI-CROSS-DSO-DIAG-ANDROID: "{{[^"]*}}libclang_rt.ubsan_standalone-aarch64-android.so" |
529 | // CHECK-CFI-CROSS-DSO-DIAG-ANDROID: "-export-dynamic-symbol=__cfi_check" |
530 | |
531 | // RUN: %clangxx -fsanitize=address %s -### -o %t.o 2>&1 \ |
532 | // RUN: -mmacosx-version-min=10.6 \ |
533 | // RUN: -target x86_64-apple-darwin13.4.0 -fuse-ld=ld -stdlib=platform \ |
534 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
535 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-DARWIN106-CXX %s |
536 | // CHECK-ASAN-DARWIN106-CXX: "{{.*}}ld{{(.exe)?}}" |
537 | // CHECK-ASAN-DARWIN106-CXX: libclang_rt.asan_osx_dynamic.dylib |
538 | // CHECK-ASAN-DARWIN106-CXX-NOT: -lc++abi |
539 | |
540 | // RUN: %clangxx -fsanitize=leak %s -### -o %t.o 2>&1 \ |
541 | // RUN: -mmacosx-version-min=10.6 \ |
542 | // RUN: -target x86_64-apple-darwin13.4.0 -fuse-ld=ld -stdlib=platform \ |
543 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
544 | // RUN: | FileCheck --check-prefix=CHECK-LSAN-DARWIN106-CXX %s |
545 | // CHECK-LSAN-DARWIN106-CXX: "{{.*}}ld{{(.exe)?}}" |
546 | // CHECK-LSAN-DARWIN106-CXX: libclang_rt.lsan_osx_dynamic.dylib |
547 | // CHECK-LSAN-DARWIN106-CXX-NOT: -lc++abi |
548 | |
549 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
550 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=safe-stack \ |
551 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
552 | // RUN: | FileCheck --check-prefix=CHECK-SAFESTACK-LINUX %s |
553 | // |
554 | // CHECK-SAFESTACK-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
555 | // CHECK-SAFESTACK-LINUX-NOT: "-lc" |
556 | // CHECK-SAFESTACK-LINUX-NOT: whole-archive |
557 | // CHECK-SAFESTACK-LINUX: libclang_rt.safestack-x86_64.a" |
558 | // CHECK-SAFESTACK-LINUX: "-u" "__safestack_init" |
559 | // CHECK-SAFESTACK-LINUX: "-lpthread" |
560 | // CHECK-SAFESTACK-LINUX: "-ldl" |
561 | |
562 | // RUN: %clang -fsanitize=shadow-call-stack %s -### -o %t.o 2>&1 \ |
563 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld \ |
564 | // RUN: | FileCheck --check-prefix=CHECK-SHADOWCALLSTACK-LINUX-X86-64 %s |
565 | // CHECK-SHADOWCALLSTACK-LINUX-X86-64-NOT: error: |
566 | |
567 | // RUN: %clang -fsanitize=shadow-call-stack %s -### -o %t.o 2>&1 \ |
568 | // RUN: -target aarch64-unknown-linux -fuse-ld=ld \ |
569 | // RUN: | FileCheck --check-prefix=CHECK-SHADOWCALLSTACK-LINUX-AARCH64 %s |
570 | // CHECK-SHADOWCALLSTACK-LINUX-AARCH64: '-fsanitize=shadow-call-stack' only allowed with '-ffixed-x18' |
571 | |
572 | // RUN: %clang -fsanitize=shadow-call-stack %s -### -o %t.o 2>&1 \ |
573 | // RUN: -target aarch64-unknown-linux -fuse-ld=ld -ffixed-x18 \ |
574 | // RUN: | FileCheck --check-prefix=CHECK-SHADOWCALLSTACK-LINUX-AARCH64-X18 %s |
575 | // RUN: %clang -fsanitize=shadow-call-stack %s -### -o %t.o 2>&1 \ |
576 | // RUN: -target arm64-unknown-ios -fuse-ld=ld \ |
577 | // RUN: | FileCheck --check-prefix=CHECK-SHADOWCALLSTACK-LINUX-AARCH64-X18 %s |
578 | // RUN: %clang -fsanitize=shadow-call-stack %s -### -o %t.o 2>&1 \ |
579 | // RUN: -target aarch64-unknown-linux-android -fuse-ld=ld \ |
580 | // RUN: | FileCheck --check-prefix=CHECK-SHADOWCALLSTACK-LINUX-AARCH64-X18 %s |
581 | // CHECK-SHADOWCALLSTACK-LINUX-AARCH64-X18-NOT: error: |
582 | |
583 | // RUN: %clang -fsanitize=shadow-call-stack %s -### -o %t.o 2>&1 \ |
584 | // RUN: -target x86-unknown-linux -fuse-ld=ld \ |
585 | // RUN: | FileCheck --check-prefix=CHECK-SHADOWCALLSTACK-LINUX-X86 %s |
586 | // CHECK-SHADOWCALLSTACK-LINUX-X86: error: unsupported option '-fsanitize=shadow-call-stack' for target 'x86-unknown-linux' |
587 | |
588 | // RUN: %clang -fsanitize=shadow-call-stack %s -### -o %t.o 2>&1 \ |
589 | // RUN: -fsanitize=safe-stack -target x86_64-unknown-linux -fuse-ld=ld \ |
590 | // RUN: | FileCheck --check-prefix=CHECK-SHADOWCALLSTACK-SAFESTACK %s |
591 | // CHECK-SHADOWCALLSTACK-SAFESTACK-NOT: error: |
592 | |
593 | // RUN: %clang -fsanitize=cfi -fsanitize-stats %s -### -o %t.o 2>&1 \ |
594 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld \ |
595 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
596 | // RUN: | FileCheck --check-prefix=CHECK-CFI-STATS-LINUX %s |
597 | // CHECK-CFI-STATS-LINUX: "{{.*}}ld{{(.exe)?}}" |
598 | // CHECK-CFI-STATS-LINUX: "--whole-archive" "{{[^"]*}}libclang_rt.stats_client-x86_64.a" "--no-whole-archive" |
599 | // CHECK-CFI-STATS-LINUX-NOT: "--whole-archive" |
600 | // CHECK-CFI-STATS-LINUX: "{{[^"]*}}libclang_rt.stats-x86_64.a" |
601 | |
602 | // RUN: %clang -fsanitize=cfi -fsanitize-stats %s -### -o %t.o 2>&1 \ |
603 | // RUN: -target x86_64-apple-darwin -fuse-ld=ld \ |
604 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
605 | // RUN: | FileCheck --check-prefix=CHECK-CFI-STATS-DARWIN %s |
606 | // CHECK-CFI-STATS-DARWIN: "{{.*}}ld{{(.exe)?}}" |
607 | // CHECK-CFI-STATS-DARWIN: "{{[^"]*}}libclang_rt.stats_client_osx.a" |
608 | // CHECK-CFI-STATS-DARWIN: "{{[^"]*}}libclang_rt.stats_osx_dynamic.dylib" |
609 | |
610 | // RUN: %clang -fsanitize=cfi -fsanitize-stats %s -### -o %t.o 2>&1 \ |
611 | // RUN: -target x86_64-pc-windows \ |
612 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
613 | // RUN: | FileCheck --check-prefix=CHECK-CFI-STATS-WIN64 %s |
614 | // CHECK-CFI-STATS-WIN64: "--dependent-lib={{[^"]*}}clang_rt.stats_client-x86_64.lib" |
615 | // CHECK-CFI-STATS-WIN64: "--dependent-lib={{[^"]*}}clang_rt.stats-x86_64.lib" |
616 | // CHECK-CFI-STATS-WIN64: "--linker-option=/include:__sanitizer_stats_register" |
617 | |
618 | // RUN: %clang -fsanitize=cfi -fsanitize-stats %s -### -o %t.o 2>&1 \ |
619 | // RUN: -target i686-pc-windows \ |
620 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
621 | // RUN: | FileCheck --check-prefix=CHECK-CFI-STATS-WIN32 %s |
622 | // CHECK-CFI-STATS-WIN32: "--dependent-lib={{[^"]*}}clang_rt.stats_client-i386.lib" |
623 | // CHECK-CFI-STATS-WIN32: "--dependent-lib={{[^"]*}}clang_rt.stats-i386.lib" |
624 | // CHECK-CFI-STATS-WIN32: "--linker-option=/include:___sanitizer_stats_register" |
625 | |
626 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
627 | // RUN: -target arm-linux-androideabi -fuse-ld=ld -fsanitize=safe-stack \ |
628 | // RUN: --sysroot=%S/Inputs/basic_android_tree \ |
629 | // RUN: | FileCheck --check-prefix=CHECK-SAFESTACK-ANDROID-ARM %s |
630 | // |
631 | // CHECK-SAFESTACK-ANDROID-ARM: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
632 | // CHECK-SAFESTACK-ANDROID-ARM-NOT: libclang_rt.safestack |
633 | |
634 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o -shared 2>&1 \ |
635 | // RUN: -target arm-linux-androideabi -fuse-ld=ld -fsanitize=safe-stack \ |
636 | // RUN: --sysroot=%S/Inputs/basic_android_tree \ |
637 | // RUN: | FileCheck --check-prefix=CHECK-SAFESTACK-SHARED-ANDROID-ARM %s |
638 | // |
639 | // CHECK-SAFESTACK-SHARED-ANDROID-ARM: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
640 | // CHECK-SAFESTACK-SHARED-ANDROID-ARM-NOT: libclang_rt.safestack |
641 | |
642 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
643 | // RUN: -target aarch64-linux-android -fuse-ld=ld -fsanitize=safe-stack \ |
644 | // RUN: --sysroot=%S/Inputs/basic_android_tree \ |
645 | // RUN: | FileCheck --check-prefix=CHECK-SAFESTACK-ANDROID-AARCH64 %s |
646 | // |
647 | // CHECK-SAFESTACK-ANDROID-AARCH64: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
648 | // CHECK-SAFESTACK-ANDROID-AARCH64-NOT: libclang_rt.safestack |
649 | |
650 | // RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \ |
651 | // RUN: -target x86_64-scei-ps4 -fuse-ld=ld \ |
652 | // RUN: -shared \ |
653 | // RUN: | FileCheck --check-prefix=CHECK-UBSAN-PS4 %s |
654 | // CHECK-UBSAN-PS4: --dependent-lib=libSceDbgUBSanitizer_stub_weak.a |
655 | // CHECK-UBSAN-PS4: "{{.*}}ld{{(.gold)?(.exe)?}}" |
656 | // CHECK-UBSAN-PS4: -lSceDbgUBSanitizer_stub_weak |
657 | |
658 | // RUN: %clang -fsanitize=address %s -### -o %t.o 2>&1 \ |
659 | // RUN: -target x86_64-scei-ps4 -fuse-ld=ld \ |
660 | // RUN: -shared \ |
661 | // RUN: | FileCheck --check-prefix=CHECK-ASAN-PS4 %s |
662 | // CHECK-ASAN-PS4: --dependent-lib=libSceDbgAddressSanitizer_stub_weak.a |
663 | // CHECK-ASAN-PS4: "{{.*}}ld{{(.gold)?(.exe)?}}" |
664 | // CHECK-ASAN-PS4: -lSceDbgAddressSanitizer_stub_weak |
665 | |
666 | // RUN: %clang -fsanitize=address,undefined %s -### -o %t.o 2>&1 \ |
667 | // RUN: -target x86_64-scei-ps4 -fuse-ld=ld \ |
668 | // RUN: -shared \ |
669 | // RUN: | FileCheck --check-prefix=CHECK-AUBSAN-PS4 %s |
670 | // CHECK-AUBSAN-PS4-NOT: --dependent-lib=libSceDbgUBSanitizer_stub_weak.a |
671 | // CHECK-AUBSAN-PS4: --dependent-lib=libSceDbgAddressSanitizer_stub_weak.a |
672 | // CHECK-AUBSAN-PS4-NOT: --dependent-lib=libSceDbgUBSanitizer_stub_weak.a |
673 | // CHECK-AUBSAN-PS4: "{{.*}}ld{{(.gold)?(.exe)?}}" |
674 | // CHECK-AUBSAN-PS4: -lSceDbgAddressSanitizer_stub_weak |
675 | |
676 | // RUN: %clang -fsanitize=address,undefined %s -### -o %t.o 2>&1 \ |
677 | // RUN: -target x86_64-scei-ps4 -fuse-ld=ld \ |
678 | // RUN: -shared \ |
679 | // RUN: -nostdlib \ |
680 | // RUN: | FileCheck --check-prefix=CHECK-NOLIB-PS4 %s |
681 | // CHECK-NOLIB-PS4-NOT: SceDbgAddressSanitizer_stub_weak |
682 | |
683 | // RUN: %clang -fsanitize=scudo %s -### -o %t.o 2>&1 \ |
684 | // RUN: -target i386-unknown-linux -fuse-ld=ld \ |
685 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
686 | // RUN: | FileCheck --check-prefix=CHECK-SCUDO-LINUX %s |
687 | // CHECK-SCUDO-LINUX: "{{.*}}ld{{(.exe)?}}" |
688 | // CHECK-SCUDO-LINUX: "-pie" |
689 | // CHECK-SCUDO-LINUX: "--whole-archive" "{{.*}}libclang_rt.scudo-i386.a" "--no-whole-archive" |
690 | // CHECK-SCUDO-LINUX-NOT: "-lstdc++" |
691 | // CHECK-SCUDO-LINUX: "-lpthread" |
692 | // CHECK-SCUDO-LINUX: "-ldl" |
693 | |
694 | // RUN: %clang -fsanitize=scudo -fsanitize-minimal-runtime %s -### -o %t.o 2>&1 \ |
695 | // RUN: -target i386-unknown-linux -fuse-ld=ld \ |
696 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
697 | // RUN: | FileCheck --check-prefix=CHECK-SCUDO-MINIMAL-LINUX %s |
698 | // CHECK-SCUDO-MINIMAL-LINUX: "{{.*}}ld{{(.exe)?}}" |
699 | // CHECK-SCUDO-MINIMAL-LINUX: "-pie" |
700 | // CHECK-SCUDO-MINIMAL-LINUX: "--whole-archive" "{{.*}}libclang_rt.scudo_minimal-i386.a" "--no-whole-archive" |
701 | // CHECK-SCUDO-MINIMAL-LINUX: "-lpthread" |
702 | |
703 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \ |
704 | // RUN: -target i386-unknown-linux -fuse-ld=ld -fsanitize=scudo -shared-libsan \ |
705 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
706 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
707 | // RUN: | FileCheck --check-prefix=CHECK-SCUDO-SHARED-LINUX %s |
708 | // |
709 | // CHECK-SCUDO-SHARED-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
710 | // CHECK-SCUDO-SHARED-LINUX-NOT: "-lc" |
711 | // CHECK-SCUDO-SHARED-LINUX-NOT: libclang_rt.scudo-i386.a" |
712 | // CHECK-SCUDO-SHARED-LINUX: libclang_rt.scudo-i386.so" |
713 | // CHECK-SCUDO-SHARED-LINUX-NOT: "-lpthread" |
714 | // CHECK-SCUDO-SHARED-LINUX-NOT: "-lrt" |
715 | // CHECK-SCUDO-SHARED-LINUX-NOT: "-ldl" |
716 | // CHECK-SCUDO-SHARED-LINUX-NOT: "--export-dynamic" |
717 | // CHECK-SCUDO-SHARED-LINUX-NOT: "--dynamic-list" |
718 | |
719 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
720 | // RUN: -target arm-linux-androideabi -fuse-ld=ld -fsanitize=scudo \ |
721 | // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
722 | // RUN: | FileCheck --check-prefix=CHECK-SCUDO-ANDROID %s |
723 | // |
724 | // CHECK-SCUDO-ANDROID: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
725 | // CHECK-SCUDO-ANDROID-NOT: "-lc" |
726 | // CHECK-SCUDO-ANDROID: "-pie" |
727 | // CHECK-SCUDO-ANDROID-NOT: "-lpthread" |
728 | // CHECK-SCUDO-ANDROID: libclang_rt.scudo-arm-android.so" |
729 | // CHECK-SCUDO-ANDROID-NOT: "-lpthread" |
730 | |
731 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
732 | // RUN: -target arm-linux-androideabi -fuse-ld=ld -fsanitize=scudo \ |
733 | // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
734 | // RUN: -static-libsan \ |
735 | // RUN: | FileCheck --check-prefix=CHECK-SCUDO-ANDROID-STATIC %s |
736 | // CHECK-SCUDO-ANDROID-STATIC: "{{(.*[^.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
737 | // CHECK-SCUDO-ANDROID-STATIC: "-pie" |
738 | // CHECK-SCUDO-ANDROID-STATIC: "--whole-archive" "{{.*}}libclang_rt.scudo-arm-android.a" "--no-whole-archive" |
739 | // CHECK-SCUDO-ANDROID-STATIC-NOT: "-lstdc++" |
740 | // CHECK-SCUDO-ANDROID-STATIC-NOT: "-lpthread" |
741 | // CHECK-SCUDO-ANDROID-STATIC-NOT: "-lrt" |
742 | |
743 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
744 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ |
745 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
746 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
747 | // RUN: | FileCheck --check-prefix=CHECK-HWASAN-X86-64-LINUX %s |
748 | // |
749 | // CHECK-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
750 | // CHECK-HWASAN-X86-64-LINUX: "-pie" |
751 | // CHECK-HWASAN-X86-64-LINUX-NOT: "-lc" |
752 | // CHECK-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.a" |
753 | // CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" |
754 | // CHECK-HWASAN-X86-64-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-x86_64.a.syms" |
755 | // CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" |
756 | // CHECK-HWASAN-X86-64-LINUX: "-lpthread" |
757 | // CHECK-HWASAN-X86-64-LINUX: "-lrt" |
758 | // CHECK-HWASAN-X86-64-LINUX: "-ldl" |
759 | |
760 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
761 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ |
762 | // RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ |
763 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
764 | // RUN: | FileCheck --check-prefix=CHECK-SHARED-HWASAN-X86-64-LINUX %s |
765 | // |
766 | // CHECK-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
767 | // CHECK-SHARED-HWASAN-X86-64-LINUX: "-pie" |
768 | // CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc" |
769 | // CHECK-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so" |
770 | // CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread" |
771 | // CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt" |
772 | // CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl" |
773 | // CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" |
774 | // CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list" |
775 | |
776 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \ |
777 | // RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ |
778 | // RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ |
779 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
780 | // RUN: | FileCheck --check-prefix=CHECK-DSO-SHARED-HWASAN-X86-64-LINUX %s |
781 | // |
782 | // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
783 | // CHECK-DSO_SHARED-HWASAN-X86-64-LINUX: "-pie" |
784 | // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc" |
785 | // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so" |
786 | // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread" |
787 | // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt" |
788 | // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl" |
789 | // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic" |
790 | // CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list" |
791 | |
792 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
793 | // RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ |
794 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
795 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
796 | // RUN: | FileCheck --check-prefix=CHECK-HWASAN-AARCH64-LINUX %s |
797 | // |
798 | // CHECK-HWASAN-AARCH64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
799 | // CHECK-HWASAN-AARCH64-LINUX: "-pie" |
800 | // CHECK-HWASAN-AARCH64-LINUX-NOT: "-lc" |
801 | // CHECK-HWASAN-AARCH64-LINUX: libclang_rt.hwasan-aarch64.a" |
802 | // CHECK-HWASAN-AARCH64-LINUX-NOT: "--export-dynamic" |
803 | // CHECK-HWASAN-AARCH64-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-aarch64.a.syms" |
804 | // CHECK-HWASAN-AARCH64-LINUX-NOT: "--export-dynamic" |
805 | // CHECK-HWASAN-AARCH64-LINUX: "-lpthread" |
806 | // CHECK-HWASAN-AARCH64-LINUX: "-lrt" |
807 | // CHECK-HWASAN-AARCH64-LINUX: "-ldl" |
808 | |
809 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
810 | // RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ |
811 | // RUN: -shared-libsan \ |
812 | // RUN: -resource-dir=%S/Inputs/resource_dir \ |
813 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
814 | // RUN: | FileCheck --check-prefix=CHECK-SHARED-HWASAN-AARCH64-LINUX %s |
815 | // |
816 | // CHECK-SHARED-HWASAN-AARCH64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
817 | // CHECK-SHARED-HWASAN-AARCH64-LINUX: "-pie" |
818 | // CHECK-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lc" |
819 | // CHECK-SHARED-HWASAN-AARCH64-LINUX: libclang_rt.hwasan-aarch64.so" |
820 | // CHECK-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lpthread" |
821 | // CHECK-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lrt" |
822 | // CHECK-SHARED-HWASAN-AARCH64-LINUX-NOT: "-ldl" |
823 | // CHECK-SHARED-HWASAN-AARCH64-LINUX-NOT: "--export-dynamic" |
824 | // CHECK-SHARED-HWASAN-AARCH64-LINUX-NOT: "--dynamic-list" |
825 | |
826 | // RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \ |
827 | // RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \ |
828 | // RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \ |
829 | // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
830 | // RUN: | FileCheck --check-prefix=CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX %s |
831 | // |
832 | // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}" |
833 | // CHECK-DSO_SHARED-HWASAN-AARCH64-LINUX: "-pie" |
834 | // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lc" |
835 | // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX: libclang_rt.hwasan-aarch64.so" |
836 | // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lpthread" |
837 | // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX-NOT: "-lrt" |
838 | // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX-NOT: "-ldl" |
839 | // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX-NOT: "--export-dynamic" |
840 | // CHECK-DSO-SHARED-HWASAN-AARCH64-LINUX-NOT: "--dynamic-list" |
841 | |