1 ; RUN: opt < %s -mtriple=x86_64-- -passes=inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK,CHECK-NOLINUX,CHECK-OPEN,CHECK-UNKNOWN %s
2 ; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -passes=inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK,CHECK-KNOWN,CHECK-NOLINUX,CHECK-OPEN,CHECK-DARWIN %s
3 ; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -passes=inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK,CHECK-KNOWN,CHECK-LINUX %s
4 ; RUN: opt < %s -mtriple=nvptx -passes=inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK-NOLINUX,CHECK-NVPTX %s
5 ; RUN: opt < %s -mtriple=powerpc64-ibm-aix-xcoff -passes=inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK-NOLINUX,CHECK-AIX %s
7 declare i32 @__nvvm_reflect(ptr)
8 ; CHECK-NVPTX: declare noundef i32 @__nvvm_reflect(ptr noundef) [[NOFREE_NOUNWIND_READNONE:#[0-9]+]]
11 ; Check all the libc functions (thereby also exercising the prototype check).
12 ; Note that it's OK to modify these as attributes might be missing. These checks
13 ; reflect the currently inferred attributes.
15 ; Use an opaque pointer type for all the (possibly opaque) structs.
18 ; CHECK-LINUX: declare double @__acos_finite(double) [[NOFREE:#[0-9]+]]
19 ; CHECK-NOLINUX: declare double @__acos_finite(double)
20 declare double @__acos_finite(double)
22 ; CHECK-LINUX: declare float @__acosf_finite(float) [[NOFREE]]
23 ; CHECK-NOLINUX: declare float @__acosf_finite(float)
24 declare float @__acosf_finite(float)
26 ; CHECK-LINUX: declare double @__acosh_finite(double) [[NOFREE]]
27 ; CHECK-NOLINUX: declare double @__acosh_finite(double)
28 declare double @__acosh_finite(double)
30 ; CHECK-LINUX: declare float @__acoshf_finite(float) [[NOFREE]]
31 ; CHECK-NOLINUX: declare float @__acoshf_finite(float)
32 declare float @__acoshf_finite(float)
34 ; CHECK-LINUX: declare x86_fp80 @__acoshl_finite(x86_fp80) [[NOFREE]]
35 ; CHECK-NOLINUX: declare x86_fp80 @__acoshl_finite(x86_fp80)
36 declare x86_fp80 @__acoshl_finite(x86_fp80)
38 ; CHECK-LINUX: declare x86_fp80 @__acosl_finite(x86_fp80) [[NOFREE]]
39 ; CHECK-NOLINUX: declare x86_fp80 @__acosl_finite(x86_fp80)
40 declare x86_fp80 @__acosl_finite(x86_fp80)
42 ; CHECK-LINUX: declare double @__asin_finite(double) [[NOFREE]]
43 ; CHECK-NOLINUX: declare double @__asin_finite(double)
44 declare double @__asin_finite(double)
46 ; CHECK-LINUX: declare float @__asinf_finite(float) [[NOFREE]]
47 ; CHECK-NOLINUX: declare float @__asinf_finite(float)
48 declare float @__asinf_finite(float)
50 ; CHECK-LINUX: declare x86_fp80 @__asinl_finite(x86_fp80) [[NOFREE]]
51 ; CHECK-NOLINUX: declare x86_fp80 @__asinl_finite(x86_fp80)
52 declare x86_fp80 @__asinl_finite(x86_fp80)
54 ; CHECK-LINUX: declare double @__atan2_finite(double, double) [[NOFREE]]
55 ; CHECK-NOLINUX: declare double @__atan2_finite(double, double)
56 declare double @__atan2_finite(double, double)
58 ; CHECK-LINUX: declare float @__atan2f_finite(float, float) [[NOFREE]]
59 ; CHECK-NOLINUX: declare float @__atan2f_finite(float, float)
60 declare float @__atan2f_finite(float, float)
62 ; CHECK-LINUX: declare x86_fp80 @__atan2l_finite(x86_fp80, x86_fp80) [[NOFREE]]
63 ; CHECK-NOLINUX: declare x86_fp80 @__atan2l_finite(x86_fp80, x86_fp80)
64 declare x86_fp80 @__atan2l_finite(x86_fp80, x86_fp80)
66 ; CHECK-LINUX: declare double @__atanh_finite(double) [[NOFREE]]
67 ; CHECK-NOLINUX: declare double @__atanh_finite(double)
68 declare double @__atanh_finite(double)
70 ; CHECK-LINUX: declare float @__atanhf_finite(float) [[NOFREE]]
71 ; CHECK-NOLINUX: declare float @__atanhf_finite(float)
72 declare float @__atanhf_finite(float)
74 ; CHECK-LINUX: declare x86_fp80 @__atanhl_finite(x86_fp80) [[NOFREE]]
75 ; CHECK-NOLINUX: declare x86_fp80 @__atanhl_finite(x86_fp80)
76 declare x86_fp80 @__atanhl_finite(x86_fp80)
78 ; CHECK-LINUX: declare double @__cosh_finite(double) [[NOFREE]]
79 ; CHECK-NOLINUX: declare double @__cosh_finite(double)
80 declare double @__cosh_finite(double)
82 ; CHECK-LINUX: declare float @__coshf_finite(float) [[NOFREE]]
83 ; CHECK-NOLINUX: declare float @__coshf_finite(float)
84 declare float @__coshf_finite(float)
86 ; CHECK-LINUX: declare x86_fp80 @__coshl_finite(x86_fp80) [[NOFREE]]
87 ; CHECK-NOLINUX: declare x86_fp80 @__coshl_finite(x86_fp80)
88 declare x86_fp80 @__coshl_finite(x86_fp80)
90 ; CHECK: declare double @__cospi(double)
91 declare double @__cospi(double)
93 ; CHECK: declare float @__cospif(float)
94 declare float @__cospif(float)
96 ; CHECK-LINUX: declare double @__exp10_finite(double) [[NOFREE]]
97 ; CHECK-NOLINUX: declare double @__exp10_finite(double)
98 declare double @__exp10_finite(double)
100 ; CHECK-LINUX: declare float @__exp10f_finite(float) [[NOFREE]]
101 ; CHECK-NOLINUX: declare float @__exp10f_finite(float)
102 declare float @__exp10f_finite(float)
104 ; CHECK-LINUX: declare x86_fp80 @__exp10l_finite(x86_fp80) [[NOFREE]]
105 ; CHECK-NOLINUX: declare x86_fp80 @__exp10l_finite(x86_fp80)
106 declare x86_fp80 @__exp10l_finite(x86_fp80)
108 ; CHECK-LINUX: declare double @__exp2_finite(double) [[NOFREE]]
109 ; CHECK-NOLINUX: declare double @__exp2_finite(double)
110 declare double @__exp2_finite(double)
112 ; CHECK-LINUX: declare float @__exp2f_finite(float) [[NOFREE]]
113 ; CHECK-NOLINUX: declare float @__exp2f_finite(float)
114 declare float @__exp2f_finite(float)
116 ; CHECK-LINUX: declare x86_fp80 @__exp2l_finite(x86_fp80) [[NOFREE]]
117 ; CHECK-NOLINUX: declare x86_fp80 @__exp2l_finite(x86_fp80)
118 declare x86_fp80 @__exp2l_finite(x86_fp80)
120 ; CHECK-LINUX: declare double @__exp_finite(double) [[NOFREE]]
121 ; CHECK-NOLINUX: declare double @__exp_finite(double)
122 declare double @__exp_finite(double)
124 ; CHECK-LINUX: declare float @__expf_finite(float) [[NOFREE]]
125 ; CHECK-NOLINUX: declare float @__expf_finite(float)
126 declare float @__expf_finite(float)
128 ; CHECK-LINUX: declare x86_fp80 @__expl_finite(x86_fp80) [[NOFREE]]
129 ; CHECK-NOLINUX: declare x86_fp80 @__expl_finite(x86_fp80)
130 declare x86_fp80 @__expl_finite(x86_fp80)
132 ; CHECK-LINUX: declare double @__log10_finite(double) [[NOFREE]]
133 ; CHECK-NOLINUX: declare double @__log10_finite(double)
134 declare double @__log10_finite(double)
136 ; CHECK-LINUX: declare float @__log10f_finite(float) [[NOFREE]]
137 ; CHECK-NOLINUX: declare float @__log10f_finite(float)
138 declare float @__log10f_finite(float)
140 ; CHECK-LINUX: declare x86_fp80 @__log10l_finite(x86_fp80) [[NOFREE]]
141 ; CHECK-NOLINUX: declare x86_fp80 @__log10l_finite(x86_fp80)
142 declare x86_fp80 @__log10l_finite(x86_fp80)
144 ; CHECK-LINUX: declare double @__log2_finite(double) [[NOFREE]]
145 ; CHECK-NOLINUX: declare double @__log2_finite(double)
146 declare double @__log2_finite(double)
148 ; CHECK-LINUX: declare float @__log2f_finite(float) [[NOFREE]]
149 ; CHECK-NOLINUX: declare float @__log2f_finite(float)
150 declare float @__log2f_finite(float)
152 ; CHECK-LINUX: declare x86_fp80 @__log2l_finite(x86_fp80) [[NOFREE]]
153 ; CHECK-NOLINUX: declare x86_fp80 @__log2l_finite(x86_fp80)
154 declare x86_fp80 @__log2l_finite(x86_fp80)
156 ; CHECK-LINUX: declare double @__log_finite(double) [[NOFREE]]
157 ; CHECK-NOLINUX: declare double @__log_finite(double)
158 declare double @__log_finite(double)
160 ; CHECK-LINUX: declare float @__logf_finite(float) [[NOFREE]]
161 ; CHECK-NOLINUX: declare float @__logf_finite(float)
162 declare float @__logf_finite(float)
164 ; CHECK-LINUX: declare x86_fp80 @__logl_finite(x86_fp80) [[NOFREE]]
165 ; CHECK-NOLINUX: declare x86_fp80 @__logl_finite(x86_fp80)
166 declare x86_fp80 @__logl_finite(x86_fp80)
168 ; CHECK-LINUX: declare double @__pow_finite(double, double) [[NOFREE]]
169 ; CHECK-NOLINUX: declare double @__pow_finite(double, double)
170 declare double @__pow_finite(double, double)
172 ; CHECK-LINUX: declare float @__powf_finite(float, float) [[NOFREE]]
173 ; CHECK-NOLINUX: declare float @__powf_finite(float, float)
174 declare float @__powf_finite(float, float)
176 ; CHECK-LINUX: declare x86_fp80 @__powl_finite(x86_fp80, x86_fp80) [[NOFREE]]
177 ; CHECK-NOLINUX: declare x86_fp80 @__powl_finite(x86_fp80, x86_fp80)
178 declare x86_fp80 @__powl_finite(x86_fp80, x86_fp80)
180 ; CHECK-LINUX: declare double @__sinh_finite(double) [[NOFREE]]
181 ; CHECK-NOLINUX: declare double @__sinh_finite(double)
182 declare double @__sinh_finite(double)
184 ; CHECK-LINUX: declare float @__sinhf_finite(float) [[NOFREE]]
185 ; CHECK-NOLINUX: declare float @__sinhf_finite(float)
186 declare float @__sinhf_finite(float)
188 ; CHECK-LINUX: declare x86_fp80 @__sinhl_finite(x86_fp80) [[NOFREE]]
189 ; CHECK-NOLINUX: declare x86_fp80 @__sinhl_finite(x86_fp80)
190 declare x86_fp80 @__sinhl_finite(x86_fp80)
192 ; CHECK: declare double @__sinpi(double)
193 declare double @__sinpi(double)
195 ; CHECK: declare float @__sinpif(float)
196 declare float @__sinpif(float)
198 ; CHECK: declare i32 @abs(i32) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY:#[0-9]+]]
199 declare i32 @abs(i32)
201 ; CHECK: declare noundef i32 @access(ptr nocapture noundef readonly, i32 noundef) [[NOFREE_NOUNWIND:#[0-9]+]]
202 declare i32 @access(ptr, i32)
204 ; CHECK: declare double @acos(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
205 declare double @acos(double)
207 ; CHECK: declare float @acosf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
208 declare float @acosf(float)
210 ; CHECK: declare double @acosh(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
211 declare double @acosh(double)
213 ; CHECK: declare float @acoshf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
214 declare float @acoshf(float)
216 ; CHECK: declare x86_fp80 @acoshl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
217 declare x86_fp80 @acoshl(x86_fp80)
219 ; CHECK: declare x86_fp80 @acosl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
220 declare x86_fp80 @acosl(x86_fp80)
222 ; CHECK: declare noalias noundef ptr @aligned_alloc(i64 allocalign noundef, i64 noundef) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCUNINIT_ALLOCSIZE1_FAMILY_MALLOC:#[0-9]+]]
223 declare ptr @aligned_alloc(i64, i64)
225 ; CHECK: declare double @asin(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
226 declare double @asin(double)
228 ; CHECK: declare float @asinf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
229 declare float @asinf(float)
231 ; CHECK: declare double @asinh(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
232 declare double @asinh(double)
234 ; CHECK: declare float @asinhf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
235 declare float @asinhf(float)
237 ; CHECK: declare x86_fp80 @asinhl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
238 declare x86_fp80 @asinhl(x86_fp80)
240 ; CHECK: declare x86_fp80 @asinl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
241 declare x86_fp80 @asinl(x86_fp80)
243 ; CHECK: declare double @atan(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
244 declare double @atan(double)
246 ; CHECK: declare double @atan2(double, double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
247 declare double @atan2(double, double)
249 ; CHECK: declare float @atan2f(float, float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
250 declare float @atan2f(float, float)
252 ; CHECK: declare x86_fp80 @atan2l(x86_fp80, x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
253 declare x86_fp80 @atan2l(x86_fp80, x86_fp80)
255 ; CHECK: declare float @atanf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
256 declare float @atanf(float)
258 ; CHECK: declare double @atanh(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
259 declare double @atanh(double)
261 ; CHECK: declare float @atanhf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
262 declare float @atanhf(float)
264 ; CHECK: declare x86_fp80 @atanhl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
265 declare x86_fp80 @atanhl(x86_fp80)
267 ; CHECK: declare x86_fp80 @atanl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
268 declare x86_fp80 @atanl(x86_fp80)
270 ; CHECK: declare double @atof(ptr nocapture) [[NOFREE_NOUNWIND_READONLY_WILLRETURN:#[0-9]+]]
271 declare double @atof(ptr)
273 ; CHECK: declare i32 @atoi(ptr nocapture) [[NOFREE_NOUNWIND_READONLY_WILLRETURN]]
274 declare i32 @atoi(ptr)
276 ; CHECK: declare i64 @atol(ptr nocapture) [[NOFREE_NOUNWIND_READONLY_WILLRETURN]]
277 declare i64 @atol(ptr)
279 ; CHECK: declare i64 @atoll(ptr nocapture) [[NOFREE_NOUNWIND_READONLY_WILLRETURN]]
280 declare i64 @atoll(ptr)
282 ; CHECK-LINUX: declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY:#[0-9]+]]
283 ; CHECK-NOLINUX: declare i32 @bcmp(ptr, ptr, i64){{$}}
284 declare i32 @bcmp(ptr, ptr, i64)
286 ; CHECK: declare void @bcopy(ptr nocapture readonly, ptr nocapture writeonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN:#[0-9]+]]
287 declare void @bcopy(ptr, ptr, i64)
289 ; CHECK: declare void @bzero(ptr nocapture writeonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
290 declare void @bzero(ptr, i64)
292 ; CHECK: declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCZEROED_ALLOCSIZE01_FAMILY_MALLOC:#[0-9]+]]
293 declare ptr @calloc(i64, i64)
295 ; CHECK-AIX: declare noalias noundef ptr @vec_calloc(i64 noundef, i64 noundef) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCSIZE01_FAMILY_VEC_MALLOC:#[0-9]+]]
296 declare ptr @vec_calloc(i64, i64)
298 ; CHECK: declare double @cbrt(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
299 declare double @cbrt(double)
301 ; CHECK: declare float @cbrtf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
302 declare float @cbrtf(float)
304 ; CHECK: declare x86_fp80 @cbrtl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
305 declare x86_fp80 @cbrtl(x86_fp80)
307 ; CHECK: declare double @ceil(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
308 declare double @ceil(double)
310 ; CHECK: declare float @ceilf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
311 declare float @ceilf(float)
313 ; CHECK: declare x86_fp80 @ceill(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
314 declare x86_fp80 @ceill(x86_fp80)
316 ; The second argument of int chmod(FILE*, mode_t) is a 32-bit int on most
317 ; targets but it's a 16-bit short on Apple Darwin. Use i16 here to verify
318 ; the function is still recognized.
319 ; FIXME: this should be tightened up to verify that only the type with
320 ; the right size for the target matches.
321 ; CHECK: declare noundef i32 @chmod(ptr nocapture noundef readonly, i16 noundef zeroext) [[NOFREE_NOUNWIND]]
322 declare i32 @chmod(ptr, i16 zeroext)
324 ; CHECK: declare noundef i32 @chown(ptr nocapture noundef readonly, i32 noundef, i32 noundef) [[NOFREE_NOUNWIND]]
325 declare i32 @chown(ptr, i32, i32)
327 ; CHECK: declare void @clearerr(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
328 declare void @clearerr(ptr)
330 ; CHECK: declare noundef i32 @closedir(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
331 declare i32 @closedir(ptr)
333 ; CHECK: declare double @copysign(double, double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
334 declare double @copysign(double, double)
336 ; CHECK: declare float @copysignf(float, float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
337 declare float @copysignf(float, float)
339 ; CHECK: declare x86_fp80 @copysignl(x86_fp80, x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
340 declare x86_fp80 @copysignl(x86_fp80, x86_fp80)
342 ; CHECK: declare double @cos(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
343 declare double @cos(double)
345 ; CHECK: declare float @cosf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
346 declare float @cosf(float)
348 ; CHECK: declare double @cosh(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
349 declare double @cosh(double)
351 ; CHECK: declare float @coshf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
352 declare float @coshf(float)
354 ; CHECK: declare x86_fp80 @coshl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
355 declare x86_fp80 @coshl(x86_fp80)
357 ; CHECK: declare x86_fp80 @cosl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
358 declare x86_fp80 @cosl(x86_fp80)
360 ; CHECK: declare noundef ptr @ctermid(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
361 declare ptr @ctermid(ptr)
363 ; CHECK: declare double @exp(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
364 declare double @exp(double)
366 ; CHECK: declare double @exp2(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
367 declare double @exp2(double)
369 ; CHECK: declare float @exp2f(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
370 declare float @exp2f(float)
372 ; CHECK: declare x86_fp80 @exp2l(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
373 declare x86_fp80 @exp2l(x86_fp80)
375 ; CHECK: declare float @expf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
376 declare float @expf(float)
378 ; CHECK: declare x86_fp80 @expl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
379 declare x86_fp80 @expl(x86_fp80)
381 ; CHECK: declare double @expm1(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
382 declare double @expm1(double)
384 ; CHECK: declare float @expm1f(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
385 declare float @expm1f(float)
387 ; CHECK: declare x86_fp80 @expm1l(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
388 declare x86_fp80 @expm1l(x86_fp80)
390 ; CHECK: declare double @fabs(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
391 declare double @fabs(double)
393 ; CHECK: declare float @fabsf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
394 declare float @fabsf(float)
396 ; CHECK: declare x86_fp80 @fabsl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
397 declare x86_fp80 @fabsl(x86_fp80)
399 ; CHECK: declare noundef i32 @fclose(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
400 declare i32 @fclose(ptr)
402 ; CHECK: declare noalias noundef ptr @fdopen(i32 noundef, ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
403 declare ptr @fdopen(i32, ptr)
405 ; CHECK: declare noundef i32 @feof(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
406 declare i32 @feof(ptr)
408 ; CHECK: declare noundef i32 @ferror(ptr nocapture noundef) [[NOFREE_NOUNWIND_READONLY:#[0-9]+]]
409 declare i32 @ferror(ptr)
411 ; CHECK: declare noundef i32 @fflush(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
412 declare i32 @fflush(ptr)
414 ; CHECK: declare i32 @ffs(i32) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
415 declare i32 @ffs(i32)
417 ; CHECK-KNOWN: declare i32 @ffsl(i64) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
418 ; CHECK-UNKNOWN: declare i32 @ffsl(i64){{$}}
419 declare i32 @ffsl(i64)
421 ; CHECK-KNOWN: declare i32 @ffsll(i64) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
422 ; CHECK-UNKNOWN: declare i32 @ffsll(i64){{$}}
423 declare i32 @ffsll(i64)
425 ; CHECK: declare noundef i32 @fgetc(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
426 declare i32 @fgetc(ptr)
428 ; CHECK: declare noundef i32 @fgetpos(ptr nocapture noundef, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
429 declare i32 @fgetpos(ptr, ptr)
431 ; CHECK: declare noundef ptr @fgets(ptr noundef, i32 noundef, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
432 declare ptr @fgets(ptr, i32, ptr)
434 ; CHECK: declare noundef i32 @fileno(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
435 declare i32 @fileno(ptr)
437 ; CHECK: declare void @flockfile(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
438 declare void @flockfile(ptr)
440 ; CHECK: declare double @floor(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
441 declare double @floor(double)
443 ; CHECK: declare float @floorf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
444 declare float @floorf(float)
446 ; CHECK: declare x86_fp80 @floorl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
447 declare x86_fp80 @floorl(x86_fp80)
449 ; CHECK: declare i32 @fls(i32)
450 declare i32 @fls(i32)
452 ; CHECK: declare i32 @flsl(i64)
453 declare i32 @flsl(i64)
455 ; CHECK: declare i32 @flsll(i64)
456 declare i32 @flsll(i64)
458 ; CHECK: declare double @fmax(double, double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
459 declare double @fmax(double, double)
461 ; CHECK: declare float @fmaxf(float, float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
462 declare float @fmaxf(float, float)
464 ; CHECK: declare x86_fp80 @fmaxl(x86_fp80, x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
465 declare x86_fp80 @fmaxl(x86_fp80, x86_fp80)
467 ; CHECK: declare double @fmin(double, double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
468 declare double @fmin(double, double)
470 ; CHECK: declare float @fminf(float, float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
471 declare float @fminf(float, float)
473 ; CHECK: declare x86_fp80 @fminl(x86_fp80, x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
474 declare x86_fp80 @fminl(x86_fp80, x86_fp80)
476 ; CHECK: declare double @fmod(double, double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
477 declare double @fmod(double, double)
479 ; CHECK: declare float @fmodf(float, float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
480 declare float @fmodf(float, float)
482 ; CHECK: declare x86_fp80 @fmodl(x86_fp80, x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
483 declare x86_fp80 @fmodl(x86_fp80, x86_fp80)
485 ; CHECK: declare noalias noundef ptr @fopen(ptr nocapture noundef readonly, ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
486 declare ptr @fopen(ptr, ptr)
488 ; CHECK: declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
489 declare i32 @fprintf(ptr, ptr, ...)
491 ; CHECK: declare noundef i32 @fputc(i32 noundef, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
492 declare i32 @fputc(i32, ptr)
494 ; CHECK: declare noundef i32 @fputs(ptr nocapture noundef readonly, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
495 declare i32 @fputs(ptr, ptr)
497 ; CHECK: declare noundef i64 @fread(ptr nocapture noundef, i64 noundef, i64 noundef, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
498 declare i64 @fread(ptr, i64, i64, ptr)
500 ; CHECK: declare void @free(ptr allocptr nocapture noundef) [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCKIND_FREE_FAMILY_MALLOC:#[0-9]+]]
501 declare void @free(ptr)
503 ; CHECK-AIX: declare void @vec_free(ptr allocptr nocapture noundef) [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_FAMILY_VEC_MALLOC:#[0-9]+]]
504 declare void @vec_free(ptr)
506 ; CHECK: declare double @frexp(double, ptr nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN_WRITEONLY:#[0-9]+]]
507 declare double @frexp(double, ptr)
509 ; CHECK: declare float @frexpf(float, ptr nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
510 declare float @frexpf(float, ptr)
512 ; CHECK: declare x86_fp80 @frexpl(x86_fp80, ptr nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
513 declare x86_fp80 @frexpl(x86_fp80, ptr)
515 ; CHECK: declare noundef i32 @fscanf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
516 declare i32 @fscanf(ptr, ptr, ...)
518 ; CHECK: declare noundef i32 @fseek(ptr nocapture noundef, i64 noundef, i32 noundef) [[NOFREE_NOUNWIND]]
519 declare i32 @fseek(ptr, i64, i32)
521 ; CHECK: declare noundef i32 @fseeko(ptr nocapture noundef, i64 noundef, i32 noundef) [[NOFREE_NOUNWIND]]
522 declare i32 @fseeko(ptr, i64, i32)
524 ; CHECK-LINUX: declare noundef i32 @fseeko64(ptr nocapture noundef, i64 noundef, i32 noundef) [[NOFREE_NOUNWIND]]
525 declare i32 @fseeko64(ptr, i64, i32)
527 ; CHECK: declare noundef i32 @fsetpos(ptr nocapture noundef, ptr noundef) [[NOFREE_NOUNWIND]]
528 declare i32 @fsetpos(ptr, ptr)
530 ; CHECK: declare noundef i32 @fstat(i32 noundef, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
531 declare i32 @fstat(i32, ptr)
533 ; CHECK-LINUX: declare noundef i32 @fstat64(i32 noundef, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
534 declare i32 @fstat64(i32, ptr)
536 ; CHECK: declare noundef i32 @fstatvfs(i32 noundef, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
537 declare i32 @fstatvfs(i32, ptr)
539 ; CHECK-LINUX: declare noundef i32 @fstatvfs64(i32 noundef, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
540 declare i32 @fstatvfs64(i32, ptr)
542 ; CHECK: declare noundef i64 @ftell(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
543 declare i64 @ftell(ptr)
545 ; CHECK: declare noundef i64 @ftello(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
546 declare i64 @ftello(ptr)
548 ; CHECK-LINUX: declare noundef i64 @ftello64(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
549 declare i64 @ftello64(ptr)
551 ; CHECK: declare noundef i32 @ftrylockfile(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
552 declare i32 @ftrylockfile(ptr)
554 ; CHECK: declare void @funlockfile(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
555 declare void @funlockfile(ptr)
557 ; CHECK: declare noundef i64 @fwrite(ptr nocapture noundef, i64 noundef, i64 noundef, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
558 declare i64 @fwrite(ptr, i64, i64, ptr)
560 ; CHECK: declare noundef i32 @getc(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
561 declare i32 @getc(ptr)
563 ; CHECK-KNOWN: declare noundef i32 @getc_unlocked(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
564 ; CHECK-UNKNOWN: declare i32 @getc_unlocked(ptr){{$}}
565 declare i32 @getc_unlocked(ptr)
567 ; CHECK: declare noundef i32 @getchar() [[NOFREE_NOUNWIND]]
568 declare i32 @getchar()
570 ; CHECK-KNOWN: declare noundef i32 @getchar_unlocked() [[NOFREE_NOUNWIND]]
571 ; CHECK-UNKNOWN: declare i32 @getchar_unlocked(){{$}}
572 declare i32 @getchar_unlocked()
574 ; CHECK: declare noundef ptr @getenv(ptr nocapture noundef) [[NOFREE_NOUNWIND_READONLY]]
575 declare ptr @getenv(ptr)
577 ; CHECK: declare noundef i32 @getitimer(i32 noundef, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
578 declare i32 @getitimer(i32, ptr)
580 ; CHECK: declare noundef i32 @getlogin_r(ptr nocapture noundef, i64 noundef) [[NOFREE_NOUNWIND]]
581 declare i32 @getlogin_r(ptr, i64)
583 ; CHECK: declare noundef ptr @getpwnam(ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
584 declare ptr @getpwnam(ptr)
586 ; CHECK: declare noundef ptr @gets(ptr noundef) [[NOFREE_NOUNWIND]]
587 declare ptr @gets(ptr)
589 ; CHECK: declare noundef i32 @gettimeofday(ptr nocapture noundef, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
590 declare i32 @gettimeofday(ptr, ptr)
592 ; CHECK: declare i32 @isascii(i32) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
593 declare i32 @isascii(i32)
595 ; CHECK: declare i32 @isdigit(i32) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
596 declare i32 @isdigit(i32)
598 ; CHECK: declare i64 @labs(i64) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
599 declare i64 @labs(i64)
601 ; CHECK: declare noundef i32 @lchown(ptr nocapture noundef readonly, i32 noundef, i32 noundef) [[NOFREE_NOUNWIND]]
602 declare i32 @lchown(ptr, i32, i32)
604 ; CHECK: declare double @ldexp(double, i32) [[NOFREE_WILLRETURN:#[0-9]+]]
605 declare double @ldexp(double, i32)
607 ; CHECK: declare float @ldexpf(float, i32) [[NOFREE_WILLRETURN]]
608 declare float @ldexpf(float, i32)
610 ; CHECK: declare x86_fp80 @ldexpl(x86_fp80, i32) [[NOFREE_WILLRETURN]]
611 declare x86_fp80 @ldexpl(x86_fp80, i32)
613 ; CHECK: declare i64 @llabs(i64) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
614 declare i64 @llabs(i64)
616 ; CHECK: declare double @log(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
617 declare double @log(double)
619 ; CHECK: declare double @log10(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
620 declare double @log10(double)
622 ; CHECK: declare float @log10f(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
623 declare float @log10f(float)
625 ; CHECK: declare x86_fp80 @log10l(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
626 declare x86_fp80 @log10l(x86_fp80)
628 ; CHECK: declare double @log1p(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
629 declare double @log1p(double)
631 ; CHECK: declare float @log1pf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
632 declare float @log1pf(float)
634 ; CHECK: declare x86_fp80 @log1pl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
635 declare x86_fp80 @log1pl(x86_fp80)
637 ; CHECK: declare double @log2(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
638 declare double @log2(double)
640 ; CHECK: declare float @log2f(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
641 declare float @log2f(float)
643 ; CHECK: declare x86_fp80 @log2l(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
644 declare x86_fp80 @log2l(x86_fp80)
646 ; CHECK: declare double @logb(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
647 declare double @logb(double)
649 ; CHECK: declare float @logbf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
650 declare float @logbf(float)
652 ; CHECK: declare x86_fp80 @logbl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
653 declare x86_fp80 @logbl(x86_fp80)
655 ; CHECK: declare float @logf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
656 declare float @logf(float)
658 ; CHECK: declare x86_fp80 @logl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
659 declare x86_fp80 @logl(x86_fp80)
661 ; CHECK: declare noundef i32 @lstat(ptr nocapture noundef readonly, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
662 declare i32 @lstat(ptr, ptr)
664 ; CHECK-LINUX: declare noundef i32 @lstat64(ptr nocapture noundef readonly, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
665 declare i32 @lstat64(ptr, ptr)
667 ; CHECK: declare noalias noundef ptr @malloc(i64 noundef) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCUNINIT_ALLOCSIZE0_FAMILY_MALLOC:#[0-9]+]]
668 declare ptr @malloc(i64)
670 ; CHECK-AIX: declare noalias noundef ptr @vec_malloc(i64 noundef) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCSIZE0_FAMILY_VEC_MALLOC:#[0-9]+]]
671 declare ptr @vec_malloc(i64)
673 ; CHECK-LINUX: declare noalias noundef ptr @memalign(i64 allocalign, i64) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN:#[0-9]+]]
674 declare ptr @memalign(i64, i64)
676 ; CHECK: declare ptr @memccpy(ptr noalias writeonly, ptr noalias nocapture readonly, i32, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
677 declare ptr @memccpy(ptr, ptr, i32, i64)
679 ; CHECK-LINUX: declare ptr @memchr(ptr, i32, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
680 ; CHECK-DARWIN: declare ptr @memchr(ptr, i32, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY:#[0-9]+]]
681 ; CHECK-UNKNOWN: declare ptr @memchr(ptr, i32, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY:#[0-9]+]]
682 declare ptr @memchr(ptr, i32, i64)
684 ; CHECK: declare i32 @memcmp(ptr nocapture, ptr nocapture, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
685 declare i32 @memcmp(ptr, ptr, i64)
687 ; CHECK: declare ptr @memcpy(ptr noalias returned writeonly, ptr noalias nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
688 declare ptr @memcpy(ptr, ptr, i64)
690 ; CHECK: declare ptr @__memcpy_chk(ptr noalias writeonly, ptr noalias nocapture readonly, i64, i64) [[ARGMEMONLY_NOFREE_NOUNWIND:#[0-9]+]]
691 declare ptr @__memcpy_chk(ptr, ptr, i64, i64)
693 ; CHECK: declare ptr @mempcpy(ptr noalias writeonly, ptr noalias nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
694 declare ptr @mempcpy(ptr, ptr, i64)
696 ; CHECK: declare ptr @memmove(ptr returned writeonly, ptr nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
697 declare ptr @memmove(ptr, ptr, i64)
699 ; CHECK: declare ptr @memset(ptr writeonly, i32, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN:#[0-9]+]]
700 declare ptr @memset(ptr, i32, i64)
702 ; CHECK: declare ptr @__memset_chk(ptr writeonly, i32, i64, i64) [[ARGMEMONLY_NOFREE_NOUNWIND]]
703 declare ptr @__memset_chk(ptr, i32, i64, i64)
705 ; CHECK: declare noundef i32 @mkdir(ptr nocapture noundef readonly, i16 noundef zeroext) [[NOFREE_NOUNWIND]]
706 declare i32 @mkdir(ptr, i16 zeroext)
708 ; CHECK: declare noundef i64 @mktime(ptr nocapture noundef) [[NOFREE_NOUNWIND_WILLRETURN:#[0-9]+]]
709 declare i64 @mktime(ptr)
711 ; CHECK: declare double @modf(double, ptr nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
712 declare double @modf(double, ptr)
714 ; CHECK: declare float @modff(float, ptr nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
715 declare float @modff(float, ptr)
717 ; CHECK: declare x86_fp80 @modfl(x86_fp80, ptr nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
718 declare x86_fp80 @modfl(x86_fp80, ptr)
720 ; CHECK: declare double @nearbyint(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
721 declare double @nearbyint(double)
723 ; CHECK: declare float @nearbyintf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
724 declare float @nearbyintf(float)
726 ; CHECK: declare x86_fp80 @nearbyintl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
727 declare x86_fp80 @nearbyintl(x86_fp80)
729 ; CHECK-LINUX: declare noundef i32 @open(ptr nocapture noundef readonly, i32 noundef, ...) [[NOFREE]]
730 ; CHECK-OPEN: declare noundef i32 @open(ptr nocapture noundef readonly, i32 noundef, ...) [[NOFREE:#[0-9]+]]
731 declare i32 @open(ptr, i32, ...)
733 ; CHECK-LINUX: declare noundef i32 @open64(ptr nocapture noundef readonly, i32 noundef, ...) [[NOFREE]]
734 declare i32 @open64(ptr, i32, ...)
736 ; CHECK: declare noalias noundef ptr @opendir(ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
737 declare ptr @opendir(ptr)
739 ; CHECK: declare noundef i32 @pclose(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
740 declare i32 @pclose(ptr)
742 ; CHECK: declare void @perror(ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
743 declare void @perror(ptr)
745 ; CHECK: declare noalias noundef ptr @popen(ptr nocapture noundef readonly, ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
746 declare ptr @popen(ptr, ptr)
748 ; CHECK: declare i32 @posix_memalign(ptr, i64, i64) [[NOFREE]]
749 declare i32 @posix_memalign(ptr, i64, i64)
751 ; CHECK: declare double @pow(double, double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
752 declare double @pow(double, double)
754 ; CHECK: declare float @powf(float, float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
755 declare float @powf(float, float)
757 ; CHECK: declare x86_fp80 @powl(x86_fp80, x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
758 declare x86_fp80 @powl(x86_fp80, x86_fp80)
760 ; CHECK: declare noundef i64 @pread(i32 noundef, ptr nocapture noundef, i64 noundef, i64 noundef) [[NOFREE]]
761 declare i64 @pread(i32, ptr, i64, i64)
763 ; CHECK: declare noundef i32 @printf(ptr nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
764 declare i32 @printf(ptr, ...)
766 ; CHECK: declare noundef i32 @putc(i32 noundef, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
767 declare i32 @putc(i32, ptr)
769 ; CHECK: declare noundef i32 @putchar(i32 noundef) [[NOFREE_NOUNWIND]]
770 declare i32 @putchar(i32)
772 ; CHECK-KNOWN: declare noundef i32 @putchar_unlocked(i32 noundef) [[NOFREE_NOUNWIND]]
773 ; CHECK-UNKNOWN: declare i32 @putchar_unlocked(i32){{$}}
774 declare i32 @putchar_unlocked(i32)
776 ; CHECK: declare noundef i32 @puts(ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
777 declare i32 @puts(ptr)
779 ; CHECK: declare noundef i64 @pwrite(i32 noundef, ptr nocapture noundef readonly, i64 noundef, i64 noundef) [[NOFREE]]
780 declare i64 @pwrite(i32, ptr, i64, i64)
782 ; CHECK: declare void @qsort(ptr noundef, i64 noundef, i64 noundef, ptr nocapture noundef) [[NOFREE]]
783 declare void @qsort(ptr, i64, i64, ptr)
785 ; CHECK: declare noundef i64 @read(i32 noundef, ptr nocapture noundef, i64 noundef) [[NOFREE]]
786 declare i64 @read(i32, ptr, i64)
788 ; CHECK: declare noundef i64 @readlink(ptr nocapture noundef readonly, ptr nocapture noundef, i64 noundef) [[NOFREE_NOUNWIND]]
789 declare i64 @readlink(ptr, ptr, i64)
791 ; CHECK: declare noalias noundef ptr @realloc(ptr allocptr nocapture, i64 noundef) [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCKIND_REALLOC_ALLOCSIZE1_FAMILY_MALLOC:#[0-9]+]]
792 declare ptr @realloc(ptr, i64)
794 ; CHECK: declare noalias noundef ptr @reallocf(ptr allocptr nocapture, i64 noundef) [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCKIND_REALLOC_ALLOCSIZE1_FAMILY_MALLOC]]
795 declare ptr @reallocf(ptr, i64)
797 ; CHECK-AIX: declare noalias noundef ptr @vec_realloc(ptr allocptr nocapture, i64 noundef) [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCSIZE_FAMILY_VEC_MALLOC:#[0-9]+]]
798 declare ptr @vec_realloc(ptr, i64)
800 ; CHECK: declare noundef ptr @realpath(ptr nocapture noundef readonly, ptr noundef) [[NOFREE_NOUNWIND]]
801 declare ptr @realpath(ptr, ptr)
803 ; CHECK: declare noundef i32 @remove(ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
804 declare i32 @remove(ptr)
806 ; CHECK: declare noundef i32 @rename(ptr nocapture noundef readonly, ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
807 declare i32 @rename(ptr, ptr)
809 ; CHECK: declare void @rewind(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
810 declare void @rewind(ptr)
812 ; CHECK: declare double @rint(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
813 declare double @rint(double)
815 ; CHECK: declare float @rintf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
816 declare float @rintf(float)
818 ; CHECK: declare x86_fp80 @rintl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
819 declare x86_fp80 @rintl(x86_fp80)
821 ; CHECK: declare noundef i32 @rmdir(ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
822 declare i32 @rmdir(ptr)
824 ; CHECK: declare double @round(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
825 declare double @round(double)
827 ; CHECK: declare float @roundf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
828 declare float @roundf(float)
830 ; CHECK: declare x86_fp80 @roundl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
831 declare x86_fp80 @roundl(x86_fp80)
833 ; CHECK: declare noundef i32 @scanf(ptr nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
834 declare i32 @scanf(ptr, ...)
836 ; CHECK: declare void @setbuf(ptr nocapture noundef, ptr noundef) [[NOFREE_NOUNWIND]]
837 declare void @setbuf(ptr, ptr)
839 ; CHECK: declare noundef i32 @setitimer(i32 noundef, ptr nocapture noundef readonly, ptr nocapture noundef) [[NOFREE_NOUNWIND_WILLRETURN]]
840 declare i32 @setitimer(i32, ptr, ptr)
842 ; CHECK: declare noundef i32 @setvbuf(ptr nocapture noundef, ptr noundef, i32 noundef, i64 noundef) [[NOFREE_NOUNWIND]]
843 declare i32 @setvbuf(ptr, ptr, i32, i64)
845 ; CHECK: declare double @sin(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
846 declare double @sin(double)
848 ; CHECK: declare float @sinf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
849 declare float @sinf(float)
851 ; CHECK: declare double @sinh(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
852 declare double @sinh(double)
854 ; CHECK: declare float @sinhf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
855 declare float @sinhf(float)
857 ; CHECK: declare x86_fp80 @sinhl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
858 declare x86_fp80 @sinhl(x86_fp80)
860 ; CHECK: declare x86_fp80 @sinl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
861 declare x86_fp80 @sinl(x86_fp80)
863 ; CHECK: declare noundef i32 @snprintf(ptr noalias nocapture noundef writeonly, i64 noundef, ptr nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
864 declare i32 @snprintf(ptr, i64, ptr, ...)
866 ; CHECK: declare noundef i32 @sprintf(ptr noalias nocapture noundef writeonly, ptr nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
867 declare i32 @sprintf(ptr, ptr, ...)
869 ; CHECK: declare double @sqrt(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
870 declare double @sqrt(double)
872 ; CHECK: declare float @sqrtf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
873 declare float @sqrtf(float)
875 ; CHECK: declare x86_fp80 @sqrtl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
876 declare x86_fp80 @sqrtl(x86_fp80)
878 ; CHECK: declare noundef i32 @sscanf(ptr nocapture noundef readonly, ptr nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
879 declare i32 @sscanf(ptr, ptr, ...)
881 ; CHECK: declare noundef i32 @stat(ptr nocapture noundef readonly, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
882 declare i32 @stat(ptr, ptr)
884 ; CHECK-LINUX: declare noundef i32 @stat64(ptr nocapture noundef readonly, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
885 declare i32 @stat64(ptr, ptr)
887 ; CHECK: declare noundef i32 @statvfs(ptr nocapture noundef readonly, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
888 declare i32 @statvfs(ptr, ptr)
890 ; CHECK-LINUX: declare noundef i32 @statvfs64(ptr nocapture noundef readonly, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
891 declare i32 @statvfs64(ptr, ptr)
893 ; CHECK: declare ptr @stpcpy(ptr noalias writeonly, ptr noalias nocapture readonly) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
894 declare ptr @stpcpy(ptr, ptr)
896 ; CHECK: declare ptr @stpncpy(ptr noalias writeonly, ptr noalias nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
897 declare ptr @stpncpy(ptr, ptr, i64)
899 ; CHECK: declare i32 @strcasecmp(ptr nocapture, ptr nocapture) [[NOFREE_NOUNWIND_READONLY_WILLRETURN:#[0-9]+]]
900 declare i32 @strcasecmp(ptr, ptr)
902 ; CHECK: declare ptr @strcat(ptr noalias returned, ptr noalias nocapture readonly) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
903 declare ptr @strcat(ptr, ptr)
905 ; CHECK: declare ptr @strchr(ptr, i32) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
906 declare ptr @strchr(ptr, i32)
908 ; CHECK: declare i32 @strcmp(ptr nocapture, ptr nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
909 declare i32 @strcmp(ptr, ptr)
911 ; CHECK: declare i32 @strcoll(ptr nocapture, ptr nocapture) [[NOFREE_NOUNWIND_READONLY_WILLRETURN]]
912 declare i32 @strcoll(ptr, ptr)
914 ; CHECK: declare ptr @strcpy(ptr noalias returned writeonly, ptr noalias nocapture readonly) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
915 declare ptr @strcpy(ptr, ptr)
917 ; CHECK: declare i64 @strcspn(ptr nocapture, ptr nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
918 declare i64 @strcspn(ptr, ptr)
920 ; CHECK: declare noalias ptr @strdup(ptr nocapture readonly) [[INACCESSIBLEMEMORARGONLY_NOFREE_NOUNWIND_WILLRETURN_FAMILY_MALLOC:#[0-9]+]]
921 declare ptr @strdup(ptr)
923 ; CHECK: declare i64 @strlen(ptr nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
924 declare i64 @strlen(ptr)
926 ; CHECK: declare i32 @strncasecmp(ptr nocapture, ptr nocapture, i64) [[NOFREE_NOUNWIND_READONLY_WILLRETURN]]
927 declare i32 @strncasecmp(ptr, ptr, i64)
929 ; CHECK: declare ptr @strncat(ptr noalias returned, ptr noalias nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
930 declare ptr @strncat(ptr, ptr, i64)
932 ; CHECK: declare i32 @strncmp(ptr nocapture, ptr nocapture, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
933 declare i32 @strncmp(ptr, ptr, i64)
935 ; CHECK: declare ptr @strncpy(ptr noalias returned writeonly, ptr noalias nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
936 declare ptr @strncpy(ptr, ptr, i64)
938 ; CHECK: declare noalias ptr @strndup(ptr nocapture readonly, i64 noundef) [[INACCESSIBLEMEMORARGONLY_NOFREE_NOUNWIND_WILLRETURN_FAMILY_MALLOC]]
939 declare ptr @strndup(ptr, i64)
941 ; CHECK: declare i64 @strnlen(ptr nocapture, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY_WILLRETURN:#[0-9]+]]
942 declare i64 @strnlen(ptr, i64)
944 ; CHECK: declare ptr @strpbrk(ptr, ptr nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY_WILLRETURN]]
945 declare ptr @strpbrk(ptr, ptr)
947 ; CHECK: declare ptr @strrchr(ptr, i32) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
948 declare ptr @strrchr(ptr, i32)
950 ; CHECK: declare i64 @strspn(ptr nocapture, ptr nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
951 declare i64 @strspn(ptr, ptr)
953 ; CHECK: declare ptr @strstr(ptr, ptr nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY_WILLRETURN]]
954 declare ptr @strstr(ptr, ptr)
956 ; CHECK: declare double @strtod(ptr readonly, ptr nocapture) [[NOFREE_NOUNWIND_WILLRETURN]]
957 declare double @strtod(ptr, ptr)
959 ; CHECK: declare float @strtof(ptr readonly, ptr nocapture) [[NOFREE_NOUNWIND_WILLRETURN]]
960 declare float @strtof(ptr, ptr)
962 ; CHECK: declare ptr @strtok(ptr, ptr nocapture readonly) [[NOFREE_NOUNWIND_WILLRETURN]]
963 declare ptr @strtok(ptr, ptr)
965 ; CHECK: declare ptr @strtok_r(ptr, ptr nocapture readonly, ptr) [[NOFREE_NOUNWIND_WILLRETURN]]
966 declare ptr @strtok_r(ptr, ptr, ptr)
968 ; CHECK: declare i64 @strtol(ptr readonly, ptr nocapture, i32) [[NOFREE_NOUNWIND_WILLRETURN]]
969 declare i64 @strtol(ptr, ptr, i32)
971 ; CHECK: declare x86_fp80 @strtold(ptr readonly, ptr nocapture) [[NOFREE_NOUNWIND_WILLRETURN]]
972 declare x86_fp80 @strtold(ptr, ptr)
974 ; CHECK: declare i64 @strtoll(ptr readonly, ptr nocapture, i32) [[NOFREE_NOUNWIND_WILLRETURN]]
975 declare i64 @strtoll(ptr, ptr, i32)
977 ; CHECK: declare i64 @strtoul(ptr readonly, ptr nocapture, i32) [[NOFREE_NOUNWIND_WILLRETURN]]
978 declare i64 @strtoul(ptr, ptr, i32)
980 ; CHECK: declare i64 @strtoull(ptr readonly, ptr nocapture, i32) [[NOFREE_NOUNWIND_WILLRETURN]]
981 declare i64 @strtoull(ptr, ptr, i32)
983 ; CHECK: declare i64 @strxfrm(ptr nocapture, ptr nocapture readonly, i64) [[NOFREE_NOUNWIND_WILLRETURN]]
984 declare i64 @strxfrm(ptr, ptr, i64)
986 ; CHECK: declare noundef i32 @system(ptr nocapture noundef readonly) [[NOFREE]]
987 declare i32 @system(ptr)
989 ; CHECK: declare double @tan(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
990 declare double @tan(double)
992 ; CHECK: declare float @tanf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
993 declare float @tanf(float)
995 ; CHECK: declare double @tanh(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
996 declare double @tanh(double)
998 ; CHECK: declare float @tanhf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
999 declare float @tanhf(float)
1001 ; CHECK: declare x86_fp80 @tanhl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
1002 declare x86_fp80 @tanhl(x86_fp80)
1004 ; CHECK: declare x86_fp80 @tanl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
1005 declare x86_fp80 @tanl(x86_fp80)
1007 ; CHECK: declare noundef i64 @times(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
1008 declare i64 @times(ptr)
1010 ; CHECK: declare noalias noundef ptr @tmpfile() [[NOFREE_NOUNWIND]]
1011 declare ptr @tmpfile()
1013 ; CHECK-LINUX: declare noalias noundef ptr @tmpfile64() [[NOFREE_NOUNWIND]]
1014 declare ptr @tmpfile64()
1016 ; CHECK: declare i32 @toascii(i32) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
1017 declare i32 @toascii(i32)
1019 ; CHECK: declare double @trunc(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
1020 declare double @trunc(double)
1022 ; CHECK: declare float @truncf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
1023 declare float @truncf(float)
1025 ; CHECK: declare x86_fp80 @truncl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
1026 declare x86_fp80 @truncl(x86_fp80)
1028 ; CHECK: declare noundef i32 @uname(ptr nocapture noundef) [[NOFREE_NOUNWIND]]
1029 declare i32 @uname(ptr)
1031 ; CHECK: declare noundef i32 @ungetc(i32 noundef, ptr nocapture noundef) [[NOFREE_NOUNWIND]]
1032 declare i32 @ungetc(i32, ptr)
1034 ; CHECK: declare noundef i32 @unlink(ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
1035 declare i32 @unlink(ptr)
1037 ; CHECK: declare noundef i32 @unsetenv(ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
1038 declare i32 @unsetenv(ptr)
1040 ; CHECK: declare noundef i32 @utime(ptr nocapture noundef readonly, ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
1041 declare i32 @utime(ptr, ptr)
1043 ; CHECK: declare noundef i32 @utimes(ptr nocapture noundef readonly, ptr nocapture noundef readonly) [[NOFREE_NOUNWIND]]
1044 declare i32 @utimes(ptr, ptr)
1046 ; CHECK: declare noalias noundef ptr @valloc(i64 noundef) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCUNINIT_ALLOCSIZE0_FAMILY_MALLOC]]
1047 declare ptr @valloc(i64)
1049 ; CHECK: declare noundef i32 @vfprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ptr noundef) [[NOFREE_NOUNWIND]]
1050 declare i32 @vfprintf(ptr, ptr, ptr)
1052 ; CHECK: declare noundef i32 @vfscanf(ptr nocapture noundef, ptr nocapture noundef readonly, ptr noundef) [[NOFREE_NOUNWIND]]
1053 declare i32 @vfscanf(ptr, ptr, ptr)
1055 ; CHECK: declare noundef i32 @vprintf(ptr nocapture noundef readonly, ptr noundef) [[NOFREE_NOUNWIND]]
1056 declare i32 @vprintf(ptr, ptr)
1058 ; CHECK: declare noundef i32 @vscanf(ptr nocapture noundef readonly, ptr noundef) [[NOFREE_NOUNWIND]]
1059 declare i32 @vscanf(ptr, ptr)
1061 ; CHECK: declare noundef i32 @vsnprintf(ptr nocapture noundef, i64 noundef, ptr nocapture noundef readonly, ptr noundef) [[NOFREE_NOUNWIND]]
1062 declare i32 @vsnprintf(ptr, i64, ptr, ptr)
1064 ; CHECK: declare noundef i32 @vsprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ptr noundef) [[NOFREE_NOUNWIND]]
1065 declare i32 @vsprintf(ptr, ptr, ptr)
1067 ; CHECK: declare noundef i32 @vsscanf(ptr nocapture noundef readonly, ptr nocapture noundef readonly, ptr noundef) [[NOFREE_NOUNWIND]]
1068 declare i32 @vsscanf(ptr, ptr, ptr)
1070 ; CHECK: declare noundef i64 @write(i32 noundef, ptr nocapture noundef readonly, i64 noundef) [[NOFREE]]
1071 declare i64 @write(i32, ptr, i64)
1074 ; memset_pattern{4,8,16} aren't available everywhere.
1075 ; CHECK-DARWIN: declare void @memset_pattern4(ptr nocapture writeonly, ptr nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
1076 declare void @memset_pattern4(ptr, ptr, i64)
1077 ; CHECK-DARWIN: declare void @memset_pattern8(ptr nocapture writeonly, ptr nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
1078 declare void @memset_pattern8(ptr, ptr, i64)
1079 ; CHECK-DARWIN: declare void @memset_pattern16(ptr nocapture writeonly, ptr nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
1080 declare void @memset_pattern16(ptr, ptr, i64)
1082 ; CHECK-DAG: attributes [[NOFREE_NOUNWIND_WILLRETURN]] = { mustprogress nofree nounwind willreturn }
1083 ; CHECK-DAG: attributes [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]] = { mustprogress nofree nounwind willreturn memory(write) }
1084 ; CHECK-DAG: attributes [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]] = { mustprogress nofree nounwind willreturn memory(argmem: write) }
1085 ; CHECK-DAG: attributes [[NOFREE_NOUNWIND]] = { nofree nounwind }
1086 ; CHECK-DAG: attributes [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCUNINIT_ALLOCSIZE1_FAMILY_MALLOC]] = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" }
1087 ; CHECK-DAG: attributes [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCZEROED_ALLOCSIZE01_FAMILY_MALLOC]] = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" }
1088 ; CHECK-DAG: attributes [[NOFREE_NOUNWIND_READONLY_WILLRETURN]] = { mustprogress nofree nounwind willreturn memory(read) }
1089 ; CHECK-DAG: attributes [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]] = { mustprogress nofree nounwind willreturn memory(argmem: readwrite) }
1090 ; CHECK-DAG: attributes [[NOFREE_NOUNWIND_READONLY]] = { nofree nounwind memory(read) }
1091 ; CHECK-DAG: attributes [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCKIND_FREE_FAMILY_MALLOC]] = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" }
1092 ; CHECK-DAG: attributes [[NOFREE_WILLRETURN]] = { mustprogress nofree willreturn }
1093 ; CHECK-DAG: attributes [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCUNINIT_ALLOCSIZE0_FAMILY_MALLOC]] = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" }
1094 ; CHECK-DAG: attributes [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY_WILLRETURN]] = { mustprogress nofree nounwind willreturn memory(argmem: read) }
1095 ; CHECK-DAG: attributes [[NOFREE]] = { nofree }
1096 ; CHECK-DAG: attributes [[ARGMEMONLY_NOFREE_NOUNWIND]] = { nofree nounwind memory(argmem: readwrite) }
1097 ; CHECK-DAG: attributes [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCKIND_REALLOC_ALLOCSIZE1_FAMILY_MALLOC]] = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" }
1098 ; CHECK-DAG: attributes [[INACCESSIBLEMEMORARGONLY_NOFREE_NOUNWIND_WILLRETURN_FAMILY_MALLOC]] = { mustprogress nofree nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" }
1100 ; CHECK-NVPTX-DAG: attributes [[NOFREE_NOUNWIND_READNONE]] = { nofree nosync nounwind memory(none) }
1102 ; CHECK-AIX-DAG: attributes [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCSIZE0_FAMILY_VEC_MALLOC]] = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="vec_malloc" }
1103 ; CHECK-AIX-DAG: attributes [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_FAMILY_VEC_MALLOC]] = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="vec_malloc" }
1104 ; CHECK-AIX-DAG: attributes [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCSIZE_FAMILY_VEC_MALLOC]] = { mustprogress nounwind willreturn allockind("realloc") allocsize(1) memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="vec_malloc" }
1105 ; CHECK-AIX-DAG: attributes [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCSIZE01_FAMILY_VEC_MALLOC]] = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="vec_malloc" }