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