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