1; RUN: opt < %s -mtriple=x86_64-- -inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK,CHECK-NOLINUX,CHECK-OPEN,CHECK-UNKNOWN %s
2; RUN: opt < %s -mtriple=x86_64-- -passes=inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK,CHECK-NOLINUX,CHECK-OPEN,CHECK-UNKNOWN %s
3; RUN: opt < %s -mtriple=x86_64-apple-macosx10.8.0 -inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK,CHECK-KNOWN,CHECK-NOLINUX,CHECK-OPEN,CHECK-DARWIN %s
4; RUN: opt < %s -mtriple=x86_64-unknown-linux-gnu -inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK,CHECK-KNOWN,CHECK-LINUX %s
5; RUN: opt < %s -mtriple=nvptx -inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK-NOLINUX,CHECK-NVPTX %s
6; RUN: opt < %s -mtriple=powerpc-ibm-aix-xcoff -inferattrs -S | FileCheck --match-full-lines --check-prefixes=CHECK-AIX %s
7
8declare i32 @__nvvm_reflect(i8*)
9; CHECK-NVPTX: declare noundef i32 @__nvvm_reflect(i8* noundef) [[NOFREE_NOUNWIND_READNONE:#[0-9]+]]
10
11
12; Check all the libc functions (thereby also exercising the prototype check).
13; Note that it's OK to modify these as attributes might be missing. These checks
14; reflect the currently inferred attributes.
15
16; Use an opaque pointer type for all the (possibly opaque) structs.
17%opaque = type opaque
18
19; CHECK-LINUX: declare double @__acos_finite(double) [[NOFREE:#[0-9]+]]
20; CHECK-NOLINUX: declare double @__acos_finite(double)
21declare double @__acos_finite(double)
22
23; CHECK-LINUX: declare float @__acosf_finite(float) [[NOFREE]]
24; CHECK-NOLINUX: declare float @__acosf_finite(float)
25declare float @__acosf_finite(float)
26
27; CHECK-LINUX: declare double @__acosh_finite(double) [[NOFREE]]
28; CHECK-NOLINUX: declare double @__acosh_finite(double)
29declare double @__acosh_finite(double)
30
31; CHECK-LINUX: declare float @__acoshf_finite(float) [[NOFREE]]
32; CHECK-NOLINUX: declare float @__acoshf_finite(float)
33declare float @__acoshf_finite(float)
34
35; CHECK-LINUX: declare x86_fp80 @__acoshl_finite(x86_fp80) [[NOFREE]]
36; CHECK-NOLINUX: declare x86_fp80 @__acoshl_finite(x86_fp80)
37declare x86_fp80 @__acoshl_finite(x86_fp80)
38
39; CHECK-LINUX: declare x86_fp80 @__acosl_finite(x86_fp80) [[NOFREE]]
40; CHECK-NOLINUX: declare x86_fp80 @__acosl_finite(x86_fp80)
41declare x86_fp80 @__acosl_finite(x86_fp80)
42
43; CHECK-LINUX: declare double @__asin_finite(double) [[NOFREE]]
44; CHECK-NOLINUX: declare double @__asin_finite(double)
45declare double @__asin_finite(double)
46
47; CHECK-LINUX: declare float @__asinf_finite(float) [[NOFREE]]
48; CHECK-NOLINUX: declare float @__asinf_finite(float)
49declare float @__asinf_finite(float)
50
51; CHECK-LINUX: declare x86_fp80 @__asinl_finite(x86_fp80) [[NOFREE]]
52; CHECK-NOLINUX: declare x86_fp80 @__asinl_finite(x86_fp80)
53declare x86_fp80 @__asinl_finite(x86_fp80)
54
55; CHECK-LINUX: declare double @__atan2_finite(double, double) [[NOFREE]]
56; CHECK-NOLINUX: declare double @__atan2_finite(double, double)
57declare double @__atan2_finite(double, double)
58
59; CHECK-LINUX: declare float @__atan2f_finite(float, float) [[NOFREE]]
60; CHECK-NOLINUX: declare float @__atan2f_finite(float, float)
61declare float @__atan2f_finite(float, float)
62
63; CHECK-LINUX: declare x86_fp80 @__atan2l_finite(x86_fp80, x86_fp80) [[NOFREE]]
64; CHECK-NOLINUX: declare x86_fp80 @__atan2l_finite(x86_fp80, x86_fp80)
65declare x86_fp80 @__atan2l_finite(x86_fp80, x86_fp80)
66
67; CHECK-LINUX: declare double @__atanh_finite(double) [[NOFREE]]
68; CHECK-NOLINUX: declare double @__atanh_finite(double)
69declare double @__atanh_finite(double)
70
71; CHECK-LINUX: declare float @__atanhf_finite(float) [[NOFREE]]
72; CHECK-NOLINUX: declare float @__atanhf_finite(float)
73declare float @__atanhf_finite(float)
74
75; CHECK-LINUX: declare x86_fp80 @__atanhl_finite(x86_fp80) [[NOFREE]]
76; CHECK-NOLINUX: declare x86_fp80 @__atanhl_finite(x86_fp80)
77declare x86_fp80 @__atanhl_finite(x86_fp80)
78
79; CHECK-LINUX: declare double @__cosh_finite(double) [[NOFREE]]
80; CHECK-NOLINUX: declare double @__cosh_finite(double)
81declare double @__cosh_finite(double)
82
83; CHECK-LINUX: declare float @__coshf_finite(float) [[NOFREE]]
84; CHECK-NOLINUX: declare float @__coshf_finite(float)
85declare float @__coshf_finite(float)
86
87; CHECK-LINUX: declare x86_fp80 @__coshl_finite(x86_fp80) [[NOFREE]]
88; CHECK-NOLINUX: declare x86_fp80 @__coshl_finite(x86_fp80)
89declare x86_fp80 @__coshl_finite(x86_fp80)
90
91; CHECK: declare double @__cospi(double)
92declare double @__cospi(double)
93
94; CHECK: declare float @__cospif(float)
95declare float @__cospif(float)
96
97; CHECK-LINUX: declare double @__exp10_finite(double) [[NOFREE]]
98; CHECK-NOLINUX: declare double @__exp10_finite(double)
99declare double @__exp10_finite(double)
100
101; CHECK-LINUX: declare float @__exp10f_finite(float) [[NOFREE]]
102; CHECK-NOLINUX: declare float @__exp10f_finite(float)
103declare float @__exp10f_finite(float)
104
105; CHECK-LINUX: declare x86_fp80 @__exp10l_finite(x86_fp80) [[NOFREE]]
106; CHECK-NOLINUX: declare x86_fp80 @__exp10l_finite(x86_fp80)
107declare x86_fp80 @__exp10l_finite(x86_fp80)
108
109; CHECK-LINUX: declare double @__exp2_finite(double) [[NOFREE]]
110; CHECK-NOLINUX: declare double @__exp2_finite(double)
111declare double @__exp2_finite(double)
112
113; CHECK-LINUX: declare float @__exp2f_finite(float) [[NOFREE]]
114; CHECK-NOLINUX: declare float @__exp2f_finite(float)
115declare float @__exp2f_finite(float)
116
117; CHECK-LINUX: declare x86_fp80 @__exp2l_finite(x86_fp80) [[NOFREE]]
118; CHECK-NOLINUX: declare x86_fp80 @__exp2l_finite(x86_fp80)
119declare x86_fp80 @__exp2l_finite(x86_fp80)
120
121; CHECK-LINUX: declare double @__exp_finite(double) [[NOFREE]]
122; CHECK-NOLINUX: declare double @__exp_finite(double)
123declare double @__exp_finite(double)
124
125; CHECK-LINUX: declare float @__expf_finite(float) [[NOFREE]]
126; CHECK-NOLINUX: declare float @__expf_finite(float)
127declare float @__expf_finite(float)
128
129; CHECK-LINUX: declare x86_fp80 @__expl_finite(x86_fp80) [[NOFREE]]
130; CHECK-NOLINUX: declare x86_fp80 @__expl_finite(x86_fp80)
131declare x86_fp80 @__expl_finite(x86_fp80)
132
133; CHECK-LINUX: declare double @__log10_finite(double) [[NOFREE]]
134; CHECK-NOLINUX: declare double @__log10_finite(double)
135declare double @__log10_finite(double)
136
137; CHECK-LINUX: declare float @__log10f_finite(float) [[NOFREE]]
138; CHECK-NOLINUX: declare float @__log10f_finite(float)
139declare float @__log10f_finite(float)
140
141; CHECK-LINUX: declare x86_fp80 @__log10l_finite(x86_fp80) [[NOFREE]]
142; CHECK-NOLINUX: declare x86_fp80 @__log10l_finite(x86_fp80)
143declare x86_fp80 @__log10l_finite(x86_fp80)
144
145; CHECK-LINUX: declare double @__log2_finite(double) [[NOFREE]]
146; CHECK-NOLINUX: declare double @__log2_finite(double)
147declare double @__log2_finite(double)
148
149; CHECK-LINUX: declare float @__log2f_finite(float) [[NOFREE]]
150; CHECK-NOLINUX: declare float @__log2f_finite(float)
151declare float @__log2f_finite(float)
152
153; CHECK-LINUX: declare x86_fp80 @__log2l_finite(x86_fp80) [[NOFREE]]
154; CHECK-NOLINUX: declare x86_fp80 @__log2l_finite(x86_fp80)
155declare x86_fp80 @__log2l_finite(x86_fp80)
156
157; CHECK-LINUX: declare double @__log_finite(double) [[NOFREE]]
158; CHECK-NOLINUX: declare double @__log_finite(double)
159declare double @__log_finite(double)
160
161; CHECK-LINUX: declare float @__logf_finite(float) [[NOFREE]]
162; CHECK-NOLINUX: declare float @__logf_finite(float)
163declare float @__logf_finite(float)
164
165; CHECK-LINUX: declare x86_fp80 @__logl_finite(x86_fp80) [[NOFREE]]
166; CHECK-NOLINUX: declare x86_fp80 @__logl_finite(x86_fp80)
167declare x86_fp80 @__logl_finite(x86_fp80)
168
169; CHECK-LINUX: declare double @__pow_finite(double, double) [[NOFREE]]
170; CHECK-NOLINUX: declare double @__pow_finite(double, double)
171declare double @__pow_finite(double, double)
172
173; CHECK-LINUX: declare float @__powf_finite(float, float) [[NOFREE]]
174; CHECK-NOLINUX: declare float @__powf_finite(float, float)
175declare float @__powf_finite(float, float)
176
177; CHECK-LINUX: declare x86_fp80 @__powl_finite(x86_fp80, x86_fp80) [[NOFREE]]
178; CHECK-NOLINUX: declare x86_fp80 @__powl_finite(x86_fp80, x86_fp80)
179declare x86_fp80 @__powl_finite(x86_fp80, x86_fp80)
180
181; CHECK-LINUX: declare double @__sinh_finite(double) [[NOFREE]]
182; CHECK-NOLINUX: declare double @__sinh_finite(double)
183declare double @__sinh_finite(double)
184
185; CHECK-LINUX: declare float @__sinhf_finite(float) [[NOFREE]]
186; CHECK-NOLINUX: declare float @__sinhf_finite(float)
187declare float @__sinhf_finite(float)
188
189; CHECK-LINUX: declare x86_fp80 @__sinhl_finite(x86_fp80) [[NOFREE]]
190; CHECK-NOLINUX: declare x86_fp80 @__sinhl_finite(x86_fp80)
191declare x86_fp80 @__sinhl_finite(x86_fp80)
192
193; CHECK: declare double @__sinpi(double)
194declare double @__sinpi(double)
195
196; CHECK: declare float @__sinpif(float)
197declare float @__sinpif(float)
198
199; CHECK: declare i32 @abs(i32) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY:#[0-9]+]]
200declare i32 @abs(i32)
201
202; CHECK: declare noundef i32 @access(i8* nocapture noundef readonly, i32 noundef) [[NOFREE_NOUNWIND:#[0-9]+]]
203declare i32 @access(i8*, i32)
204
205; CHECK: declare double @acos(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
206declare double @acos(double)
207
208; CHECK: declare float @acosf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
209declare float @acosf(float)
210
211; CHECK: declare double @acosh(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
212declare double @acosh(double)
213
214; CHECK: declare float @acoshf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
215declare float @acoshf(float)
216
217; CHECK: declare x86_fp80 @acoshl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
218declare x86_fp80 @acoshl(x86_fp80)
219
220; CHECK: declare x86_fp80 @acosl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
221declare x86_fp80 @acosl(x86_fp80)
222
223; CHECK: declare noalias noundef i8* @aligned_alloc(i64 allocalign noundef, i64 noundef) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCUNINIT_ALLOCSIZE1_FAMILY_MALLOC:#[0-9]+]]
224declare i8* @aligned_alloc(i64, i64)
225
226; CHECK: declare double @asin(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
227declare double @asin(double)
228
229; CHECK: declare float @asinf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
230declare float @asinf(float)
231
232; CHECK: declare double @asinh(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
233declare double @asinh(double)
234
235; CHECK: declare float @asinhf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
236declare float @asinhf(float)
237
238; CHECK: declare x86_fp80 @asinhl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
239declare x86_fp80 @asinhl(x86_fp80)
240
241; CHECK: declare x86_fp80 @asinl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
242declare x86_fp80 @asinl(x86_fp80)
243
244; CHECK: declare double @atan(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
245declare double @atan(double)
246
247; CHECK: declare double @atan2(double, double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
248declare double @atan2(double, double)
249
250; CHECK: declare float @atan2f(float, float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
251declare float @atan2f(float, float)
252
253; CHECK: declare x86_fp80 @atan2l(x86_fp80, x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
254declare x86_fp80 @atan2l(x86_fp80, x86_fp80)
255
256; CHECK: declare float @atanf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
257declare float @atanf(float)
258
259; CHECK: declare double @atanh(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
260declare double @atanh(double)
261
262; CHECK: declare float @atanhf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
263declare float @atanhf(float)
264
265; CHECK: declare x86_fp80 @atanhl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
266declare x86_fp80 @atanhl(x86_fp80)
267
268; CHECK: declare x86_fp80 @atanl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
269declare x86_fp80 @atanl(x86_fp80)
270
271; CHECK: declare double @atof(i8* nocapture) [[NOFREE_NOUNWIND_READONLY_WILLRETURN:#[0-9]+]]
272declare double @atof(i8*)
273
274; CHECK: declare i32 @atoi(i8* nocapture) [[NOFREE_NOUNWIND_READONLY_WILLRETURN]]
275declare i32 @atoi(i8*)
276
277; CHECK: declare i64 @atol(i8* nocapture) [[NOFREE_NOUNWIND_READONLY_WILLRETURN]]
278declare i64 @atol(i8*)
279
280; CHECK: declare i64 @atoll(i8* nocapture) [[NOFREE_NOUNWIND_READONLY_WILLRETURN]]
281declare i64 @atoll(i8*)
282
283; CHECK-LINUX: declare i32 @bcmp(i8* nocapture, i8* nocapture, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY:#[0-9]+]]
284; CHECK-NOLINUX: declare i32 @bcmp(i8*, i8*, i64){{$}}
285declare i32 @bcmp(i8*, i8*, i64)
286
287; CHECK: declare void @bcopy(i8* nocapture readonly, i8* nocapture writeonly, i64)  [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN:#[0-9]+]]
288declare void @bcopy(i8*, i8*, i64)
289
290; CHECK: declare void @bzero(i8* nocapture writeonly, i64)  [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
291declare void @bzero(i8*, i64)
292
293; CHECK: declare noalias noundef i8* @calloc(i64 noundef, i64 noundef) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCZEROED_ALLOCSIZE01_FAMILY_MALLOC:#[0-9]+]]
294declare i8* @calloc(i64, i64)
295
296; CHECK-AIX: declare noalias noundef i8* @vec_calloc(i64 noundef, i64 noundef) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCSIZE01_FAMILY_VEC_MALLOC:#[0-9]+]]
297declare i8* @vec_calloc(i64, i64)
298
299; CHECK: declare double @cbrt(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
300declare double @cbrt(double)
301
302; CHECK: declare float @cbrtf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
303declare float @cbrtf(float)
304
305; CHECK: declare x86_fp80 @cbrtl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
306declare x86_fp80 @cbrtl(x86_fp80)
307
308; CHECK: declare double @ceil(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
309declare double @ceil(double)
310
311; CHECK: declare float @ceilf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
312declare float @ceilf(float)
313
314; CHECK: declare x86_fp80 @ceill(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
315declare x86_fp80 @ceill(x86_fp80)
316
317; CHECK: declare noundef i32 @chmod(i8* nocapture noundef readonly, i16 noundef zeroext) [[NOFREE_NOUNWIND]]
318declare i32 @chmod(i8*, i16 zeroext)
319
320; CHECK: declare noundef i32 @chown(i8* nocapture noundef readonly, i32 noundef, i32 noundef) [[NOFREE_NOUNWIND]]
321declare i32 @chown(i8*, i32, i32)
322
323; CHECK: declare void @clearerr(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
324declare void @clearerr(%opaque*)
325
326; CHECK: declare noundef i32 @closedir(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
327declare i32 @closedir(%opaque*)
328
329; CHECK: declare double @copysign(double, double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
330declare double @copysign(double, double)
331
332; CHECK: declare float @copysignf(float, float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
333declare float @copysignf(float, float)
334
335; CHECK: declare x86_fp80 @copysignl(x86_fp80, x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
336declare x86_fp80 @copysignl(x86_fp80, x86_fp80)
337
338; CHECK: declare double @cos(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
339declare double @cos(double)
340
341; CHECK: declare float @cosf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
342declare float @cosf(float)
343
344; CHECK: declare double @cosh(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
345declare double @cosh(double)
346
347; CHECK: declare float @coshf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
348declare float @coshf(float)
349
350; CHECK: declare x86_fp80 @coshl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
351declare x86_fp80 @coshl(x86_fp80)
352
353; CHECK: declare x86_fp80 @cosl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
354declare x86_fp80 @cosl(x86_fp80)
355
356; CHECK: declare noundef i8* @ctermid(i8* nocapture noundef) [[NOFREE_NOUNWIND]]
357declare i8* @ctermid(i8*)
358
359; CHECK: declare double @exp(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
360declare double @exp(double)
361
362; CHECK: declare double @exp2(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
363declare double @exp2(double)
364
365; CHECK: declare float @exp2f(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
366declare float @exp2f(float)
367
368; CHECK: declare x86_fp80 @exp2l(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
369declare x86_fp80 @exp2l(x86_fp80)
370
371; CHECK: declare float @expf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
372declare float @expf(float)
373
374; CHECK: declare x86_fp80 @expl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
375declare x86_fp80 @expl(x86_fp80)
376
377; CHECK: declare double @expm1(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
378declare double @expm1(double)
379
380; CHECK: declare float @expm1f(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
381declare float @expm1f(float)
382
383; CHECK: declare x86_fp80 @expm1l(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
384declare x86_fp80 @expm1l(x86_fp80)
385
386; CHECK: declare double @fabs(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
387declare double @fabs(double)
388
389; CHECK: declare float @fabsf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
390declare float @fabsf(float)
391
392; CHECK: declare x86_fp80 @fabsl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
393declare x86_fp80 @fabsl(x86_fp80)
394
395; CHECK: declare noundef i32 @fclose(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
396declare i32 @fclose(%opaque*)
397
398; CHECK: declare noalias noundef %opaque* @fdopen(i32 noundef, i8* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
399declare %opaque* @fdopen(i32, i8*)
400
401; CHECK: declare noundef i32 @feof(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
402declare i32 @feof(%opaque*)
403
404; CHECK: declare noundef i32 @ferror(%opaque* nocapture noundef) [[NOFREE_NOUNWIND_READONLY:#[0-9]+]]
405declare i32 @ferror(%opaque*)
406
407; CHECK: declare noundef i32 @fflush(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
408declare i32 @fflush(%opaque*)
409
410; CHECK: declare i32 @ffs(i32) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
411declare i32 @ffs(i32)
412
413; CHECK-KNOWN: declare i32 @ffsl(i64) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
414; CHECK-UNKNOWN: declare i32 @ffsl(i64){{$}}
415declare i32 @ffsl(i64)
416
417; CHECK-KNOWN: declare i32 @ffsll(i64) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
418; CHECK-UNKNOWN: declare i32 @ffsll(i64){{$}}
419declare i32 @ffsll(i64)
420
421; CHECK: declare noundef i32 @fgetc(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
422declare i32 @fgetc(%opaque*)
423
424; CHECK: declare noundef i32 @fgetpos(%opaque* nocapture noundef, i64* nocapture noundef) [[NOFREE_NOUNWIND]]
425declare i32 @fgetpos(%opaque*, i64*)
426
427; CHECK: declare noundef i8* @fgets(i8* noundef, i32 noundef, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
428declare i8* @fgets(i8*, i32, %opaque*)
429
430; CHECK: declare noundef i32 @fileno(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
431declare i32 @fileno(%opaque*)
432
433; CHECK: declare void @flockfile(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
434declare void @flockfile(%opaque*)
435
436; CHECK: declare double @floor(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
437declare double @floor(double)
438
439; CHECK: declare float @floorf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
440declare float @floorf(float)
441
442; CHECK: declare x86_fp80 @floorl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
443declare x86_fp80 @floorl(x86_fp80)
444
445; CHECK: declare i32 @fls(i32)
446declare i32 @fls(i32)
447
448; CHECK: declare i32 @flsl(i64)
449declare i32 @flsl(i64)
450
451; CHECK: declare i32 @flsll(i64)
452declare i32 @flsll(i64)
453
454; CHECK: declare double @fmax(double, double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
455declare double @fmax(double, double)
456
457; CHECK: declare float @fmaxf(float, float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
458declare float @fmaxf(float, float)
459
460; CHECK: declare x86_fp80 @fmaxl(x86_fp80, x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
461declare x86_fp80 @fmaxl(x86_fp80, x86_fp80)
462
463; CHECK: declare double @fmin(double, double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
464declare double @fmin(double, double)
465
466; CHECK: declare float @fminf(float, float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
467declare float @fminf(float, float)
468
469; CHECK: declare x86_fp80 @fminl(x86_fp80, x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
470declare x86_fp80 @fminl(x86_fp80, x86_fp80)
471
472; CHECK: declare double @fmod(double, double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
473declare double @fmod(double, double)
474
475; CHECK: declare float @fmodf(float, float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
476declare float @fmodf(float, float)
477
478; CHECK: declare x86_fp80 @fmodl(x86_fp80, x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
479declare x86_fp80 @fmodl(x86_fp80, x86_fp80)
480
481; CHECK: declare noalias noundef %opaque* @fopen(i8* nocapture noundef readonly, i8* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
482declare %opaque* @fopen(i8*, i8*)
483
484; CHECK: declare noundef i32 @fprintf(%opaque* nocapture noundef, i8* nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
485declare i32 @fprintf(%opaque*, i8*, ...)
486
487; CHECK: declare noundef i32 @fputc(i32 noundef, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
488declare i32 @fputc(i32, %opaque*)
489
490; CHECK: declare noundef i32 @fputs(i8* nocapture noundef readonly, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
491declare i32 @fputs(i8*, %opaque*)
492
493; CHECK: declare noundef i64 @fread(i8* nocapture noundef, i64 noundef, i64 noundef, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
494declare i64 @fread(i8*, i64, i64, %opaque*)
495
496; CHECK: declare void @free(i8* allocptr nocapture noundef) [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCKIND_FREE_FAMILY_MALLOC:#[0-9]+]]
497declare void @free(i8*)
498
499; CHECK-AIX: declare void @vec_free(i8* allocptr nocapture noundef) [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_FAMILY_VEC_MALLOC:#[0-9]+]]
500declare void @vec_free(i8*)
501
502; CHECK: declare double @frexp(double, i32* nocapture) [[NOFREE_NOUNWIND_WILLRETURN:#[0-9]+]]
503declare double @frexp(double, i32*)
504
505; CHECK: declare float @frexpf(float, i32* nocapture) [[NOFREE_NOUNWIND_WILLRETURN]]
506declare float @frexpf(float, i32*)
507
508; CHECK: declare x86_fp80 @frexpl(x86_fp80, i32* nocapture) [[NOFREE_NOUNWIND_WILLRETURN]]
509declare x86_fp80 @frexpl(x86_fp80, i32*)
510
511; CHECK: declare noundef i32 @fscanf(%opaque* nocapture noundef, i8* nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
512declare i32 @fscanf(%opaque*, i8*, ...)
513
514; CHECK: declare noundef i32 @fseek(%opaque* nocapture noundef, i64 noundef, i32 noundef) [[NOFREE_NOUNWIND]]
515declare i32 @fseek(%opaque*, i64, i32)
516
517; CHECK: declare noundef i32 @fseeko(%opaque* nocapture noundef, i64 noundef, i32 noundef) [[NOFREE_NOUNWIND]]
518declare i32 @fseeko(%opaque*, i64, i32)
519
520; CHECK-LINUX: declare noundef i32 @fseeko64(%opaque* nocapture noundef, i64 noundef, i32 noundef) [[NOFREE_NOUNWIND]]
521declare i32 @fseeko64(%opaque*, i64, i32)
522
523; CHECK: declare noundef i32 @fsetpos(%opaque* nocapture noundef, i64* noundef) [[NOFREE_NOUNWIND]]
524declare i32 @fsetpos(%opaque*, i64*)
525
526; CHECK: declare noundef i32 @fstat(i32 noundef, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
527declare i32 @fstat(i32, %opaque*)
528
529; CHECK-LINUX: declare noundef i32 @fstat64(i32 noundef, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
530declare i32 @fstat64(i32, %opaque*)
531
532; CHECK: declare noundef i32 @fstatvfs(i32 noundef, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
533declare i32 @fstatvfs(i32, %opaque*)
534
535; CHECK-LINUX: declare noundef i32 @fstatvfs64(i32 noundef, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
536declare i32 @fstatvfs64(i32, %opaque*)
537
538; CHECK: declare noundef i64 @ftell(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
539declare i64 @ftell(%opaque*)
540
541; CHECK: declare noundef i64 @ftello(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
542declare i64 @ftello(%opaque*)
543
544; CHECK-LINUX: declare noundef i64 @ftello64(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
545declare i64 @ftello64(%opaque*)
546
547; CHECK: declare noundef i32 @ftrylockfile(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
548declare i32 @ftrylockfile(%opaque*)
549
550; CHECK: declare void @funlockfile(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
551declare void @funlockfile(%opaque*)
552
553; CHECK: declare noundef i64 @fwrite(i8* nocapture noundef, i64 noundef, i64 noundef, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
554declare i64 @fwrite(i8*, i64, i64, %opaque*)
555
556; CHECK: declare noundef i32 @getc(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
557declare i32 @getc(%opaque*)
558
559; CHECK-KNOWN: declare noundef i32 @getc_unlocked(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
560; CHECK-UNKNOWN: declare i32 @getc_unlocked(%opaque*){{$}}
561declare i32 @getc_unlocked(%opaque*)
562
563; CHECK: declare noundef i32 @getchar() [[NOFREE_NOUNWIND]]
564declare i32 @getchar()
565
566; CHECK-KNOWN: declare noundef i32 @getchar_unlocked() [[NOFREE_NOUNWIND]]
567; CHECK-UNKNOWN: declare i32 @getchar_unlocked(){{$}}
568declare i32 @getchar_unlocked()
569
570; CHECK: declare noundef i8* @getenv(i8* nocapture noundef) [[NOFREE_NOUNWIND_READONLY]]
571declare i8* @getenv(i8*)
572
573; CHECK: declare noundef i32 @getitimer(i32 noundef, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
574declare i32 @getitimer(i32, %opaque*)
575
576; CHECK: declare noundef i32 @getlogin_r(i8* nocapture noundef, i64 noundef) [[NOFREE_NOUNWIND]]
577declare i32 @getlogin_r(i8*, i64)
578
579; CHECK: declare noundef %opaque* @getpwnam(i8* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
580declare %opaque* @getpwnam(i8*)
581
582; CHECK: declare noundef i8* @gets(i8* noundef) [[NOFREE_NOUNWIND]]
583declare i8* @gets(i8*)
584
585; CHECK: declare noundef i32 @gettimeofday(%opaque* nocapture noundef, i8* nocapture noundef) [[NOFREE_NOUNWIND]]
586declare i32 @gettimeofday(%opaque*, i8*)
587
588; CHECK: declare i32 @isascii(i32) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
589declare i32 @isascii(i32)
590
591; CHECK: declare i32 @isdigit(i32) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
592declare i32 @isdigit(i32)
593
594; CHECK: declare i64 @labs(i64) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
595declare i64 @labs(i64)
596
597; CHECK: declare noundef i32 @lchown(i8* nocapture noundef readonly, i32 noundef, i32 noundef) [[NOFREE_NOUNWIND]]
598declare i32 @lchown(i8*, i32, i32)
599
600; CHECK: declare double @ldexp(double, i32) [[NOFREE_WILLRETURN:#[0-9]+]]
601declare double @ldexp(double, i32)
602
603; CHECK: declare float @ldexpf(float, i32) [[NOFREE_WILLRETURN]]
604declare float @ldexpf(float, i32)
605
606; CHECK: declare x86_fp80 @ldexpl(x86_fp80, i32) [[NOFREE_WILLRETURN]]
607declare x86_fp80 @ldexpl(x86_fp80, i32)
608
609; CHECK: declare i64 @llabs(i64) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
610declare i64 @llabs(i64)
611
612; CHECK: declare double @log(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
613declare double @log(double)
614
615; CHECK: declare double @log10(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
616declare double @log10(double)
617
618; CHECK: declare float @log10f(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
619declare float @log10f(float)
620
621; CHECK: declare x86_fp80 @log10l(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
622declare x86_fp80 @log10l(x86_fp80)
623
624; CHECK: declare double @log1p(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
625declare double @log1p(double)
626
627; CHECK: declare float @log1pf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
628declare float @log1pf(float)
629
630; CHECK: declare x86_fp80 @log1pl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
631declare x86_fp80 @log1pl(x86_fp80)
632
633; CHECK: declare double @log2(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
634declare double @log2(double)
635
636; CHECK: declare float @log2f(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
637declare float @log2f(float)
638
639; CHECK: declare x86_fp80 @log2l(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
640declare x86_fp80 @log2l(x86_fp80)
641
642; CHECK: declare double @logb(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
643declare double @logb(double)
644
645; CHECK: declare float @logbf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
646declare float @logbf(float)
647
648; CHECK: declare x86_fp80 @logbl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
649declare x86_fp80 @logbl(x86_fp80)
650
651; CHECK: declare float @logf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
652declare float @logf(float)
653
654; CHECK: declare x86_fp80 @logl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
655declare x86_fp80 @logl(x86_fp80)
656
657; CHECK: declare noundef i32 @lstat(i8* nocapture noundef readonly, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
658declare i32 @lstat(i8*, %opaque*)
659
660; CHECK-LINUX: declare noundef i32 @lstat64(i8* nocapture noundef readonly, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
661declare i32 @lstat64(i8*, %opaque*)
662
663; CHECK: declare noalias noundef i8* @malloc(i64 noundef) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCUNINIT_ALLOCSIZE0_FAMILY_MALLOC:#[0-9]+]]
664declare i8* @malloc(i64)
665
666; CHECK-AIX: declare noalias noundef i8* @vec_malloc(i64 noundef) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCSIZE0_FAMILY_VEC_MALLOC:#[0-9]+]]
667declare i8* @vec_malloc(i64)
668
669; CHECK-LINUX: declare noalias noundef i8* @memalign(i64 allocalign, i64) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN:#[0-9]+]]
670declare i8* @memalign(i64, i64)
671
672; CHECK: declare i8* @memccpy(i8* noalias writeonly, i8* noalias nocapture readonly, i32, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
673declare i8* @memccpy(i8*, i8*, i32, i64)
674
675; CHECK-LINUX:   declare i8* @memchr(i8*, i32, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
676; CHECK-DARWIN:  declare i8* @memchr(i8*, i32, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY:#[0-9]+]]
677; CHECK-UNKNOWN: declare i8* @memchr(i8*, i32, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY:#[0-9]+]]
678declare i8* @memchr(i8*, i32, i64)
679
680; CHECK: declare i32 @memcmp(i8* nocapture, i8* nocapture, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
681declare i32 @memcmp(i8*, i8*, i64)
682
683; CHECK: declare i8* @memcpy(i8* noalias returned writeonly, i8* noalias nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
684declare i8* @memcpy(i8*, i8*, i64)
685
686; CHECK: declare i8* @__memcpy_chk(i8* noalias writeonly, i8* noalias nocapture readonly, i64, i64) [[ARGMEMONLY_NOFREE_NOUNWIND:#[0-9]+]]
687declare i8* @__memcpy_chk(i8*, i8*, i64, i64)
688
689; CHECK: declare i8* @mempcpy(i8* noalias writeonly, i8* noalias nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
690declare i8* @mempcpy(i8*, i8*, i64)
691
692; CHECK: declare i8* @memmove(i8* returned writeonly, i8* nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
693declare i8* @memmove(i8*, i8*, i64)
694
695; CHECK: declare i8* @memset(i8* writeonly, i32, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN:#[0-9]+]]
696declare i8* @memset(i8*, i32, i64)
697
698; CHECK: declare i8* @__memset_chk(i8* writeonly, i32, i64, i64) [[ARGMEMONLY_NOFREE_NOUNWIND]]
699declare i8* @__memset_chk(i8*, i32, i64, i64)
700
701; CHECK: declare noundef i32 @mkdir(i8* nocapture noundef readonly, i16 noundef zeroext) [[NOFREE_NOUNWIND]]
702declare i32 @mkdir(i8*, i16 zeroext)
703
704; CHECK: declare noundef i64 @mktime(%opaque* nocapture noundef) [[NOFREE_NOUNWIND_WILLRETURN]]
705declare i64 @mktime(%opaque*)
706
707; CHECK: declare double @modf(double, double* nocapture) [[NOFREE_NOUNWIND_WILLRETURN]]
708declare double @modf(double, double*)
709
710; CHECK: declare float @modff(float, float* nocapture) [[NOFREE_NOUNWIND_WILLRETURN]]
711declare float @modff(float, float*)
712
713; CHECK: declare x86_fp80 @modfl(x86_fp80, x86_fp80* nocapture) [[NOFREE_NOUNWIND_WILLRETURN]]
714declare x86_fp80 @modfl(x86_fp80, x86_fp80*)
715
716; CHECK: declare double @nearbyint(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
717declare double @nearbyint(double)
718
719; CHECK: declare float @nearbyintf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
720declare float @nearbyintf(float)
721
722; CHECK: declare x86_fp80 @nearbyintl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
723declare x86_fp80 @nearbyintl(x86_fp80)
724
725; CHECK-LINUX: declare noundef i32 @open(i8* nocapture noundef readonly, i32 noundef, ...) [[NOFREE]]
726; CHECK-OPEN: declare noundef i32 @open(i8* nocapture noundef readonly, i32 noundef, ...) [[NOFREE:#[0-9]+]]
727declare i32 @open(i8*, i32, ...)
728
729; CHECK-LINUX: declare noundef i32 @open64(i8* nocapture noundef readonly, i32 noundef, ...) [[NOFREE]]
730declare i32 @open64(i8*, i32, ...)
731
732; CHECK: declare noalias noundef %opaque* @opendir(i8* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
733declare %opaque* @opendir(i8*)
734
735; CHECK: declare noundef i32 @pclose(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
736declare i32 @pclose(%opaque*)
737
738; CHECK: declare void @perror(i8* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
739declare void @perror(i8*)
740
741; CHECK: declare noalias noundef %opaque* @popen(i8* nocapture noundef readonly, i8* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
742declare %opaque* @popen(i8*, i8*)
743
744; CHECK: declare i32 @posix_memalign(i8**, i64, i64) [[NOFREE]]
745declare i32 @posix_memalign(i8**, i64, i64)
746
747; CHECK: declare double @pow(double, double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
748declare double @pow(double, double)
749
750; CHECK: declare float @powf(float, float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
751declare float @powf(float, float)
752
753; CHECK: declare x86_fp80 @powl(x86_fp80, x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
754declare x86_fp80 @powl(x86_fp80, x86_fp80)
755
756; CHECK: declare noundef i64 @pread(i32 noundef, i8* nocapture noundef, i64 noundef, i64 noundef) [[NOFREE]]
757declare i64 @pread(i32, i8*, i64, i64)
758
759; CHECK: declare noundef i32 @printf(i8* nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
760declare i32 @printf(i8*, ...)
761
762; CHECK: declare noundef i32 @putc(i32 noundef, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
763declare i32 @putc(i32, %opaque*)
764
765; CHECK: declare noundef i32 @putchar(i32 noundef) [[NOFREE_NOUNWIND]]
766declare i32 @putchar(i32)
767
768; CHECK-KNOWN: declare noundef i32 @putchar_unlocked(i32 noundef) [[NOFREE_NOUNWIND]]
769; CHECK-UNKNOWN: declare i32 @putchar_unlocked(i32){{$}}
770declare i32 @putchar_unlocked(i32)
771
772; CHECK: declare noundef i32 @puts(i8* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
773declare i32 @puts(i8*)
774
775; CHECK: declare noundef i64 @pwrite(i32 noundef, i8* nocapture noundef readonly, i64 noundef, i64 noundef) [[NOFREE]]
776declare i64 @pwrite(i32, i8*, i64, i64)
777
778; CHECK: declare void @qsort(i8* noundef, i64 noundef, i64 noundef, i32 (i8*, i8*)* nocapture noundef) [[NOFREE]]
779declare void @qsort(i8*, i64, i64, i32 (i8*, i8*)*)
780
781; CHECK: declare noundef i64 @read(i32 noundef, i8* nocapture noundef, i64 noundef) [[NOFREE]]
782declare i64 @read(i32, i8*, i64)
783
784; CHECK: declare noundef i64 @readlink(i8* nocapture noundef readonly, i8* nocapture noundef, i64 noundef) [[NOFREE_NOUNWIND]]
785declare i64 @readlink(i8*, i8*, i64)
786
787; CHECK: declare noalias noundef i8* @realloc(i8* allocptr nocapture, i64 noundef) [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCKIND_REALLOC_ALLOCSIZE1_FAMILY_MALLOC:#[0-9]+]]
788declare i8* @realloc(i8*, i64)
789
790; CHECK: declare noalias noundef i8* @reallocf(i8* allocptr nocapture, i64 noundef) [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCKIND_REALLOC_ALLOCSIZE1_FAMILY_MALLOC]]
791declare i8* @reallocf(i8*, i64)
792
793; CHECK-AIX: declare noalias noundef i8* @vec_realloc(i8* allocptr nocapture, i64 noundef) [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCSIZE_FAMILY_VEC_MALLOC:#[0-9]+]]
794declare i8* @vec_realloc(i8*, i64)
795
796; CHECK: declare noundef i8* @realpath(i8* nocapture noundef readonly, i8* noundef) [[NOFREE_NOUNWIND]]
797declare i8* @realpath(i8*, i8*)
798
799; CHECK: declare noundef i32 @remove(i8* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
800declare i32 @remove(i8*)
801
802; CHECK: declare noundef i32 @rename(i8* nocapture noundef readonly, i8* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
803declare i32 @rename(i8*, i8*)
804
805; CHECK: declare void @rewind(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
806declare void @rewind(%opaque*)
807
808; CHECK: declare double @rint(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
809declare double @rint(double)
810
811; CHECK: declare float @rintf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
812declare float @rintf(float)
813
814; CHECK: declare x86_fp80 @rintl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
815declare x86_fp80 @rintl(x86_fp80)
816
817; CHECK: declare noundef i32 @rmdir(i8* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
818declare i32 @rmdir(i8*)
819
820; CHECK: declare double @round(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
821declare double @round(double)
822
823; CHECK: declare float @roundf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
824declare float @roundf(float)
825
826; CHECK: declare x86_fp80 @roundl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
827declare x86_fp80 @roundl(x86_fp80)
828
829; CHECK: declare noundef i32 @scanf(i8* nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
830declare i32 @scanf(i8*, ...)
831
832; CHECK: declare void @setbuf(%opaque* nocapture noundef, i8* noundef) [[NOFREE_NOUNWIND]]
833declare void @setbuf(%opaque*, i8*)
834
835; CHECK: declare noundef i32 @setitimer(i32 noundef, %opaque* nocapture noundef readonly, %opaque* nocapture noundef) [[NOFREE_NOUNWIND_WILLRETURN]]
836declare i32 @setitimer(i32, %opaque*, %opaque*)
837
838; CHECK: declare noundef i32 @setvbuf(%opaque* nocapture noundef, i8* noundef, i32 noundef, i64 noundef) [[NOFREE_NOUNWIND]]
839declare i32 @setvbuf(%opaque*, i8*, i32, i64)
840
841; CHECK: declare double @sin(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
842declare double @sin(double)
843
844; CHECK: declare float @sinf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
845declare float @sinf(float)
846
847; CHECK: declare double @sinh(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
848declare double @sinh(double)
849
850; CHECK: declare float @sinhf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
851declare float @sinhf(float)
852
853; CHECK: declare x86_fp80 @sinhl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
854declare x86_fp80 @sinhl(x86_fp80)
855
856; CHECK: declare x86_fp80 @sinl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
857declare x86_fp80 @sinl(x86_fp80)
858
859; CHECK: declare noundef i32 @snprintf(i8* noalias nocapture noundef writeonly, i64 noundef, i8* nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
860declare i32 @snprintf(i8*, i64, i8*, ...)
861
862; CHECK: declare noundef i32 @sprintf(i8* noalias nocapture noundef writeonly, i8* nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
863declare i32 @sprintf(i8*, i8*, ...)
864
865; CHECK: declare double @sqrt(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
866declare double @sqrt(double)
867
868; CHECK: declare float @sqrtf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
869declare float @sqrtf(float)
870
871; CHECK: declare x86_fp80 @sqrtl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
872declare x86_fp80 @sqrtl(x86_fp80)
873
874; CHECK: declare noundef i32 @sscanf(i8* nocapture noundef readonly, i8* nocapture noundef readonly, ...) [[NOFREE_NOUNWIND]]
875declare i32 @sscanf(i8*, i8*, ...)
876
877; CHECK: declare noundef i32 @stat(i8* nocapture noundef readonly, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
878declare i32 @stat(i8*, %opaque*)
879
880; CHECK-LINUX: declare noundef i32 @stat64(i8* nocapture noundef readonly, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
881declare i32 @stat64(i8*, %opaque*)
882
883; CHECK: declare noundef i32 @statvfs(i8* nocapture noundef readonly, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
884declare i32 @statvfs(i8*, %opaque*)
885
886; CHECK-LINUX: declare noundef i32 @statvfs64(i8* nocapture noundef readonly, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
887declare i32 @statvfs64(i8*, %opaque*)
888
889; CHECK: declare i8* @stpcpy(i8* noalias writeonly, i8* noalias nocapture readonly) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
890declare i8* @stpcpy(i8*, i8*)
891
892; CHECK: declare i8* @stpncpy(i8* noalias writeonly, i8* noalias nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
893declare i8* @stpncpy(i8*, i8*, i64)
894
895; CHECK: declare i32 @strcasecmp(i8* nocapture, i8* nocapture) [[NOFREE_NOUNWIND_READONLY_WILLRETURN:#[0-9]+]]
896declare i32 @strcasecmp(i8*, i8*)
897
898; CHECK: declare i8* @strcat(i8* noalias returned, i8* noalias nocapture readonly) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
899declare i8* @strcat(i8*, i8*)
900
901; CHECK: declare i8* @strchr(i8*, i32) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
902declare i8* @strchr(i8*, i32)
903
904; CHECK: declare i32 @strcmp(i8* nocapture, i8* nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
905declare i32 @strcmp(i8*, i8*)
906
907; CHECK: declare i32 @strcoll(i8* nocapture, i8* nocapture) [[NOFREE_NOUNWIND_READONLY_WILLRETURN]]
908declare i32 @strcoll(i8*, i8*)
909
910; CHECK: declare i8* @strcpy(i8* noalias returned writeonly, i8* noalias nocapture readonly) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
911declare i8* @strcpy(i8*, i8*)
912
913; CHECK: declare i64 @strcspn(i8* nocapture, i8* nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
914declare i64 @strcspn(i8*, i8*)
915
916; CHECK: declare noalias i8* @strdup(i8* nocapture readonly) [[INACCESSIBLEMEMORARGONLY_NOFREE_NOUNWIND_WILLRETURN_FAMILY_MALLOC:#[0-9]+]]
917declare i8* @strdup(i8*)
918
919; CHECK: declare i64 @strlen(i8* nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
920declare i64 @strlen(i8*)
921
922; CHECK: declare i32 @strncasecmp(i8* nocapture, i8* nocapture, i64) [[NOFREE_NOUNWIND_READONLY_WILLRETURN]]
923declare i32 @strncasecmp(i8*, i8*, i64)
924
925; CHECK: declare i8* @strncat(i8* noalias returned, i8* noalias nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
926declare i8* @strncat(i8*, i8*, i64)
927
928; CHECK: declare i32 @strncmp(i8* nocapture, i8* nocapture, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
929declare i32 @strncmp(i8*, i8*, i64)
930
931; CHECK: declare i8* @strncpy(i8* noalias returned writeonly, i8* noalias nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
932declare i8* @strncpy(i8*, i8*, i64)
933
934; CHECK: declare noalias i8* @strndup(i8* nocapture readonly, i64 noundef) [[INACCESSIBLEMEMORARGONLY_NOFREE_NOUNWIND_WILLRETURN_FAMILY_MALLOC]]
935declare i8* @strndup(i8*, i64)
936
937; CHECK: declare i64 @strnlen(i8* nocapture, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY_WILLRETURN:#[0-9]+]]
938declare i64 @strnlen(i8*, i64)
939
940; CHECK: declare i8* @strpbrk(i8*, i8* nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY_WILLRETURN]]
941declare i8* @strpbrk(i8*, i8*)
942
943; CHECK: declare i8* @strrchr(i8*, i32) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
944declare i8* @strrchr(i8*, i32)
945
946; CHECK: declare i64 @strspn(i8* nocapture, i8* nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY]]
947declare i64 @strspn(i8*, i8*)
948
949; CHECK: declare i8* @strstr(i8*, i8* nocapture) [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY_WILLRETURN]]
950declare i8* @strstr(i8*, i8*)
951
952; CHECK: declare double @strtod(i8* readonly, i8** nocapture) [[NOFREE_NOUNWIND_WILLRETURN]]
953declare double @strtod(i8*, i8**)
954
955; CHECK: declare float @strtof(i8* readonly, i8** nocapture) [[NOFREE_NOUNWIND_WILLRETURN]]
956declare float @strtof(i8*, i8**)
957
958; CHECK: declare i8* @strtok(i8*, i8* nocapture readonly) [[NOFREE_NOUNWIND_WILLRETURN]]
959declare i8* @strtok(i8*, i8*)
960
961; CHECK: declare i8* @strtok_r(i8*, i8* nocapture readonly, i8**) [[NOFREE_NOUNWIND_WILLRETURN]]
962declare i8* @strtok_r(i8*, i8*, i8**)
963
964; CHECK: declare i64 @strtol(i8* readonly, i8** nocapture, i32) [[NOFREE_NOUNWIND_WILLRETURN]]
965declare i64 @strtol(i8*, i8**, i32)
966
967; CHECK: declare x86_fp80 @strtold(i8* readonly, i8** nocapture) [[NOFREE_NOUNWIND_WILLRETURN]]
968declare x86_fp80 @strtold(i8*, i8**)
969
970; CHECK: declare i64 @strtoll(i8* readonly, i8** nocapture, i32) [[NOFREE_NOUNWIND_WILLRETURN]]
971declare i64 @strtoll(i8*, i8**, i32)
972
973; CHECK: declare i64 @strtoul(i8* readonly, i8** nocapture, i32) [[NOFREE_NOUNWIND_WILLRETURN]]
974declare i64 @strtoul(i8*, i8**, i32)
975
976; CHECK: declare i64 @strtoull(i8* readonly, i8** nocapture, i32) [[NOFREE_NOUNWIND_WILLRETURN]]
977declare i64 @strtoull(i8*, i8**, i32)
978
979; CHECK: declare i64 @strxfrm(i8* nocapture, i8* nocapture readonly, i64) [[NOFREE_NOUNWIND_WILLRETURN]]
980declare i64 @strxfrm(i8*, i8*, i64)
981
982; CHECK: declare noundef i32 @system(i8* nocapture noundef readonly) [[NOFREE]]
983declare i32 @system(i8*)
984
985; CHECK: declare double @tan(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
986declare double @tan(double)
987
988; CHECK: declare float @tanf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
989declare float @tanf(float)
990
991; CHECK: declare double @tanh(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
992declare double @tanh(double)
993
994; CHECK: declare float @tanhf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
995declare float @tanhf(float)
996
997; CHECK: declare x86_fp80 @tanhl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
998declare x86_fp80 @tanhl(x86_fp80)
999
1000; CHECK: declare x86_fp80 @tanl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
1001declare x86_fp80 @tanl(x86_fp80)
1002
1003; CHECK: declare noundef i64 @times(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
1004declare i64 @times(%opaque*)
1005
1006; CHECK: declare noalias noundef %opaque* @tmpfile() [[NOFREE_NOUNWIND]]
1007declare %opaque* @tmpfile()
1008
1009; CHECK-LINUX: declare noalias noundef %opaque* @tmpfile64() [[NOFREE_NOUNWIND]]
1010declare %opaque* @tmpfile64()
1011
1012; CHECK: declare i32 @toascii(i32) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
1013declare i32 @toascii(i32)
1014
1015; CHECK: declare double @trunc(double) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
1016declare double @trunc(double)
1017
1018; CHECK: declare float @truncf(float) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
1019declare float @truncf(float)
1020
1021; CHECK: declare x86_fp80 @truncl(x86_fp80) [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]]
1022declare x86_fp80 @truncl(x86_fp80)
1023
1024; CHECK: declare noundef i32 @uname(%opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
1025declare i32 @uname(%opaque*)
1026
1027; CHECK: declare noundef i32 @ungetc(i32 noundef, %opaque* nocapture noundef) [[NOFREE_NOUNWIND]]
1028declare i32 @ungetc(i32, %opaque*)
1029
1030; CHECK: declare noundef i32 @unlink(i8* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
1031declare i32 @unlink(i8*)
1032
1033; CHECK: declare noundef i32 @unsetenv(i8* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
1034declare i32 @unsetenv(i8*)
1035
1036; CHECK: declare noundef i32 @utime(i8* nocapture noundef readonly, %opaque* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
1037declare i32 @utime(i8*, %opaque*)
1038
1039; CHECK: declare noundef i32 @utimes(i8* nocapture noundef readonly, %opaque* nocapture noundef readonly) [[NOFREE_NOUNWIND]]
1040declare i32 @utimes(i8*, %opaque*)
1041
1042; CHECK: declare noalias noundef i8* @valloc(i64 noundef) [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCUNINIT_ALLOCSIZE0_FAMILY_MALLOC]]
1043declare i8* @valloc(i64)
1044
1045; CHECK: declare noundef i32 @vfprintf(%opaque* nocapture noundef, i8* nocapture noundef readonly, %opaque* noundef) [[NOFREE_NOUNWIND]]
1046declare i32 @vfprintf(%opaque*, i8*, %opaque*)
1047
1048; CHECK: declare noundef i32 @vfscanf(%opaque* nocapture noundef, i8* nocapture noundef readonly, %opaque* noundef) [[NOFREE_NOUNWIND]]
1049declare i32 @vfscanf(%opaque*, i8*, %opaque*)
1050
1051; CHECK: declare noundef i32 @vprintf(i8* nocapture noundef readonly, %opaque* noundef) [[NOFREE_NOUNWIND]]
1052declare i32 @vprintf(i8*, %opaque*)
1053
1054; CHECK: declare noundef i32 @vscanf(i8* nocapture noundef readonly, %opaque* noundef) [[NOFREE_NOUNWIND]]
1055declare i32 @vscanf(i8*, %opaque*)
1056
1057; CHECK: declare noundef i32 @vsnprintf(i8* nocapture noundef, i64 noundef, i8* nocapture noundef readonly, %opaque* noundef) [[NOFREE_NOUNWIND]]
1058declare i32 @vsnprintf(i8*, i64, i8*, %opaque*)
1059
1060; CHECK: declare noundef i32 @vsprintf(i8* nocapture noundef, i8* nocapture noundef readonly, %opaque* noundef) [[NOFREE_NOUNWIND]]
1061declare i32 @vsprintf(i8*, i8*, %opaque*)
1062
1063; CHECK: declare noundef i32 @vsscanf(i8* nocapture noundef readonly, i8* nocapture noundef readonly, %opaque* noundef) [[NOFREE_NOUNWIND]]
1064declare i32 @vsscanf(i8*, i8*, %opaque*)
1065
1066; CHECK: declare noundef i64 @write(i32 noundef, i8* nocapture noundef readonly, i64 noundef) [[NOFREE]]
1067declare i64 @write(i32, i8*, i64)
1068
1069
1070; memset_pattern{4,8,16} aren't available everywhere.
1071; CHECK-DARWIN: declare void @memset_pattern4(i8* nocapture writeonly, i8* nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
1072declare void @memset_pattern4(i8*, i8*, i64)
1073; CHECK-DARWIN: declare void @memset_pattern8(i8* nocapture writeonly, i8* nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
1074declare void @memset_pattern8(i8*, i8*, i64)
1075; CHECK-DARWIN: declare void @memset_pattern16(i8* nocapture writeonly, i8* nocapture readonly, i64) [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]]
1076declare void @memset_pattern16(i8*, i8*, i64)
1077
1078; CHECK-DAG: attributes [[NOFREE_NOUNWIND_WILLRETURN]] = { mustprogress nofree nounwind willreturn }
1079; CHECK-DAG: attributes [[NOFREE_NOUNWIND_WILLRETURN_WRITEONLY]] = { mustprogress nofree nounwind willreturn writeonly }
1080; CHECK-DAG: attributes [[NOFREE_NOUNWIND]] = { nofree nounwind }
1081; CHECK-DAG: attributes [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCUNINIT_ALLOCSIZE1_FAMILY_MALLOC]] = { inaccessiblememonly mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) "alloc-family"="malloc" }
1082; CHECK-DAG: attributes [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCZEROED_ALLOCSIZE01_FAMILY_MALLOC]] = { inaccessiblememonly mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) "alloc-family"="malloc" }
1083; CHECK-DAG: attributes [[NOFREE_NOUNWIND_READONLY_WILLRETURN]] = { mustprogress nofree nounwind readonly willreturn }
1084; CHECK-DAG: attributes [[ARGMEMONLY_NOFREE_NOUNWIND_WILLRETURN]] = { argmemonly mustprogress nofree nounwind willreturn }
1085; CHECK-DAG: attributes [[NOFREE_NOUNWIND_READONLY]] = { nofree nounwind readonly }
1086; CHECK-DAG: attributes [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCKIND_FREE_FAMILY_MALLOC]] = { inaccessiblemem_or_argmemonly mustprogress nounwind willreturn allockind("free") "alloc-family"="malloc" }
1087; CHECK-DAG: attributes [[NOFREE_WILLRETURN]] = { mustprogress nofree willreturn }
1088; CHECK-DAG: attributes [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCKIND_ALLOCUNINIT_ALLOCSIZE0_FAMILY_MALLOC]] = { inaccessiblememonly mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) "alloc-family"="malloc" }
1089; CHECK-DAG: attributes [[ARGMEMONLY_NOFREE_NOUNWIND_READONLY_WILLRETURN]] = { argmemonly mustprogress nofree nounwind readonly willreturn }
1090; CHECK-DAG: attributes [[NOFREE]] = { nofree }
1091; CHECK-DAG: attributes [[ARGMEMONLY_NOFREE_NOUNWIND]] = { argmemonly nofree nounwind }
1092; CHECK-DAG: attributes [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCKIND_REALLOC_ALLOCSIZE1_FAMILY_MALLOC]] = { inaccessiblemem_or_argmemonly mustprogress nounwind willreturn allockind("realloc") allocsize(1) "alloc-family"="malloc" }
1093; CHECK-DAG: attributes [[INACCESSIBLEMEMORARGONLY_NOFREE_NOUNWIND_WILLRETURN_FAMILY_MALLOC]] = { inaccessiblemem_or_argmemonly mustprogress nofree nounwind willreturn "alloc-family"="malloc" }
1094
1095; CHECK-NVPTX-DAG: attributes [[NOFREE_NOUNWIND_READNONE]] = { nofree nosync nounwind readnone }
1096
1097; CHECK-AIX-DAG: attributes [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCSIZE0_FAMILY_VEC_MALLOC]] = { inaccessiblememonly mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) "alloc-family"="vec_malloc" }
1098; CHECK-AIX-DAG: attributes [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_FAMILY_VEC_MALLOC]] = { inaccessiblemem_or_argmemonly mustprogress nounwind willreturn allockind("free") "alloc-family"="vec_malloc" }
1099; CHECK-AIX-DAG: attributes [[INACCESSIBLEMEMORARGMEMONLY_NOUNWIND_WILLRETURN_ALLOCSIZE_FAMILY_VEC_MALLOC]] = { inaccessiblemem_or_argmemonly mustprogress nounwind willreturn allockind("realloc") allocsize(1) "alloc-family"="vec_malloc" }
1100; CHECK-AIX-DAG: attributes [[INACCESSIBLEMEMONLY_NOFREE_NOUNWIND_WILLRETURN_ALLOCSIZE01_FAMILY_VEC_MALLOC]] = { inaccessiblememonly mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) "alloc-family"="vec_malloc" }
1101