diff --git a/llvm/test/Analysis/TargetLibraryInfo/aarch64-unknown-windows-msvc.test b/llvm/test/Analysis/TargetLibraryInfo/aarch64-unknown-windows-msvc.test new file mode 100644 index 0000000000000..30a19e98a5888 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/aarch64-unknown-windows-msvc.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=aarch64-unknown-windows-msvc | FileCheck %s + +CHECK: TLI knows 523 symbols, 276 available for 'aarch64-unknown-windows-msvc' +CHECK-NEXT: available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: not available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: not available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: not available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: not available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: not available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: not available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: not available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: not available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: not available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: not available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: not available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '__size_returning_new' +CHECK-NEXT: not available: '__size_returning_new_hot_cold' +CHECK-NEXT: not available: '__size_returning_new_aligned' +CHECK-NEXT: not available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: not available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: not available: 'acoshl' +CHECK-NEXT: not available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: not available: 'asinhl' +CHECK-NEXT: not available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: not available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: not available: 'atanhl' +CHECK-NEXT: not available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: not available: 'bcopy' +CHECK-NEXT: not available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: not available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: not available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: not available: 'ceill' +CHECK-NEXT: not available: 'chmod' +CHECK-NEXT: not available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: not available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: not available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: not available: 'coshl' +CHECK-NEXT: not available: 'cosl' +CHECK-NEXT: not available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: not available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: not available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: not available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: not available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: not available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: not available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: not available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: not available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: not available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: not available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: not available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: not available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: not available: 'frexpf' +CHECK-NEXT: not available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: not available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: not available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: not available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: not available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: not available: 'ftrylockfile' +CHECK-NEXT: not available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: not available: 'getitimer' +CHECK-NEXT: not available: 'getlogin_r' +CHECK-NEXT: not available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: not available: 'gettimeofday' +CHECK-NEXT: not available: 'htonl' +CHECK-NEXT: not available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: not available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: not available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: not available: 'ldexpf' +CHECK-NEXT: not available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: not available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: not available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: not available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: not available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: not available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: not available: 'logl' +CHECK-NEXT: not available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: not available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: not available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: not available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: not available: 'nearbyintl' +CHECK-NEXT: not available: 'ntohl' +CHECK-NEXT: not available: 'ntohs' +CHECK-NEXT: not available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: not available: 'opendir' +CHECK-NEXT: not available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: not available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: not available: 'powl' +CHECK-NEXT: not available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: not available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: not available: 'read' +CHECK-NEXT: not available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: not available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: not available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: not available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: not available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: not available: 'rintl' +CHECK-NEXT: not available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: not available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: not available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: not available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: not available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: not available: 'sinhl' +CHECK-NEXT: not available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: not available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: not available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: not available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: not available: 'stpcpy' +CHECK-NEXT: not available: 'stpncpy' +CHECK-NEXT: not available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: not available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: not available: 'tanhl' +CHECK-NEXT: not available: 'tanl' +CHECK-NEXT: not available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: not available: 'truncl' +CHECK-NEXT: not available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: not available: 'unlink' +CHECK-NEXT: not available: 'unsetenv' +CHECK-NEXT: not available: 'utime' +CHECK-NEXT: not available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: not available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/amdgcn-amd-amdhsa.test b/llvm/test/Analysis/TargetLibraryInfo/amdgcn-amd-amdhsa.test new file mode 100644 index 0000000000000..a4625fcedecee --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/amdgcn-amd-amdhsa.test @@ -0,0 +1,527 @@ +# RUN: llvm-tli-checker --triple=amdgcn-amd-amdhsa --dump-tli | FileCheck %s + +CHECK: TLI knows 523 symbols, 2 available for 'amdgcn-amd-amdhsa' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: not available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: not available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: not available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: not available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: not available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: not available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: not available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: not available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: not available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: not available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: not available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '__size_returning_new' +CHECK-NEXT: not available: '__size_returning_new_hot_cold' +CHECK-NEXT: not available: '__size_returning_new_aligned' +CHECK-NEXT: not available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: not available: '__atomic_load' +CHECK-NEXT: not available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: not available: '__cxa_atexit' +CHECK-NEXT: not available: 'atexit' +CHECK-NEXT: not available: 'abort' +CHECK-NEXT: not available: 'exit' +CHECK-NEXT: not available: '_Exit' +CHECK-NEXT: not available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: not available: '__cxa_throw' +CHECK-NEXT: not available: '__cxa_guard_abort' +CHECK-NEXT: not available: '__cxa_guard_acquire' +CHECK-NEXT: not available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: not available: '__memccpy_chk' +CHECK-NEXT: not available: '__memcpy_chk' +CHECK-NEXT: not available: '__memmove_chk' +CHECK-NEXT: not available: '__mempcpy_chk' +CHECK-NEXT: not available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: not available: '__snprintf_chk' +CHECK-NEXT: not available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: not available: '__stpcpy_chk' +CHECK-NEXT: not available: '__stpncpy_chk' +CHECK-NEXT: not available: '__strcat_chk' +CHECK-NEXT: not available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: not available: '__strlcat_chk' +CHECK-NEXT: not available: '__strlcpy_chk' +CHECK-NEXT: not available: '__strlen_chk' +CHECK-NEXT: not available: '__strncat_chk' +CHECK-NEXT: not available: '__strncpy_chk' +CHECK-NEXT: not available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: not available: '__vsnprintf_chk' +CHECK-NEXT: not available: '__vsprintf_chk' +CHECK-NEXT: not available: 'abs' +CHECK-NEXT: not available: 'access' +CHECK-NEXT: not available: 'acos' +CHECK-NEXT: not available: 'acosf' +CHECK-NEXT: not available: 'acosh' +CHECK-NEXT: not available: 'acoshf' +CHECK-NEXT: not available: 'acoshl' +CHECK-NEXT: not available: 'acosl' +CHECK-NEXT: not available: 'aligned_alloc' +CHECK-NEXT: not available: 'asin' +CHECK-NEXT: not available: 'asinf' +CHECK-NEXT: not available: 'asinh' +CHECK-NEXT: not available: 'asinhf' +CHECK-NEXT: not available: 'asinhl' +CHECK-NEXT: not available: 'asinl' +CHECK-NEXT: not available: 'atan' +CHECK-NEXT: not available: 'atan2' +CHECK-NEXT: not available: 'atan2f' +CHECK-NEXT: not available: 'atan2l' +CHECK-NEXT: not available: 'atanf' +CHECK-NEXT: not available: 'atanh' +CHECK-NEXT: not available: 'atanhf' +CHECK-NEXT: not available: 'atanhl' +CHECK-NEXT: not available: 'atanl' +CHECK-NEXT: not available: 'atof' +CHECK-NEXT: not available: 'atoi' +CHECK-NEXT: not available: 'atol' +CHECK-NEXT: not available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: not available: 'bcopy' +CHECK-NEXT: not available: 'bzero' +CHECK-NEXT: not available: 'cabs' +CHECK-NEXT: not available: 'cabsf' +CHECK-NEXT: not available: 'cabsl' +CHECK-NEXT: not available: 'calloc' +CHECK-NEXT: not available: 'cbrt' +CHECK-NEXT: not available: 'cbrtf' +CHECK-NEXT: not available: 'cbrtl' +CHECK-NEXT: not available: 'ceil' +CHECK-NEXT: not available: 'ceilf' +CHECK-NEXT: not available: 'ceill' +CHECK-NEXT: not available: 'chmod' +CHECK-NEXT: not available: 'chown' +CHECK-NEXT: not available: 'clearerr' +CHECK-NEXT: not available: 'closedir' +CHECK-NEXT: not available: 'copysign' +CHECK-NEXT: not available: 'copysignf' +CHECK-NEXT: not available: 'copysignl' +CHECK-NEXT: not available: 'cos' +CHECK-NEXT: not available: 'cosf' +CHECK-NEXT: not available: 'cosh' +CHECK-NEXT: not available: 'coshf' +CHECK-NEXT: not available: 'coshl' +CHECK-NEXT: not available: 'cosl' +CHECK-NEXT: not available: 'ctermid' +CHECK-NEXT: not available: 'erf' +CHECK-NEXT: not available: 'erff' +CHECK-NEXT: not available: 'erfl' +CHECK-NEXT: not available: 'tgamma' +CHECK-NEXT: not available: 'tgammaf' +CHECK-NEXT: not available: 'tgammal' +CHECK-NEXT: not available: 'execl' +CHECK-NEXT: not available: 'execle' +CHECK-NEXT: not available: 'execlp' +CHECK-NEXT: not available: 'execv' +CHECK-NEXT: not available: 'execvP' +CHECK-NEXT: not available: 'execve' +CHECK-NEXT: not available: 'execvp' +CHECK-NEXT: not available: 'execvpe' +CHECK-NEXT: not available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: not available: 'exp2' +CHECK-NEXT: not available: 'exp2f' +CHECK-NEXT: not available: 'exp2l' +CHECK-NEXT: not available: 'expf' +CHECK-NEXT: not available: 'expl' +CHECK-NEXT: not available: 'expm1' +CHECK-NEXT: not available: 'expm1f' +CHECK-NEXT: not available: 'expm1l' +CHECK-NEXT: not available: 'fabs' +CHECK-NEXT: not available: 'fabsf' +CHECK-NEXT: not available: 'fabsl' +CHECK-NEXT: not available: 'fclose' +CHECK-NEXT: not available: 'fdopen' +CHECK-NEXT: not available: 'feof' +CHECK-NEXT: not available: 'ferror' +CHECK-NEXT: not available: 'fflush' +CHECK-NEXT: not available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: not available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: not available: 'fgetpos' +CHECK-NEXT: not available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: not available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: not available: 'flockfile' +CHECK-NEXT: not available: 'floor' +CHECK-NEXT: not available: 'floorf' +CHECK-NEXT: not available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: not available: 'fmax' +CHECK-NEXT: not available: 'fmaxf' +CHECK-NEXT: not available: 'fmaxl' +CHECK-NEXT: not available: 'fmin' +CHECK-NEXT: not available: 'fminf' +CHECK-NEXT: not available: 'fminl' +CHECK-NEXT: not available: 'fmaximum_num' +CHECK-NEXT: not available: 'fmaximum_numf' +CHECK-NEXT: not available: 'fmaximum_numl' +CHECK-NEXT: not available: 'fminimum_num' +CHECK-NEXT: not available: 'fminimum_numf' +CHECK-NEXT: not available: 'fminimum_numl' +CHECK-NEXT: not available: 'fmod' +CHECK-NEXT: not available: 'fmodf' +CHECK-NEXT: not available: 'fmodl' +CHECK-NEXT: not available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: not available: 'fork' +CHECK-NEXT: not available: 'fprintf' +CHECK-NEXT: not available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: not available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: not available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: not available: 'free' +CHECK-NEXT: not available: 'frexp' +CHECK-NEXT: not available: 'frexpf' +CHECK-NEXT: not available: 'frexpl' +CHECK-NEXT: not available: 'fscanf' +CHECK-NEXT: not available: 'fseek' +CHECK-NEXT: not available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: not available: 'fsetpos' +CHECK-NEXT: not available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: not available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: not available: 'ftell' +CHECK-NEXT: not available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: not available: 'ftrylockfile' +CHECK-NEXT: not available: 'funlockfile' +CHECK-NEXT: not available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: not available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: not available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: not available: 'getenv' +CHECK-NEXT: not available: 'getitimer' +CHECK-NEXT: not available: 'getlogin_r' +CHECK-NEXT: not available: 'getpwnam' +CHECK-NEXT: not available: 'gets' +CHECK-NEXT: not available: 'gettimeofday' +CHECK-NEXT: not available: 'htonl' +CHECK-NEXT: not available: 'htons' +CHECK-NEXT: not available: 'hypot' +CHECK-NEXT: not available: 'hypotf' +CHECK-NEXT: not available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: not available: 'isascii' +CHECK-NEXT: not available: 'isdigit' +CHECK-NEXT: not available: 'labs' +CHECK-NEXT: not available: 'lchown' +CHECK-NEXT: not available: 'ldexp' +CHECK-NEXT: not available: 'ldexpf' +CHECK-NEXT: not available: 'ldexpl' +CHECK-NEXT: not available: 'llabs' +CHECK-NEXT: not available: 'log' +CHECK-NEXT: not available: 'log10' +CHECK-NEXT: not available: 'log10f' +CHECK-NEXT: not available: 'log10l' +CHECK-NEXT: not available: 'log1p' +CHECK-NEXT: not available: 'log1pf' +CHECK-NEXT: not available: 'log1pl' +CHECK-NEXT: not available: 'log2' +CHECK-NEXT: not available: 'log2f' +CHECK-NEXT: not available: 'log2l' +CHECK-NEXT: not available: 'ilogb' +CHECK-NEXT: not available: 'ilogbf' +CHECK-NEXT: not available: 'ilogbl' +CHECK-NEXT: not available: 'logb' +CHECK-NEXT: not available: 'logbf' +CHECK-NEXT: not available: 'logbl' +CHECK-NEXT: not available: 'logf' +CHECK-NEXT: not available: 'logl' +CHECK-NEXT: not available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: not available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: not available: 'memccpy' +CHECK-NEXT: not available: 'memchr' +CHECK-NEXT: not available: 'memcmp' +CHECK-NEXT: not available: 'memcpy' +CHECK-NEXT: not available: 'memmove' +CHECK-NEXT: not available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: not available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: not available: 'mkdir' +CHECK-NEXT: not available: 'mktime' +CHECK-NEXT: not available: 'modf' +CHECK-NEXT: not available: 'modff' +CHECK-NEXT: not available: 'modfl' +CHECK-NEXT: not available: 'nan' +CHECK-NEXT: not available: 'nanf' +CHECK-NEXT: not available: 'nanl' +CHECK-NEXT: not available: 'nearbyint' +CHECK-NEXT: not available: 'nearbyintf' +CHECK-NEXT: not available: 'nearbyintl' +CHECK-NEXT: not available: 'ntohl' +CHECK-NEXT: not available: 'ntohs' +CHECK-NEXT: not available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: not available: 'opendir' +CHECK-NEXT: not available: 'pclose' +CHECK-NEXT: not available: 'perror' +CHECK-NEXT: not available: 'popen' +CHECK-NEXT: not available: 'posix_memalign' +CHECK-NEXT: not available: 'pow' +CHECK-NEXT: not available: 'powf' +CHECK-NEXT: not available: 'powl' +CHECK-NEXT: not available: 'pread' +CHECK-NEXT: not available: 'printf' +CHECK-NEXT: not available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: not available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: not available: 'puts' +CHECK-NEXT: not available: 'pwrite' +CHECK-NEXT: not available: 'qsort' +CHECK-NEXT: not available: 'read' +CHECK-NEXT: not available: 'readlink' +CHECK-NEXT: not available: 'realloc' +CHECK-NEXT: not available: 'reallocf' +CHECK-NEXT: not available: 'reallocarray' +CHECK-NEXT: not available: 'realpath' +CHECK-NEXT: not available: 'remainder' +CHECK-NEXT: not available: 'remainderf' +CHECK-NEXT: not available: 'remainderl' +CHECK-NEXT: not available: 'remquo' +CHECK-NEXT: not available: 'remquof' +CHECK-NEXT: not available: 'remquol' +CHECK-NEXT: not available: 'fdim' +CHECK-NEXT: not available: 'fdimf' +CHECK-NEXT: not available: 'fdiml' +CHECK-NEXT: not available: 'remove' +CHECK-NEXT: not available: 'rename' +CHECK-NEXT: not available: 'rewind' +CHECK-NEXT: not available: 'rint' +CHECK-NEXT: not available: 'rintf' +CHECK-NEXT: not available: 'rintl' +CHECK-NEXT: not available: 'rmdir' +CHECK-NEXT: not available: 'round' +CHECK-NEXT: not available: 'roundeven' +CHECK-NEXT: not available: 'roundevenf' +CHECK-NEXT: not available: 'roundevenl' +CHECK-NEXT: not available: 'roundf' +CHECK-NEXT: not available: 'roundl' +CHECK-NEXT: not available: 'scalbln' +CHECK-NEXT: not available: 'scalblnf' +CHECK-NEXT: not available: 'scalblnl' +CHECK-NEXT: not available: 'scalbn' +CHECK-NEXT: not available: 'scalbnf' +CHECK-NEXT: not available: 'scalbnl' +CHECK-NEXT: not available: 'scanf' +CHECK-NEXT: not available: 'setbuf' +CHECK-NEXT: not available: 'setitimer' +CHECK-NEXT: not available: 'setvbuf' +CHECK-NEXT: not available: 'sin' +CHECK-NEXT: not available: 'sinf' +CHECK-NEXT: not available: 'sinh' +CHECK-NEXT: not available: 'sinhf' +CHECK-NEXT: not available: 'sinhl' +CHECK-NEXT: not available: 'sinl' +CHECK-NEXT: not available: 'sincos' +CHECK-NEXT: not available: 'sincosf' +CHECK-NEXT: not available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: not available: 'snprintf' +CHECK-NEXT: not available: 'sprintf' +CHECK-NEXT: not available: 'sqrt' +CHECK-NEXT: not available: 'sqrtf' +CHECK-NEXT: not available: 'sqrtl' +CHECK-NEXT: not available: 'sscanf' +CHECK-NEXT: not available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: not available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: not available: 'stpcpy' +CHECK-NEXT: not available: 'stpncpy' +CHECK-NEXT: not available: 'strcasecmp' +CHECK-NEXT: not available: 'strcat' +CHECK-NEXT: not available: 'strchr' +CHECK-NEXT: not available: 'strcmp' +CHECK-NEXT: not available: 'strcoll' +CHECK-NEXT: not available: 'strcpy' +CHECK-NEXT: not available: 'strcspn' +CHECK-NEXT: not available: 'strdup' +CHECK-NEXT: not available: 'strlcat' +CHECK-NEXT: not available: 'strlcpy' +CHECK-NEXT: not available: 'strlen' +CHECK-NEXT: not available: 'strncasecmp' +CHECK-NEXT: not available: 'strncat' +CHECK-NEXT: not available: 'strncmp' +CHECK-NEXT: not available: 'strncpy' +CHECK-NEXT: not available: 'strndup' +CHECK-NEXT: not available: 'strnlen' +CHECK-NEXT: not available: 'strpbrk' +CHECK-NEXT: not available: 'strrchr' +CHECK-NEXT: not available: 'strspn' +CHECK-NEXT: not available: 'strstr' +CHECK-NEXT: not available: 'strtod' +CHECK-NEXT: not available: 'strtof' +CHECK-NEXT: not available: 'strtok' +CHECK-NEXT: not available: 'strtok_r' +CHECK-NEXT: not available: 'strtol' +CHECK-NEXT: not available: 'strtold' +CHECK-NEXT: not available: 'strtoll' +CHECK-NEXT: not available: 'strtoul' +CHECK-NEXT: not available: 'strtoull' +CHECK-NEXT: not available: 'strxfrm' +CHECK-NEXT: not available: 'system' +CHECK-NEXT: not available: 'tan' +CHECK-NEXT: not available: 'tanf' +CHECK-NEXT: not available: 'tanh' +CHECK-NEXT: not available: 'tanhf' +CHECK-NEXT: not available: 'tanhl' +CHECK-NEXT: not available: 'tanl' +CHECK-NEXT: not available: 'times' +CHECK-NEXT: not available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: not available: 'toascii' +CHECK-NEXT: not available: 'trunc' +CHECK-NEXT: not available: 'truncf' +CHECK-NEXT: not available: 'truncl' +CHECK-NEXT: not available: 'uname' +CHECK-NEXT: not available: 'ungetc' +CHECK-NEXT: not available: 'unlink' +CHECK-NEXT: not available: 'unsetenv' +CHECK-NEXT: not available: 'utime' +CHECK-NEXT: not available: 'utimes' +CHECK-NEXT: not available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: not available: 'vfprintf' +CHECK-NEXT: not available: 'vfscanf' +CHECK-NEXT: not available: 'vprintf' +CHECK-NEXT: not available: 'vscanf' +CHECK-NEXT: not available: 'vsnprintf' +CHECK-NEXT: not available: 'vsprintf' +CHECK-NEXT: not available: 'vsscanf' +CHECK-NEXT: not available: 'wcslen' +CHECK-NEXT: not available: 'write' + diff --git a/llvm/test/Analysis/TargetLibraryInfo/arm64-apple-darwin.test b/llvm/test/Analysis/TargetLibraryInfo/arm64-apple-darwin.test new file mode 100644 index 0000000000000..2279751dabf7f --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/arm64-apple-darwin.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=arm64-apple-darwin | FileCheck %s + +CHECK: TLI knows 523 symbols, 407 available for 'arm64-apple-darwin' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/arm64_32-apple-watchos.test b/llvm/test/Analysis/TargetLibraryInfo/arm64_32-apple-watchos.test new file mode 100644 index 0000000000000..1878911ac85be --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/arm64_32-apple-watchos.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=arm64_32-apple-watchos | FileCheck %s + +CHECK: TLI knows 523 symbols, 415 available for 'arm64_32-apple-watchos' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: available: '__cospi' +CHECK-NEXT: available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: available: '__sincospi_stret' +CHECK-NEXT: available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: available: '__sinpi' +CHECK-NEXT: available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: available: 'exp10' +CHECK-NEXT: available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: available: 'memset_pattern16' +CHECK-NEXT: available: 'memset_pattern4' +CHECK-NEXT: available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/armv7-apple-ios.test b/llvm/test/Analysis/TargetLibraryInfo/armv7-apple-ios.test new file mode 100644 index 0000000000000..7889d8d4ebcc3 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/armv7-apple-ios.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=armv7-apple-ios | FileCheck %s + +CHECK: TLI knows 523 symbols, 404 available for 'armv7-apple-ios' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/armv7-unknown-linux-android21.test b/llvm/test/Analysis/TargetLibraryInfo/armv7-unknown-linux-android21.test new file mode 100644 index 0000000000000..616be91e001ac --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/armv7-unknown-linux-android21.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=armv7-unknown-linux-android21 | FileCheck %s + +CHECK: TLI knows 523 symbols, 405 available for 'armv7-unknown-linux-android21' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/armv7-unknown-linux-android28.test b/llvm/test/Analysis/TargetLibraryInfo/armv7-unknown-linux-android28.test new file mode 100644 index 0000000000000..4e4b4736a9d7f --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/armv7-unknown-linux-android28.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=armv7-unknown-linux-android28 | FileCheck %s + +CHECK: TLI knows 523 symbols, 415 available for 'armv7-unknown-linux-android28' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/armv7s-apple-ios7.0.test b/llvm/test/Analysis/TargetLibraryInfo/armv7s-apple-ios7.0.test new file mode 100644 index 0000000000000..03cb8c6915331 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/armv7s-apple-ios7.0.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=armv7s-apple-ios7.0 | FileCheck %s + +CHECK: TLI knows 523 symbols, 415 available for 'armv7s-apple-ios7.0' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: available: '__cospi' +CHECK-NEXT: available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: available: '__sincospi_stret' +CHECK-NEXT: available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: available: '__sinpi' +CHECK-NEXT: available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: available: 'exp10' +CHECK-NEXT: available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: available: 'memset_pattern16' +CHECK-NEXT: available: 'memset_pattern4' +CHECK-NEXT: available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/dxil-pc-shadermodel6.3-library.test b/llvm/test/Analysis/TargetLibraryInfo/dxil-pc-shadermodel6.3-library.test new file mode 100644 index 0000000000000..43990e4787a62 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/dxil-pc-shadermodel6.3-library.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=dxil-pc-shadermodel6.3-library | FileCheck %s + +CHECK: TLI knows 523 symbols, 0 available for 'dxil-pc-shadermodel6.3-library' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: not available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: not available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: not available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: not available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: not available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: not available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: not available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: not available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: not available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: not available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: not available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '__size_returning_new' +CHECK-NEXT: not available: '__size_returning_new_hot_cold' +CHECK-NEXT: not available: '__size_returning_new_aligned' +CHECK-NEXT: not available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: not available: '__atomic_load' +CHECK-NEXT: not available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: not available: '__cxa_atexit' +CHECK-NEXT: not available: 'atexit' +CHECK-NEXT: not available: 'abort' +CHECK-NEXT: not available: 'exit' +CHECK-NEXT: not available: '_Exit' +CHECK-NEXT: not available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: not available: '__cxa_throw' +CHECK-NEXT: not available: '__cxa_guard_abort' +CHECK-NEXT: not available: '__cxa_guard_acquire' +CHECK-NEXT: not available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: not available: '__kmpc_alloc_shared' +CHECK-NEXT: not available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: not available: '__memccpy_chk' +CHECK-NEXT: not available: '__memcpy_chk' +CHECK-NEXT: not available: '__memmove_chk' +CHECK-NEXT: not available: '__mempcpy_chk' +CHECK-NEXT: not available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: not available: '__snprintf_chk' +CHECK-NEXT: not available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: not available: '__stpcpy_chk' +CHECK-NEXT: not available: '__stpncpy_chk' +CHECK-NEXT: not available: '__strcat_chk' +CHECK-NEXT: not available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: not available: '__strlcat_chk' +CHECK-NEXT: not available: '__strlcpy_chk' +CHECK-NEXT: not available: '__strlen_chk' +CHECK-NEXT: not available: '__strncat_chk' +CHECK-NEXT: not available: '__strncpy_chk' +CHECK-NEXT: not available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: not available: '__vsnprintf_chk' +CHECK-NEXT: not available: '__vsprintf_chk' +CHECK-NEXT: not available: 'abs' +CHECK-NEXT: not available: 'access' +CHECK-NEXT: not available: 'acos' +CHECK-NEXT: not available: 'acosf' +CHECK-NEXT: not available: 'acosh' +CHECK-NEXT: not available: 'acoshf' +CHECK-NEXT: not available: 'acoshl' +CHECK-NEXT: not available: 'acosl' +CHECK-NEXT: not available: 'aligned_alloc' +CHECK-NEXT: not available: 'asin' +CHECK-NEXT: not available: 'asinf' +CHECK-NEXT: not available: 'asinh' +CHECK-NEXT: not available: 'asinhf' +CHECK-NEXT: not available: 'asinhl' +CHECK-NEXT: not available: 'asinl' +CHECK-NEXT: not available: 'atan' +CHECK-NEXT: not available: 'atan2' +CHECK-NEXT: not available: 'atan2f' +CHECK-NEXT: not available: 'atan2l' +CHECK-NEXT: not available: 'atanf' +CHECK-NEXT: not available: 'atanh' +CHECK-NEXT: not available: 'atanhf' +CHECK-NEXT: not available: 'atanhl' +CHECK-NEXT: not available: 'atanl' +CHECK-NEXT: not available: 'atof' +CHECK-NEXT: not available: 'atoi' +CHECK-NEXT: not available: 'atol' +CHECK-NEXT: not available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: not available: 'bcopy' +CHECK-NEXT: not available: 'bzero' +CHECK-NEXT: not available: 'cabs' +CHECK-NEXT: not available: 'cabsf' +CHECK-NEXT: not available: 'cabsl' +CHECK-NEXT: not available: 'calloc' +CHECK-NEXT: not available: 'cbrt' +CHECK-NEXT: not available: 'cbrtf' +CHECK-NEXT: not available: 'cbrtl' +CHECK-NEXT: not available: 'ceil' +CHECK-NEXT: not available: 'ceilf' +CHECK-NEXT: not available: 'ceill' +CHECK-NEXT: not available: 'chmod' +CHECK-NEXT: not available: 'chown' +CHECK-NEXT: not available: 'clearerr' +CHECK-NEXT: not available: 'closedir' +CHECK-NEXT: not available: 'copysign' +CHECK-NEXT: not available: 'copysignf' +CHECK-NEXT: not available: 'copysignl' +CHECK-NEXT: not available: 'cos' +CHECK-NEXT: not available: 'cosf' +CHECK-NEXT: not available: 'cosh' +CHECK-NEXT: not available: 'coshf' +CHECK-NEXT: not available: 'coshl' +CHECK-NEXT: not available: 'cosl' +CHECK-NEXT: not available: 'ctermid' +CHECK-NEXT: not available: 'erf' +CHECK-NEXT: not available: 'erff' +CHECK-NEXT: not available: 'erfl' +CHECK-NEXT: not available: 'tgamma' +CHECK-NEXT: not available: 'tgammaf' +CHECK-NEXT: not available: 'tgammal' +CHECK-NEXT: not available: 'execl' +CHECK-NEXT: not available: 'execle' +CHECK-NEXT: not available: 'execlp' +CHECK-NEXT: not available: 'execv' +CHECK-NEXT: not available: 'execvP' +CHECK-NEXT: not available: 'execve' +CHECK-NEXT: not available: 'execvp' +CHECK-NEXT: not available: 'execvpe' +CHECK-NEXT: not available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: not available: 'exp2' +CHECK-NEXT: not available: 'exp2f' +CHECK-NEXT: not available: 'exp2l' +CHECK-NEXT: not available: 'expf' +CHECK-NEXT: not available: 'expl' +CHECK-NEXT: not available: 'expm1' +CHECK-NEXT: not available: 'expm1f' +CHECK-NEXT: not available: 'expm1l' +CHECK-NEXT: not available: 'fabs' +CHECK-NEXT: not available: 'fabsf' +CHECK-NEXT: not available: 'fabsl' +CHECK-NEXT: not available: 'fclose' +CHECK-NEXT: not available: 'fdopen' +CHECK-NEXT: not available: 'feof' +CHECK-NEXT: not available: 'ferror' +CHECK-NEXT: not available: 'fflush' +CHECK-NEXT: not available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: not available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: not available: 'fgetpos' +CHECK-NEXT: not available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: not available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: not available: 'flockfile' +CHECK-NEXT: not available: 'floor' +CHECK-NEXT: not available: 'floorf' +CHECK-NEXT: not available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: not available: 'fmax' +CHECK-NEXT: not available: 'fmaxf' +CHECK-NEXT: not available: 'fmaxl' +CHECK-NEXT: not available: 'fmin' +CHECK-NEXT: not available: 'fminf' +CHECK-NEXT: not available: 'fminl' +CHECK-NEXT: not available: 'fmaximum_num' +CHECK-NEXT: not available: 'fmaximum_numf' +CHECK-NEXT: not available: 'fmaximum_numl' +CHECK-NEXT: not available: 'fminimum_num' +CHECK-NEXT: not available: 'fminimum_numf' +CHECK-NEXT: not available: 'fminimum_numl' +CHECK-NEXT: not available: 'fmod' +CHECK-NEXT: not available: 'fmodf' +CHECK-NEXT: not available: 'fmodl' +CHECK-NEXT: not available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: not available: 'fork' +CHECK-NEXT: not available: 'fprintf' +CHECK-NEXT: not available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: not available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: not available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: not available: 'free' +CHECK-NEXT: not available: 'frexp' +CHECK-NEXT: not available: 'frexpf' +CHECK-NEXT: not available: 'frexpl' +CHECK-NEXT: not available: 'fscanf' +CHECK-NEXT: not available: 'fseek' +CHECK-NEXT: not available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: not available: 'fsetpos' +CHECK-NEXT: not available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: not available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: not available: 'ftell' +CHECK-NEXT: not available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: not available: 'ftrylockfile' +CHECK-NEXT: not available: 'funlockfile' +CHECK-NEXT: not available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: not available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: not available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: not available: 'getenv' +CHECK-NEXT: not available: 'getitimer' +CHECK-NEXT: not available: 'getlogin_r' +CHECK-NEXT: not available: 'getpwnam' +CHECK-NEXT: not available: 'gets' +CHECK-NEXT: not available: 'gettimeofday' +CHECK-NEXT: not available: 'htonl' +CHECK-NEXT: not available: 'htons' +CHECK-NEXT: not available: 'hypot' +CHECK-NEXT: not available: 'hypotf' +CHECK-NEXT: not available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: not available: 'isascii' +CHECK-NEXT: not available: 'isdigit' +CHECK-NEXT: not available: 'labs' +CHECK-NEXT: not available: 'lchown' +CHECK-NEXT: not available: 'ldexp' +CHECK-NEXT: not available: 'ldexpf' +CHECK-NEXT: not available: 'ldexpl' +CHECK-NEXT: not available: 'llabs' +CHECK-NEXT: not available: 'log' +CHECK-NEXT: not available: 'log10' +CHECK-NEXT: not available: 'log10f' +CHECK-NEXT: not available: 'log10l' +CHECK-NEXT: not available: 'log1p' +CHECK-NEXT: not available: 'log1pf' +CHECK-NEXT: not available: 'log1pl' +CHECK-NEXT: not available: 'log2' +CHECK-NEXT: not available: 'log2f' +CHECK-NEXT: not available: 'log2l' +CHECK-NEXT: not available: 'ilogb' +CHECK-NEXT: not available: 'ilogbf' +CHECK-NEXT: not available: 'ilogbl' +CHECK-NEXT: not available: 'logb' +CHECK-NEXT: not available: 'logbf' +CHECK-NEXT: not available: 'logbl' +CHECK-NEXT: not available: 'logf' +CHECK-NEXT: not available: 'logl' +CHECK-NEXT: not available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: not available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: not available: 'memccpy' +CHECK-NEXT: not available: 'memchr' +CHECK-NEXT: not available: 'memcmp' +CHECK-NEXT: not available: 'memcpy' +CHECK-NEXT: not available: 'memmove' +CHECK-NEXT: not available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: not available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: not available: 'mkdir' +CHECK-NEXT: not available: 'mktime' +CHECK-NEXT: not available: 'modf' +CHECK-NEXT: not available: 'modff' +CHECK-NEXT: not available: 'modfl' +CHECK-NEXT: not available: 'nan' +CHECK-NEXT: not available: 'nanf' +CHECK-NEXT: not available: 'nanl' +CHECK-NEXT: not available: 'nearbyint' +CHECK-NEXT: not available: 'nearbyintf' +CHECK-NEXT: not available: 'nearbyintl' +CHECK-NEXT: not available: 'ntohl' +CHECK-NEXT: not available: 'ntohs' +CHECK-NEXT: not available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: not available: 'opendir' +CHECK-NEXT: not available: 'pclose' +CHECK-NEXT: not available: 'perror' +CHECK-NEXT: not available: 'popen' +CHECK-NEXT: not available: 'posix_memalign' +CHECK-NEXT: not available: 'pow' +CHECK-NEXT: not available: 'powf' +CHECK-NEXT: not available: 'powl' +CHECK-NEXT: not available: 'pread' +CHECK-NEXT: not available: 'printf' +CHECK-NEXT: not available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: not available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: not available: 'puts' +CHECK-NEXT: not available: 'pwrite' +CHECK-NEXT: not available: 'qsort' +CHECK-NEXT: not available: 'read' +CHECK-NEXT: not available: 'readlink' +CHECK-NEXT: not available: 'realloc' +CHECK-NEXT: not available: 'reallocf' +CHECK-NEXT: not available: 'reallocarray' +CHECK-NEXT: not available: 'realpath' +CHECK-NEXT: not available: 'remainder' +CHECK-NEXT: not available: 'remainderf' +CHECK-NEXT: not available: 'remainderl' +CHECK-NEXT: not available: 'remquo' +CHECK-NEXT: not available: 'remquof' +CHECK-NEXT: not available: 'remquol' +CHECK-NEXT: not available: 'fdim' +CHECK-NEXT: not available: 'fdimf' +CHECK-NEXT: not available: 'fdiml' +CHECK-NEXT: not available: 'remove' +CHECK-NEXT: not available: 'rename' +CHECK-NEXT: not available: 'rewind' +CHECK-NEXT: not available: 'rint' +CHECK-NEXT: not available: 'rintf' +CHECK-NEXT: not available: 'rintl' +CHECK-NEXT: not available: 'rmdir' +CHECK-NEXT: not available: 'round' +CHECK-NEXT: not available: 'roundeven' +CHECK-NEXT: not available: 'roundevenf' +CHECK-NEXT: not available: 'roundevenl' +CHECK-NEXT: not available: 'roundf' +CHECK-NEXT: not available: 'roundl' +CHECK-NEXT: not available: 'scalbln' +CHECK-NEXT: not available: 'scalblnf' +CHECK-NEXT: not available: 'scalblnl' +CHECK-NEXT: not available: 'scalbn' +CHECK-NEXT: not available: 'scalbnf' +CHECK-NEXT: not available: 'scalbnl' +CHECK-NEXT: not available: 'scanf' +CHECK-NEXT: not available: 'setbuf' +CHECK-NEXT: not available: 'setitimer' +CHECK-NEXT: not available: 'setvbuf' +CHECK-NEXT: not available: 'sin' +CHECK-NEXT: not available: 'sinf' +CHECK-NEXT: not available: 'sinh' +CHECK-NEXT: not available: 'sinhf' +CHECK-NEXT: not available: 'sinhl' +CHECK-NEXT: not available: 'sinl' +CHECK-NEXT: not available: 'sincos' +CHECK-NEXT: not available: 'sincosf' +CHECK-NEXT: not available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: not available: 'snprintf' +CHECK-NEXT: not available: 'sprintf' +CHECK-NEXT: not available: 'sqrt' +CHECK-NEXT: not available: 'sqrtf' +CHECK-NEXT: not available: 'sqrtl' +CHECK-NEXT: not available: 'sscanf' +CHECK-NEXT: not available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: not available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: not available: 'stpcpy' +CHECK-NEXT: not available: 'stpncpy' +CHECK-NEXT: not available: 'strcasecmp' +CHECK-NEXT: not available: 'strcat' +CHECK-NEXT: not available: 'strchr' +CHECK-NEXT: not available: 'strcmp' +CHECK-NEXT: not available: 'strcoll' +CHECK-NEXT: not available: 'strcpy' +CHECK-NEXT: not available: 'strcspn' +CHECK-NEXT: not available: 'strdup' +CHECK-NEXT: not available: 'strlcat' +CHECK-NEXT: not available: 'strlcpy' +CHECK-NEXT: not available: 'strlen' +CHECK-NEXT: not available: 'strncasecmp' +CHECK-NEXT: not available: 'strncat' +CHECK-NEXT: not available: 'strncmp' +CHECK-NEXT: not available: 'strncpy' +CHECK-NEXT: not available: 'strndup' +CHECK-NEXT: not available: 'strnlen' +CHECK-NEXT: not available: 'strpbrk' +CHECK-NEXT: not available: 'strrchr' +CHECK-NEXT: not available: 'strspn' +CHECK-NEXT: not available: 'strstr' +CHECK-NEXT: not available: 'strtod' +CHECK-NEXT: not available: 'strtof' +CHECK-NEXT: not available: 'strtok' +CHECK-NEXT: not available: 'strtok_r' +CHECK-NEXT: not available: 'strtol' +CHECK-NEXT: not available: 'strtold' +CHECK-NEXT: not available: 'strtoll' +CHECK-NEXT: not available: 'strtoul' +CHECK-NEXT: not available: 'strtoull' +CHECK-NEXT: not available: 'strxfrm' +CHECK-NEXT: not available: 'system' +CHECK-NEXT: not available: 'tan' +CHECK-NEXT: not available: 'tanf' +CHECK-NEXT: not available: 'tanh' +CHECK-NEXT: not available: 'tanhf' +CHECK-NEXT: not available: 'tanhl' +CHECK-NEXT: not available: 'tanl' +CHECK-NEXT: not available: 'times' +CHECK-NEXT: not available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: not available: 'toascii' +CHECK-NEXT: not available: 'trunc' +CHECK-NEXT: not available: 'truncf' +CHECK-NEXT: not available: 'truncl' +CHECK-NEXT: not available: 'uname' +CHECK-NEXT: not available: 'ungetc' +CHECK-NEXT: not available: 'unlink' +CHECK-NEXT: not available: 'unsetenv' +CHECK-NEXT: not available: 'utime' +CHECK-NEXT: not available: 'utimes' +CHECK-NEXT: not available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: not available: 'vfprintf' +CHECK-NEXT: not available: 'vfscanf' +CHECK-NEXT: not available: 'vprintf' +CHECK-NEXT: not available: 'vscanf' +CHECK-NEXT: not available: 'vsnprintf' +CHECK-NEXT: not available: 'vsprintf' +CHECK-NEXT: not available: 'vsscanf' +CHECK-NEXT: not available: 'wcslen' +CHECK-NEXT: not available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/i386-apple-macosx10.6.0.test b/llvm/test/Analysis/TargetLibraryInfo/i386-apple-macosx10.6.0.test new file mode 100644 index 0000000000000..fcb32959ecdb1 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/i386-apple-macosx10.6.0.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=i386-apple-macosx10.6.0 | FileCheck %s + +CHECK: TLI knows 523 symbols, 410 available for 'i386-apple-macosx10.6.0' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: available: 'memset_pattern16' +CHECK-NEXT: available: 'memset_pattern4' +CHECK-NEXT: available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/i386-apple-macosx10.7.0.test b/llvm/test/Analysis/TargetLibraryInfo/i386-apple-macosx10.7.0.test new file mode 100644 index 0000000000000..cb7b0b176905e --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/i386-apple-macosx10.7.0.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=i386-apple-macosx10.7.0 | FileCheck %s + +CHECK: TLI knows 523 symbols, 410 available for 'i386-apple-macosx10.7.0' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: available: 'memset_pattern16' +CHECK-NEXT: available: 'memset_pattern4' +CHECK-NEXT: available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/i386-pc-linux-gnu.test b/llvm/test/Analysis/TargetLibraryInfo/i386-pc-linux-gnu.test new file mode 100644 index 0000000000000..ef3adec556ab9 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/i386-pc-linux-gnu.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=i386-pc-linux-gnu | FileCheck %s + +CHECK: TLI knows 523 symbols, 477 available for 'i386-pc-linux-gnu' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: available: '_IO_getc' +CHECK-NEXT: available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: available: '__acos_finite' +CHECK-NEXT: available: '__acosf_finite' +CHECK-NEXT: available: '__acosh_finite' +CHECK-NEXT: available: '__acoshf_finite' +CHECK-NEXT: available: '__acoshl_finite' +CHECK-NEXT: available: '__acosl_finite' +CHECK-NEXT: available: '__asin_finite' +CHECK-NEXT: available: '__asinf_finite' +CHECK-NEXT: available: '__asinl_finite' +CHECK-NEXT: available: '__atan2_finite' +CHECK-NEXT: available: '__atan2f_finite' +CHECK-NEXT: available: '__atan2l_finite' +CHECK-NEXT: available: '__atanh_finite' +CHECK-NEXT: available: '__atanhf_finite' +CHECK-NEXT: available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: available: '__cosh_finite' +CHECK-NEXT: available: '__coshf_finite' +CHECK-NEXT: available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: available: '__exp10_finite' +CHECK-NEXT: available: '__exp10f_finite' +CHECK-NEXT: available: '__exp10l_finite' +CHECK-NEXT: available: '__exp2_finite' +CHECK-NEXT: available: '__exp2f_finite' +CHECK-NEXT: available: '__exp2l_finite' +CHECK-NEXT: available: '__exp_finite' +CHECK-NEXT: available: '__expf_finite' +CHECK-NEXT: available: '__expl_finite' +CHECK-NEXT: available: '__isoc99_scanf' +CHECK-NEXT: available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: available: '__log10_finite' +CHECK-NEXT: available: '__log10f_finite' +CHECK-NEXT: available: '__log10l_finite' +CHECK-NEXT: available: '__log2_finite' +CHECK-NEXT: available: '__log2f_finite' +CHECK-NEXT: available: '__log2l_finite' +CHECK-NEXT: available: '__log_finite' +CHECK-NEXT: available: '__logf_finite' +CHECK-NEXT: available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: available: '__pow_finite' +CHECK-NEXT: available: '__powf_finite' +CHECK-NEXT: available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: available: '__sinh_finite' +CHECK-NEXT: available: '__sinhf_finite' +CHECK-NEXT: available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: available: '__sqrt_finite' +CHECK-NEXT: available: '__sqrtf_finite' +CHECK-NEXT: available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/i386-pc-windows-msvc.test b/llvm/test/Analysis/TargetLibraryInfo/i386-pc-windows-msvc.test new file mode 100644 index 0000000000000..65eb2f0e25869 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/i386-pc-windows-msvc.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=i386-pc-windows-msvc | FileCheck %s + +CHECK: TLI knows 523 symbols, 252 available for 'i386-pc-windows-msvc' +CHECK-NEXT: available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: not available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: not available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: not available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: not available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: not available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: not available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: not available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: not available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: not available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: not available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: not available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '__size_returning_new' +CHECK-NEXT: not available: '__size_returning_new_hot_cold' +CHECK-NEXT: not available: '__size_returning_new_aligned' +CHECK-NEXT: not available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: not available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: not available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: not available: 'acoshl' +CHECK-NEXT: not available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: not available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: not available: 'asinhl' +CHECK-NEXT: not available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: not available: 'atan2f' +CHECK-NEXT: not available: 'atan2l' +CHECK-NEXT: not available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: not available: 'atanhl' +CHECK-NEXT: not available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: not available: 'bcopy' +CHECK-NEXT: not available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: not available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: not available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: not available: 'ceilf' +CHECK-NEXT: not available: 'ceill' +CHECK-NEXT: not available: 'chmod' +CHECK-NEXT: not available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: not available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: not available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: not available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: not available: 'coshf' +CHECK-NEXT: not available: 'coshl' +CHECK-NEXT: not available: 'cosl' +CHECK-NEXT: not available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: not available: 'exp2l' +CHECK-NEXT: not available: 'expf' +CHECK-NEXT: not available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: not available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: not available: 'fabsf' +CHECK-NEXT: not available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: not available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: not available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: not available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: not available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: not available: 'floorf' +CHECK-NEXT: not available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: not available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: not available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: not available: 'fmodf' +CHECK-NEXT: not available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: not available: 'frexpf' +CHECK-NEXT: not available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: not available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: not available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: not available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: not available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: not available: 'ftrylockfile' +CHECK-NEXT: not available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: not available: 'getitimer' +CHECK-NEXT: not available: 'getlogin_r' +CHECK-NEXT: not available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: not available: 'gettimeofday' +CHECK-NEXT: not available: 'htonl' +CHECK-NEXT: not available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: not available: 'hypotf' +CHECK-NEXT: not available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: not available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: not available: 'ldexpf' +CHECK-NEXT: not available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: not available: 'log10f' +CHECK-NEXT: not available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: not available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: not available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: not available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: not available: 'logbl' +CHECK-NEXT: not available: 'logf' +CHECK-NEXT: not available: 'logl' +CHECK-NEXT: not available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: not available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: not available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: not available: 'modff' +CHECK-NEXT: not available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: not available: 'nearbyintl' +CHECK-NEXT: not available: 'ntohl' +CHECK-NEXT: not available: 'ntohs' +CHECK-NEXT: not available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: not available: 'opendir' +CHECK-NEXT: not available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: not available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: not available: 'powf' +CHECK-NEXT: not available: 'powl' +CHECK-NEXT: not available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: not available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: not available: 'read' +CHECK-NEXT: not available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: not available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: not available: 'remainderf' +CHECK-NEXT: not available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: not available: 'remquof' +CHECK-NEXT: not available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: not available: 'fdimf' +CHECK-NEXT: not available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: not available: 'rintl' +CHECK-NEXT: not available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: not available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: not available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: not available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: not available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: not available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: not available: 'sinhf' +CHECK-NEXT: not available: 'sinhl' +CHECK-NEXT: not available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: not available: 'sqrtf' +CHECK-NEXT: not available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: not available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: not available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: not available: 'stpcpy' +CHECK-NEXT: not available: 'stpncpy' +CHECK-NEXT: not available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: not available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: not available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: not available: 'tanhf' +CHECK-NEXT: not available: 'tanhl' +CHECK-NEXT: not available: 'tanl' +CHECK-NEXT: not available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: not available: 'truncl' +CHECK-NEXT: not available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: not available: 'unlink' +CHECK-NEXT: not available: 'unsetenv' +CHECK-NEXT: not available: 'utime' +CHECK-NEXT: not available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: not available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/i386-unknown-linux-musl.test b/llvm/test/Analysis/TargetLibraryInfo/i386-unknown-linux-musl.test new file mode 100644 index 0000000000000..b2ddfb4ca07fa --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/i386-unknown-linux-musl.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=i386-unknown-linux-musl | FileCheck %s + +CHECK: TLI knows 523 symbols, 406 available for 'i386-unknown-linux-musl' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/i686-apple-macosx.test b/llvm/test/Analysis/TargetLibraryInfo/i686-apple-macosx.test new file mode 100644 index 0000000000000..d0e4de4b9b38c --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/i686-apple-macosx.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=i686-apple-macosx | FileCheck %s + +CHECK: TLI knows 523 symbols, 407 available for 'i686-apple-macosx' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/i686-pc-cygwin.test b/llvm/test/Analysis/TargetLibraryInfo/i686-pc-cygwin.test new file mode 100644 index 0000000000000..69549dc9fe5d3 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/i686-pc-cygwin.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=i686-pc-cygwin | FileCheck %s + +CHECK: TLI knows 523 symbols, 402 available for 'i686-pc-cygwin' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/linux-arm-gnueabihf.test b/llvm/test/Analysis/TargetLibraryInfo/linux-arm-gnueabihf.test new file mode 100644 index 0000000000000..01fab81c89f9d --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/linux-arm-gnueabihf.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=linux-arm-gnueabihf | FileCheck %s + +CHECK: TLI knows 523 symbols, 402 available for 'linux-arm-gnueabihf' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/nvptx64-nvidia-cuda.test b/llvm/test/Analysis/TargetLibraryInfo/nvptx64-nvidia-cuda.test new file mode 100644 index 0000000000000..cad2787f2a2cd --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/nvptx64-nvidia-cuda.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=nvptx64-nvidia-cuda | FileCheck %s + +CHECK: TLI knows 523 symbols, 5 available for 'nvptx64-nvidia-cuda' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: not available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: not available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: not available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: not available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: not available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: not available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: not available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: not available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: not available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: not available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: not available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '__size_returning_new' +CHECK-NEXT: not available: '__size_returning_new_hot_cold' +CHECK-NEXT: not available: '__size_returning_new_aligned' +CHECK-NEXT: not available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: not available: '__atomic_load' +CHECK-NEXT: not available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: not available: '__cxa_atexit' +CHECK-NEXT: not available: 'atexit' +CHECK-NEXT: not available: 'abort' +CHECK-NEXT: not available: 'exit' +CHECK-NEXT: not available: '_Exit' +CHECK-NEXT: not available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: not available: '__cxa_throw' +CHECK-NEXT: not available: '__cxa_guard_abort' +CHECK-NEXT: not available: '__cxa_guard_acquire' +CHECK-NEXT: not available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: not available: '__memccpy_chk' +CHECK-NEXT: not available: '__memcpy_chk' +CHECK-NEXT: not available: '__memmove_chk' +CHECK-NEXT: not available: '__mempcpy_chk' +CHECK-NEXT: not available: '__memset_chk' +CHECK-NEXT: available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: not available: '__snprintf_chk' +CHECK-NEXT: not available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: not available: '__stpcpy_chk' +CHECK-NEXT: not available: '__stpncpy_chk' +CHECK-NEXT: not available: '__strcat_chk' +CHECK-NEXT: not available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: not available: '__strlcat_chk' +CHECK-NEXT: not available: '__strlcpy_chk' +CHECK-NEXT: not available: '__strlen_chk' +CHECK-NEXT: not available: '__strncat_chk' +CHECK-NEXT: not available: '__strncpy_chk' +CHECK-NEXT: not available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: not available: '__vsnprintf_chk' +CHECK-NEXT: not available: '__vsprintf_chk' +CHECK-NEXT: not available: 'abs' +CHECK-NEXT: not available: 'access' +CHECK-NEXT: not available: 'acos' +CHECK-NEXT: not available: 'acosf' +CHECK-NEXT: not available: 'acosh' +CHECK-NEXT: not available: 'acoshf' +CHECK-NEXT: not available: 'acoshl' +CHECK-NEXT: not available: 'acosl' +CHECK-NEXT: not available: 'aligned_alloc' +CHECK-NEXT: not available: 'asin' +CHECK-NEXT: not available: 'asinf' +CHECK-NEXT: not available: 'asinh' +CHECK-NEXT: not available: 'asinhf' +CHECK-NEXT: not available: 'asinhl' +CHECK-NEXT: not available: 'asinl' +CHECK-NEXT: not available: 'atan' +CHECK-NEXT: not available: 'atan2' +CHECK-NEXT: not available: 'atan2f' +CHECK-NEXT: not available: 'atan2l' +CHECK-NEXT: not available: 'atanf' +CHECK-NEXT: not available: 'atanh' +CHECK-NEXT: not available: 'atanhf' +CHECK-NEXT: not available: 'atanhl' +CHECK-NEXT: not available: 'atanl' +CHECK-NEXT: not available: 'atof' +CHECK-NEXT: not available: 'atoi' +CHECK-NEXT: not available: 'atol' +CHECK-NEXT: not available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: not available: 'bcopy' +CHECK-NEXT: not available: 'bzero' +CHECK-NEXT: not available: 'cabs' +CHECK-NEXT: not available: 'cabsf' +CHECK-NEXT: not available: 'cabsl' +CHECK-NEXT: not available: 'calloc' +CHECK-NEXT: not available: 'cbrt' +CHECK-NEXT: not available: 'cbrtf' +CHECK-NEXT: not available: 'cbrtl' +CHECK-NEXT: not available: 'ceil' +CHECK-NEXT: not available: 'ceilf' +CHECK-NEXT: not available: 'ceill' +CHECK-NEXT: not available: 'chmod' +CHECK-NEXT: not available: 'chown' +CHECK-NEXT: not available: 'clearerr' +CHECK-NEXT: not available: 'closedir' +CHECK-NEXT: not available: 'copysign' +CHECK-NEXT: not available: 'copysignf' +CHECK-NEXT: not available: 'copysignl' +CHECK-NEXT: not available: 'cos' +CHECK-NEXT: not available: 'cosf' +CHECK-NEXT: not available: 'cosh' +CHECK-NEXT: not available: 'coshf' +CHECK-NEXT: not available: 'coshl' +CHECK-NEXT: not available: 'cosl' +CHECK-NEXT: not available: 'ctermid' +CHECK-NEXT: not available: 'erf' +CHECK-NEXT: not available: 'erff' +CHECK-NEXT: not available: 'erfl' +CHECK-NEXT: not available: 'tgamma' +CHECK-NEXT: not available: 'tgammaf' +CHECK-NEXT: not available: 'tgammal' +CHECK-NEXT: not available: 'execl' +CHECK-NEXT: not available: 'execle' +CHECK-NEXT: not available: 'execlp' +CHECK-NEXT: not available: 'execv' +CHECK-NEXT: not available: 'execvP' +CHECK-NEXT: not available: 'execve' +CHECK-NEXT: not available: 'execvp' +CHECK-NEXT: not available: 'execvpe' +CHECK-NEXT: not available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: not available: 'exp2' +CHECK-NEXT: not available: 'exp2f' +CHECK-NEXT: not available: 'exp2l' +CHECK-NEXT: not available: 'expf' +CHECK-NEXT: not available: 'expl' +CHECK-NEXT: not available: 'expm1' +CHECK-NEXT: not available: 'expm1f' +CHECK-NEXT: not available: 'expm1l' +CHECK-NEXT: not available: 'fabs' +CHECK-NEXT: not available: 'fabsf' +CHECK-NEXT: not available: 'fabsl' +CHECK-NEXT: not available: 'fclose' +CHECK-NEXT: not available: 'fdopen' +CHECK-NEXT: not available: 'feof' +CHECK-NEXT: not available: 'ferror' +CHECK-NEXT: not available: 'fflush' +CHECK-NEXT: not available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: not available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: not available: 'fgetpos' +CHECK-NEXT: not available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: not available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: not available: 'flockfile' +CHECK-NEXT: not available: 'floor' +CHECK-NEXT: not available: 'floorf' +CHECK-NEXT: not available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: not available: 'fmax' +CHECK-NEXT: not available: 'fmaxf' +CHECK-NEXT: not available: 'fmaxl' +CHECK-NEXT: not available: 'fmin' +CHECK-NEXT: not available: 'fminf' +CHECK-NEXT: not available: 'fminl' +CHECK-NEXT: not available: 'fmaximum_num' +CHECK-NEXT: not available: 'fmaximum_numf' +CHECK-NEXT: not available: 'fmaximum_numl' +CHECK-NEXT: not available: 'fminimum_num' +CHECK-NEXT: not available: 'fminimum_numf' +CHECK-NEXT: not available: 'fminimum_numl' +CHECK-NEXT: not available: 'fmod' +CHECK-NEXT: not available: 'fmodf' +CHECK-NEXT: not available: 'fmodl' +CHECK-NEXT: not available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: not available: 'fork' +CHECK-NEXT: not available: 'fprintf' +CHECK-NEXT: not available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: not available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: not available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: not available: 'frexp' +CHECK-NEXT: not available: 'frexpf' +CHECK-NEXT: not available: 'frexpl' +CHECK-NEXT: not available: 'fscanf' +CHECK-NEXT: not available: 'fseek' +CHECK-NEXT: not available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: not available: 'fsetpos' +CHECK-NEXT: not available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: not available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: not available: 'ftell' +CHECK-NEXT: not available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: not available: 'ftrylockfile' +CHECK-NEXT: not available: 'funlockfile' +CHECK-NEXT: not available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: not available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: not available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: not available: 'getenv' +CHECK-NEXT: not available: 'getitimer' +CHECK-NEXT: not available: 'getlogin_r' +CHECK-NEXT: not available: 'getpwnam' +CHECK-NEXT: not available: 'gets' +CHECK-NEXT: not available: 'gettimeofday' +CHECK-NEXT: not available: 'htonl' +CHECK-NEXT: not available: 'htons' +CHECK-NEXT: not available: 'hypot' +CHECK-NEXT: not available: 'hypotf' +CHECK-NEXT: not available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: not available: 'isascii' +CHECK-NEXT: not available: 'isdigit' +CHECK-NEXT: not available: 'labs' +CHECK-NEXT: not available: 'lchown' +CHECK-NEXT: not available: 'ldexp' +CHECK-NEXT: not available: 'ldexpf' +CHECK-NEXT: not available: 'ldexpl' +CHECK-NEXT: not available: 'llabs' +CHECK-NEXT: not available: 'log' +CHECK-NEXT: not available: 'log10' +CHECK-NEXT: not available: 'log10f' +CHECK-NEXT: not available: 'log10l' +CHECK-NEXT: not available: 'log1p' +CHECK-NEXT: not available: 'log1pf' +CHECK-NEXT: not available: 'log1pl' +CHECK-NEXT: not available: 'log2' +CHECK-NEXT: not available: 'log2f' +CHECK-NEXT: not available: 'log2l' +CHECK-NEXT: not available: 'ilogb' +CHECK-NEXT: not available: 'ilogbf' +CHECK-NEXT: not available: 'ilogbl' +CHECK-NEXT: not available: 'logb' +CHECK-NEXT: not available: 'logbf' +CHECK-NEXT: not available: 'logbl' +CHECK-NEXT: not available: 'logf' +CHECK-NEXT: not available: 'logl' +CHECK-NEXT: not available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: not available: 'memccpy' +CHECK-NEXT: not available: 'memchr' +CHECK-NEXT: not available: 'memcmp' +CHECK-NEXT: not available: 'memcpy' +CHECK-NEXT: not available: 'memmove' +CHECK-NEXT: not available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: not available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: not available: 'mkdir' +CHECK-NEXT: not available: 'mktime' +CHECK-NEXT: not available: 'modf' +CHECK-NEXT: not available: 'modff' +CHECK-NEXT: not available: 'modfl' +CHECK-NEXT: not available: 'nan' +CHECK-NEXT: not available: 'nanf' +CHECK-NEXT: not available: 'nanl' +CHECK-NEXT: not available: 'nearbyint' +CHECK-NEXT: not available: 'nearbyintf' +CHECK-NEXT: not available: 'nearbyintl' +CHECK-NEXT: not available: 'ntohl' +CHECK-NEXT: not available: 'ntohs' +CHECK-NEXT: not available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: not available: 'opendir' +CHECK-NEXT: not available: 'pclose' +CHECK-NEXT: not available: 'perror' +CHECK-NEXT: not available: 'popen' +CHECK-NEXT: not available: 'posix_memalign' +CHECK-NEXT: not available: 'pow' +CHECK-NEXT: not available: 'powf' +CHECK-NEXT: not available: 'powl' +CHECK-NEXT: not available: 'pread' +CHECK-NEXT: not available: 'printf' +CHECK-NEXT: not available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: not available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: not available: 'puts' +CHECK-NEXT: not available: 'pwrite' +CHECK-NEXT: not available: 'qsort' +CHECK-NEXT: not available: 'read' +CHECK-NEXT: not available: 'readlink' +CHECK-NEXT: not available: 'realloc' +CHECK-NEXT: not available: 'reallocf' +CHECK-NEXT: not available: 'reallocarray' +CHECK-NEXT: not available: 'realpath' +CHECK-NEXT: not available: 'remainder' +CHECK-NEXT: not available: 'remainderf' +CHECK-NEXT: not available: 'remainderl' +CHECK-NEXT: not available: 'remquo' +CHECK-NEXT: not available: 'remquof' +CHECK-NEXT: not available: 'remquol' +CHECK-NEXT: not available: 'fdim' +CHECK-NEXT: not available: 'fdimf' +CHECK-NEXT: not available: 'fdiml' +CHECK-NEXT: not available: 'remove' +CHECK-NEXT: not available: 'rename' +CHECK-NEXT: not available: 'rewind' +CHECK-NEXT: not available: 'rint' +CHECK-NEXT: not available: 'rintf' +CHECK-NEXT: not available: 'rintl' +CHECK-NEXT: not available: 'rmdir' +CHECK-NEXT: not available: 'round' +CHECK-NEXT: not available: 'roundeven' +CHECK-NEXT: not available: 'roundevenf' +CHECK-NEXT: not available: 'roundevenl' +CHECK-NEXT: not available: 'roundf' +CHECK-NEXT: not available: 'roundl' +CHECK-NEXT: not available: 'scalbln' +CHECK-NEXT: not available: 'scalblnf' +CHECK-NEXT: not available: 'scalblnl' +CHECK-NEXT: not available: 'scalbn' +CHECK-NEXT: not available: 'scalbnf' +CHECK-NEXT: not available: 'scalbnl' +CHECK-NEXT: not available: 'scanf' +CHECK-NEXT: not available: 'setbuf' +CHECK-NEXT: not available: 'setitimer' +CHECK-NEXT: not available: 'setvbuf' +CHECK-NEXT: not available: 'sin' +CHECK-NEXT: not available: 'sinf' +CHECK-NEXT: not available: 'sinh' +CHECK-NEXT: not available: 'sinhf' +CHECK-NEXT: not available: 'sinhl' +CHECK-NEXT: not available: 'sinl' +CHECK-NEXT: not available: 'sincos' +CHECK-NEXT: not available: 'sincosf' +CHECK-NEXT: not available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: not available: 'snprintf' +CHECK-NEXT: not available: 'sprintf' +CHECK-NEXT: not available: 'sqrt' +CHECK-NEXT: not available: 'sqrtf' +CHECK-NEXT: not available: 'sqrtl' +CHECK-NEXT: not available: 'sscanf' +CHECK-NEXT: not available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: not available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: not available: 'stpcpy' +CHECK-NEXT: not available: 'stpncpy' +CHECK-NEXT: not available: 'strcasecmp' +CHECK-NEXT: not available: 'strcat' +CHECK-NEXT: not available: 'strchr' +CHECK-NEXT: not available: 'strcmp' +CHECK-NEXT: not available: 'strcoll' +CHECK-NEXT: not available: 'strcpy' +CHECK-NEXT: not available: 'strcspn' +CHECK-NEXT: not available: 'strdup' +CHECK-NEXT: not available: 'strlcat' +CHECK-NEXT: not available: 'strlcpy' +CHECK-NEXT: not available: 'strlen' +CHECK-NEXT: not available: 'strncasecmp' +CHECK-NEXT: not available: 'strncat' +CHECK-NEXT: not available: 'strncmp' +CHECK-NEXT: not available: 'strncpy' +CHECK-NEXT: not available: 'strndup' +CHECK-NEXT: not available: 'strnlen' +CHECK-NEXT: not available: 'strpbrk' +CHECK-NEXT: not available: 'strrchr' +CHECK-NEXT: not available: 'strspn' +CHECK-NEXT: not available: 'strstr' +CHECK-NEXT: not available: 'strtod' +CHECK-NEXT: not available: 'strtof' +CHECK-NEXT: not available: 'strtok' +CHECK-NEXT: not available: 'strtok_r' +CHECK-NEXT: not available: 'strtol' +CHECK-NEXT: not available: 'strtold' +CHECK-NEXT: not available: 'strtoll' +CHECK-NEXT: not available: 'strtoul' +CHECK-NEXT: not available: 'strtoull' +CHECK-NEXT: not available: 'strxfrm' +CHECK-NEXT: not available: 'system' +CHECK-NEXT: not available: 'tan' +CHECK-NEXT: not available: 'tanf' +CHECK-NEXT: not available: 'tanh' +CHECK-NEXT: not available: 'tanhf' +CHECK-NEXT: not available: 'tanhl' +CHECK-NEXT: not available: 'tanl' +CHECK-NEXT: not available: 'times' +CHECK-NEXT: not available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: not available: 'toascii' +CHECK-NEXT: not available: 'trunc' +CHECK-NEXT: not available: 'truncf' +CHECK-NEXT: not available: 'truncl' +CHECK-NEXT: not available: 'uname' +CHECK-NEXT: not available: 'ungetc' +CHECK-NEXT: not available: 'unlink' +CHECK-NEXT: not available: 'unsetenv' +CHECK-NEXT: not available: 'utime' +CHECK-NEXT: not available: 'utimes' +CHECK-NEXT: not available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: not available: 'vfprintf' +CHECK-NEXT: not available: 'vfscanf' +CHECK-NEXT: not available: 'vprintf' +CHECK-NEXT: not available: 'vscanf' +CHECK-NEXT: not available: 'vsnprintf' +CHECK-NEXT: not available: 'vsprintf' +CHECK-NEXT: not available: 'vsscanf' +CHECK-NEXT: not available: 'wcslen' +CHECK-NEXT: not available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/powerpc64-ibm-aix-xcoff.test b/llvm/test/Analysis/TargetLibraryInfo/powerpc64-ibm-aix-xcoff.test new file mode 100644 index 0000000000000..1650d9f6c5aff --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/powerpc64-ibm-aix-xcoff.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=powerpc64-ibm-aix-xcoff | FileCheck %s + +CHECK: TLI knows 523 symbols, 405 available for 'powerpc64-ibm-aix-xcoff' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: available: 'vec_calloc' +CHECK-NEXT: available: 'vec_free' +CHECK-NEXT: available: 'vec_malloc' +CHECK-NEXT: available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/sparc64-unknown-solaris.test b/llvm/test/Analysis/TargetLibraryInfo/sparc64-unknown-solaris.test new file mode 100644 index 0000000000000..efbb147962334 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/sparc64-unknown-solaris.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=sparc64-unknown-solaris | FileCheck %s + +CHECK: TLI knows 523 symbols, 403 available for 'sparc64-unknown-solaris' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/thumbv7-apple-ios3.0.0.test b/llvm/test/Analysis/TargetLibraryInfo/thumbv7-apple-ios3.0.0.test new file mode 100644 index 0000000000000..4cb665b979ff1 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/thumbv7-apple-ios3.0.0.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=thumbv7-apple-ios3.0.0 | FileCheck %s + +CHECK: TLI knows 523 symbols, 407 available for 'thumbv7-apple-ios3.0.0' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: available: 'memset_pattern16' +CHECK-NEXT: available: 'memset_pattern4' +CHECK-NEXT: available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/thumbv7-windows-msvc.test b/llvm/test/Analysis/TargetLibraryInfo/thumbv7-windows-msvc.test new file mode 100644 index 0000000000000..dee2a3fb50bb3 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/thumbv7-windows-msvc.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=thumbv7-windows-msvc | FileCheck %s + +CHECK: TLI knows 523 symbols, 402 available for 'thumbv7-windows-msvc' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/wasm64-unknown-emscripten.test b/llvm/test/Analysis/TargetLibraryInfo/wasm64-unknown-emscripten.test new file mode 100644 index 0000000000000..1722725019ab6 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/wasm64-unknown-emscripten.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=wasm64-unknown-emscripten | FileCheck %s + +CHECK: TLI knows 523 symbols, 408 available for 'wasm64-unknown-emscripten' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: available: '__small_fprintf' +CHECK-NEXT: available: '__small_printf' +CHECK-NEXT: available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/x86_64-apple-darwin10.9.0.test b/llvm/test/Analysis/TargetLibraryInfo/x86_64-apple-darwin10.9.0.test new file mode 100644 index 0000000000000..9496e9cdd207c --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/x86_64-apple-darwin10.9.0.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=x86_64-apple-darwin10.9.0 | FileCheck %s + +CHECK: TLI knows 523 symbols, 410 available for 'x86_64-apple-darwin10.9.0' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: available: 'memset_pattern16' +CHECK-NEXT: available: 'memset_pattern4' +CHECK-NEXT: available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/x86_64-apple-darwin10.test b/llvm/test/Analysis/TargetLibraryInfo/x86_64-apple-darwin10.test new file mode 100644 index 0000000000000..11ce2131df25b --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/x86_64-apple-darwin10.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=x86_64-apple-darwin10 | FileCheck %s + +CHECK: TLI knows 523 symbols, 410 available for 'x86_64-apple-darwin10' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: available: 'memset_pattern16' +CHECK-NEXT: available: 'memset_pattern4' +CHECK-NEXT: available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/x86_64-apple-macosx10.5.0.test b/llvm/test/Analysis/TargetLibraryInfo/x86_64-apple-macosx10.5.0.test new file mode 100644 index 0000000000000..14ac222d35c87 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/x86_64-apple-macosx10.5.0.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=x86_64-apple-macosx10.5.0 | FileCheck %s + +CHECK: TLI knows 523 symbols, 410 available for 'x86_64-apple-macosx10.5.0' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: available: 'memset_pattern16' +CHECK-NEXT: available: 'memset_pattern4' +CHECK-NEXT: available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/x86_64-pc-cygwin.test b/llvm/test/Analysis/TargetLibraryInfo/x86_64-pc-cygwin.test new file mode 100644 index 0000000000000..c23002c3ffd9c --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/x86_64-pc-cygwin.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=x86_64-pc-cygwin | FileCheck %s + +CHECK: TLI knows 523 symbols, 402 available for 'x86_64-pc-cygwin' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/x86_64-pc-windows-msvc.test b/llvm/test/Analysis/TargetLibraryInfo/x86_64-pc-windows-msvc.test new file mode 100644 index 0000000000000..d4dda65f18788 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/x86_64-pc-windows-msvc.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=x86_64-pc-windows-msvc | FileCheck %s + +CHECK: TLI knows 523 symbols, 275 available for 'x86_64-pc-windows-msvc' +CHECK-NEXT: available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: not available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: not available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: not available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: not available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: not available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: not available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: not available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: not available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: not available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: not available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: not available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '__size_returning_new' +CHECK-NEXT: not available: '__size_returning_new_hot_cold' +CHECK-NEXT: not available: '__size_returning_new_aligned' +CHECK-NEXT: not available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: not available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: not available: 'acoshl' +CHECK-NEXT: not available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: not available: 'asinhl' +CHECK-NEXT: not available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: not available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: not available: 'atanhl' +CHECK-NEXT: not available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: not available: 'bcopy' +CHECK-NEXT: not available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: not available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: not available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: not available: 'ceill' +CHECK-NEXT: not available: 'chmod' +CHECK-NEXT: not available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: not available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: not available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: not available: 'coshl' +CHECK-NEXT: not available: 'cosl' +CHECK-NEXT: not available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: not available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: not available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: not available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: not available: 'fabsf' +CHECK-NEXT: not available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: not available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: not available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: not available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: not available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: not available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: not available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: not available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: not available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: not available: 'frexpf' +CHECK-NEXT: not available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: not available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: not available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: not available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: not available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: not available: 'ftrylockfile' +CHECK-NEXT: not available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: not available: 'getitimer' +CHECK-NEXT: not available: 'getlogin_r' +CHECK-NEXT: not available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: not available: 'gettimeofday' +CHECK-NEXT: not available: 'htonl' +CHECK-NEXT: not available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: not available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: not available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: not available: 'ldexpf' +CHECK-NEXT: not available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: not available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: not available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: not available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: not available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: not available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: not available: 'logl' +CHECK-NEXT: not available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: not available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: not available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: not available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: not available: 'nearbyintl' +CHECK-NEXT: not available: 'ntohl' +CHECK-NEXT: not available: 'ntohs' +CHECK-NEXT: not available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: not available: 'opendir' +CHECK-NEXT: not available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: not available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: not available: 'powl' +CHECK-NEXT: not available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: not available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: not available: 'read' +CHECK-NEXT: not available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: not available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: not available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: not available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: not available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: not available: 'rintl' +CHECK-NEXT: not available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: not available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: not available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: not available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: not available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: not available: 'sinhl' +CHECK-NEXT: not available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: not available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: not available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: not available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: not available: 'stpcpy' +CHECK-NEXT: not available: 'stpncpy' +CHECK-NEXT: not available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: not available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: not available: 'tanhl' +CHECK-NEXT: not available: 'tanl' +CHECK-NEXT: not available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: not available: 'truncl' +CHECK-NEXT: not available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: not available: 'unlink' +CHECK-NEXT: not available: 'unsetenv' +CHECK-NEXT: not available: 'utime' +CHECK-NEXT: not available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: not available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/x86_64-pc-windows-msvc17.test b/llvm/test/Analysis/TargetLibraryInfo/x86_64-pc-windows-msvc17.test new file mode 100644 index 0000000000000..2653cba3a0271 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/x86_64-pc-windows-msvc17.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=x86_64-pc-windows-msvc17 | FileCheck %s + +CHECK: TLI knows 523 symbols, 242 available for 'x86_64-pc-windows-msvc17' +CHECK-NEXT: available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: not available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: not available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: not available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: not available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: not available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: not available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: not available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: not available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: not available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: not available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: not available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '__size_returning_new' +CHECK-NEXT: not available: '__size_returning_new_hot_cold' +CHECK-NEXT: not available: '__size_returning_new_aligned' +CHECK-NEXT: not available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: not available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: not available: 'acosh' +CHECK-NEXT: not available: 'acoshf' +CHECK-NEXT: not available: 'acoshl' +CHECK-NEXT: not available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: not available: 'asinh' +CHECK-NEXT: not available: 'asinhf' +CHECK-NEXT: not available: 'asinhl' +CHECK-NEXT: not available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: not available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: not available: 'atanh' +CHECK-NEXT: not available: 'atanhf' +CHECK-NEXT: not available: 'atanhl' +CHECK-NEXT: not available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: not available: 'bcopy' +CHECK-NEXT: not available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: not available: 'cabsf' +CHECK-NEXT: not available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: not available: 'cbrt' +CHECK-NEXT: not available: 'cbrtf' +CHECK-NEXT: not available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: not available: 'ceill' +CHECK-NEXT: not available: 'chmod' +CHECK-NEXT: not available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: not available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: not available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: not available: 'coshl' +CHECK-NEXT: not available: 'cosl' +CHECK-NEXT: not available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: not available: 'exp2' +CHECK-NEXT: not available: 'exp2f' +CHECK-NEXT: not available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: not available: 'expl' +CHECK-NEXT: not available: 'expm1' +CHECK-NEXT: not available: 'expm1f' +CHECK-NEXT: not available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: not available: 'fabsf' +CHECK-NEXT: not available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: not available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: not available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: not available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: not available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: not available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: not available: 'fmax' +CHECK-NEXT: not available: 'fmaxf' +CHECK-NEXT: not available: 'fmaxl' +CHECK-NEXT: not available: 'fmin' +CHECK-NEXT: not available: 'fminf' +CHECK-NEXT: not available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: not available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: not available: 'frexpf' +CHECK-NEXT: not available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: not available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: not available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: not available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: not available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: not available: 'ftrylockfile' +CHECK-NEXT: not available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: not available: 'getitimer' +CHECK-NEXT: not available: 'getlogin_r' +CHECK-NEXT: not available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: not available: 'gettimeofday' +CHECK-NEXT: not available: 'htonl' +CHECK-NEXT: not available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: not available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: not available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: not available: 'ldexpf' +CHECK-NEXT: not available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: not available: 'log10l' +CHECK-NEXT: not available: 'log1p' +CHECK-NEXT: not available: 'log1pf' +CHECK-NEXT: not available: 'log1pl' +CHECK-NEXT: not available: 'log2' +CHECK-NEXT: not available: 'log2f' +CHECK-NEXT: not available: 'log2l' +CHECK-NEXT: not available: 'ilogb' +CHECK-NEXT: not available: 'ilogbf' +CHECK-NEXT: not available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: not available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: not available: 'logl' +CHECK-NEXT: not available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: not available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: not available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: not available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: not available: 'nearbyintl' +CHECK-NEXT: not available: 'ntohl' +CHECK-NEXT: not available: 'ntohs' +CHECK-NEXT: not available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: not available: 'opendir' +CHECK-NEXT: not available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: not available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: not available: 'powl' +CHECK-NEXT: not available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: not available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: not available: 'read' +CHECK-NEXT: not available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: not available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: not available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: not available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: not available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: not available: 'rint' +CHECK-NEXT: not available: 'rintf' +CHECK-NEXT: not available: 'rintl' +CHECK-NEXT: not available: 'rmdir' +CHECK-NEXT: not available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: not available: 'roundf' +CHECK-NEXT: not available: 'roundl' +CHECK-NEXT: not available: 'scalbln' +CHECK-NEXT: not available: 'scalblnf' +CHECK-NEXT: not available: 'scalblnl' +CHECK-NEXT: not available: 'scalbn' +CHECK-NEXT: not available: 'scalbnf' +CHECK-NEXT: not available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: not available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: not available: 'sinhl' +CHECK-NEXT: not available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: not available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: not available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: not available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: not available: 'stpcpy' +CHECK-NEXT: not available: 'stpncpy' +CHECK-NEXT: not available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: not available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: not available: 'tanhl' +CHECK-NEXT: not available: 'tanl' +CHECK-NEXT: not available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: not available: 'trunc' +CHECK-NEXT: not available: 'truncf' +CHECK-NEXT: not available: 'truncl' +CHECK-NEXT: not available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: not available: 'unlink' +CHECK-NEXT: not available: 'unsetenv' +CHECK-NEXT: not available: 'utime' +CHECK-NEXT: not available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: not available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/x86_64-pc-windows-msvc19.test b/llvm/test/Analysis/TargetLibraryInfo/x86_64-pc-windows-msvc19.test new file mode 100644 index 0000000000000..0844142daced6 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/x86_64-pc-windows-msvc19.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=x86_64-pc-windows-msvc19 | FileCheck %s + +CHECK: TLI knows 523 symbols, 275 available for 'x86_64-pc-windows-msvc19' +CHECK-NEXT: available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: not available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: not available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: not available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: not available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: not available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: not available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: not available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: not available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: not available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: not available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: not available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '__size_returning_new' +CHECK-NEXT: not available: '__size_returning_new_hot_cold' +CHECK-NEXT: not available: '__size_returning_new_aligned' +CHECK-NEXT: not available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: not available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: not available: 'acoshl' +CHECK-NEXT: not available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: not available: 'asinhl' +CHECK-NEXT: not available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: not available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: not available: 'atanhl' +CHECK-NEXT: not available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: not available: 'bcopy' +CHECK-NEXT: not available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: not available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: not available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: not available: 'ceill' +CHECK-NEXT: not available: 'chmod' +CHECK-NEXT: not available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: not available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: not available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: not available: 'coshl' +CHECK-NEXT: not available: 'cosl' +CHECK-NEXT: not available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: not available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: not available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: not available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: not available: 'fabsf' +CHECK-NEXT: not available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: not available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: not available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: not available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: not available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: not available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: not available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: not available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: not available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: not available: 'frexpf' +CHECK-NEXT: not available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: not available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: not available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: not available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: not available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: not available: 'ftrylockfile' +CHECK-NEXT: not available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: not available: 'getitimer' +CHECK-NEXT: not available: 'getlogin_r' +CHECK-NEXT: not available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: not available: 'gettimeofday' +CHECK-NEXT: not available: 'htonl' +CHECK-NEXT: not available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: not available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: not available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: not available: 'ldexpf' +CHECK-NEXT: not available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: not available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: not available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: not available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: not available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: not available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: not available: 'logl' +CHECK-NEXT: not available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: not available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: not available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: not available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: not available: 'nearbyintl' +CHECK-NEXT: not available: 'ntohl' +CHECK-NEXT: not available: 'ntohs' +CHECK-NEXT: not available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: not available: 'opendir' +CHECK-NEXT: not available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: not available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: not available: 'powl' +CHECK-NEXT: not available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: not available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: not available: 'read' +CHECK-NEXT: not available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: not available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: not available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: not available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: not available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: not available: 'rintl' +CHECK-NEXT: not available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: not available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: not available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: not available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: not available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: not available: 'sinhl' +CHECK-NEXT: not available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: not available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: not available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: not available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: not available: 'stpcpy' +CHECK-NEXT: not available: 'stpncpy' +CHECK-NEXT: not available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: not available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: not available: 'tanhl' +CHECK-NEXT: not available: 'tanl' +CHECK-NEXT: not available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: not available: 'truncl' +CHECK-NEXT: not available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: not available: 'unlink' +CHECK-NEXT: not available: 'unsetenv' +CHECK-NEXT: not available: 'utime' +CHECK-NEXT: not available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: not available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/x86_64-scei-ps4.test b/llvm/test/Analysis/TargetLibraryInfo/x86_64-scei-ps4.test new file mode 100644 index 0000000000000..2eae35ffdb0ad --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/x86_64-scei-ps4.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=x86_64-scei-ps4 | FileCheck %s + +CHECK: TLI knows 523 symbols, 289 available for 'x86_64-scei-ps4' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: not available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: not available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: not available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: not available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: not available: '__atomic_load' +CHECK-NEXT: not available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: not available: '__kmpc_alloc_shared' +CHECK-NEXT: not available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: not available: '__memccpy_chk' +CHECK-NEXT: not available: '__memcpy_chk' +CHECK-NEXT: not available: '__memmove_chk' +CHECK-NEXT: not available: '__mempcpy_chk' +CHECK-NEXT: not available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: not available: '__snprintf_chk' +CHECK-NEXT: not available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: not available: '__stpcpy_chk' +CHECK-NEXT: not available: '__stpncpy_chk' +CHECK-NEXT: not available: '__strcat_chk' +CHECK-NEXT: not available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: not available: '__strlcat_chk' +CHECK-NEXT: not available: '__strlcpy_chk' +CHECK-NEXT: not available: '__strlen_chk' +CHECK-NEXT: not available: '__strncat_chk' +CHECK-NEXT: not available: '__strncpy_chk' +CHECK-NEXT: not available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: not available: '__vsnprintf_chk' +CHECK-NEXT: not available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: not available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: not available: 'bcopy' +CHECK-NEXT: not available: 'bzero' +CHECK-NEXT: not available: 'cabs' +CHECK-NEXT: not available: 'cabsf' +CHECK-NEXT: not available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: not available: 'chmod' +CHECK-NEXT: not available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: not available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: not available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: not available: 'execl' +CHECK-NEXT: not available: 'execle' +CHECK-NEXT: not available: 'execlp' +CHECK-NEXT: not available: 'execv' +CHECK-NEXT: not available: 'execvP' +CHECK-NEXT: not available: 'execve' +CHECK-NEXT: not available: 'execvp' +CHECK-NEXT: not available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: not available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: not available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: not available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: not available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: not available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: not available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: not available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: not available: 'ftrylockfile' +CHECK-NEXT: not available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: not available: 'getenv' +CHECK-NEXT: not available: 'getitimer' +CHECK-NEXT: not available: 'getlogin_r' +CHECK-NEXT: not available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: not available: 'gettimeofday' +CHECK-NEXT: not available: 'htonl' +CHECK-NEXT: not available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: not available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: not available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: not available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: available: 'memalign' +CHECK-NEXT: not available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: not available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: not available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: not available: 'ntohl' +CHECK-NEXT: not available: 'ntohs' +CHECK-NEXT: not available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: not available: 'opendir' +CHECK-NEXT: not available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: not available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: not available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: not available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: not available: 'read' +CHECK-NEXT: not available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: not available: 'reallocf' +CHECK-NEXT: not available: 'reallocarray' +CHECK-NEXT: not available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: not available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: not available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: not available: 'roundeven' +CHECK-NEXT: not available: 'roundevenf' +CHECK-NEXT: not available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: not available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: not available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: not available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: not available: 'stpcpy' +CHECK-NEXT: not available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: not available: 'strlcat' +CHECK-NEXT: not available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: not available: 'strndup' +CHECK-NEXT: not available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: not available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: not available: 'times' +CHECK-NEXT: not available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: not available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: not available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: not available: 'unlink' +CHECK-NEXT: not available: 'unsetenv' +CHECK-NEXT: not available: 'utime' +CHECK-NEXT: not available: 'utimes' +CHECK-NEXT: not available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: not available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/x86_64-sie-ps5.test b/llvm/test/Analysis/TargetLibraryInfo/x86_64-sie-ps5.test new file mode 100644 index 0000000000000..9cc6cb746393d --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/x86_64-sie-ps5.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=x86_64-sie-ps5 | FileCheck %s + +CHECK: TLI knows 523 symbols, 289 available for 'x86_64-sie-ps5' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: not available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: not available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: not available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: not available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: not available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: not available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: not available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: not available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: not available: '__atomic_load' +CHECK-NEXT: not available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: not available: '__kmpc_alloc_shared' +CHECK-NEXT: not available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: not available: '__memccpy_chk' +CHECK-NEXT: not available: '__memcpy_chk' +CHECK-NEXT: not available: '__memmove_chk' +CHECK-NEXT: not available: '__mempcpy_chk' +CHECK-NEXT: not available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: not available: '__snprintf_chk' +CHECK-NEXT: not available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: not available: '__stpcpy_chk' +CHECK-NEXT: not available: '__stpncpy_chk' +CHECK-NEXT: not available: '__strcat_chk' +CHECK-NEXT: not available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: not available: '__strlcat_chk' +CHECK-NEXT: not available: '__strlcpy_chk' +CHECK-NEXT: not available: '__strlen_chk' +CHECK-NEXT: not available: '__strncat_chk' +CHECK-NEXT: not available: '__strncpy_chk' +CHECK-NEXT: not available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: not available: '__vsnprintf_chk' +CHECK-NEXT: not available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: not available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: not available: 'bcopy' +CHECK-NEXT: not available: 'bzero' +CHECK-NEXT: not available: 'cabs' +CHECK-NEXT: not available: 'cabsf' +CHECK-NEXT: not available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: not available: 'chmod' +CHECK-NEXT: not available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: not available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: not available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: not available: 'execl' +CHECK-NEXT: not available: 'execle' +CHECK-NEXT: not available: 'execlp' +CHECK-NEXT: not available: 'execv' +CHECK-NEXT: not available: 'execvP' +CHECK-NEXT: not available: 'execve' +CHECK-NEXT: not available: 'execvp' +CHECK-NEXT: not available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: not available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: not available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: not available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: not available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: not available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: not available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: not available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: not available: 'ftrylockfile' +CHECK-NEXT: not available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: not available: 'getenv' +CHECK-NEXT: not available: 'getitimer' +CHECK-NEXT: not available: 'getlogin_r' +CHECK-NEXT: not available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: not available: 'gettimeofday' +CHECK-NEXT: not available: 'htonl' +CHECK-NEXT: not available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: not available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: not available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: not available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: available: 'memalign' +CHECK-NEXT: not available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: not available: 'mempcpy' +CHECK-NEXT: not available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: not available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: not available: 'ntohl' +CHECK-NEXT: not available: 'ntohs' +CHECK-NEXT: not available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: not available: 'opendir' +CHECK-NEXT: not available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: not available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: not available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: not available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: not available: 'read' +CHECK-NEXT: not available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: not available: 'reallocf' +CHECK-NEXT: not available: 'reallocarray' +CHECK-NEXT: not available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: not available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: not available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: not available: 'roundeven' +CHECK-NEXT: not available: 'roundevenf' +CHECK-NEXT: not available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: not available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: not available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: not available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: not available: 'stpcpy' +CHECK-NEXT: not available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: not available: 'strlcat' +CHECK-NEXT: not available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: not available: 'strndup' +CHECK-NEXT: not available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: not available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: not available: 'times' +CHECK-NEXT: not available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: not available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: not available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: not available: 'unlink' +CHECK-NEXT: not available: 'unsetenv' +CHECK-NEXT: not available: 'utime' +CHECK-NEXT: not available: 'utimes' +CHECK-NEXT: not available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: not available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/x86_64-unknown-freebsd.test b/llvm/test/Analysis/TargetLibraryInfo/x86_64-unknown-freebsd.test new file mode 100644 index 0000000000000..72c855af37ad8 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/x86_64-unknown-freebsd.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=x86_64-unknown-freebsd | FileCheck %s + +CHECK: TLI knows 523 symbols, 408 available for 'x86_64-unknown-freebsd' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: available: 'ffsl' +CHECK-NEXT: available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: available: 'fls' +CHECK-NEXT: available: 'flsl' +CHECK-NEXT: available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/x86_64-unknown-unknown-gnu.test b/llvm/test/Analysis/TargetLibraryInfo/x86_64-unknown-unknown-gnu.test new file mode 100644 index 0000000000000..1dd39c1555dd3 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/x86_64-unknown-unknown-gnu.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=x86_64-unknown-unknown-gnu | FileCheck %s + +CHECK: TLI knows 523 symbols, 402 available for 'x86_64-unknown-unknown-gnu' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/x86_64-unknown-unknown.test b/llvm/test/Analysis/TargetLibraryInfo/x86_64-unknown-unknown.test new file mode 100644 index 0000000000000..fccf11329bbdb --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/x86_64-unknown-unknown.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=x86_64-unknown-unknown | FileCheck %s + +CHECK: TLI knows 523 symbols, 402 available for 'x86_64-unknown-unknown' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: not available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: not available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: not available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/test/Analysis/TargetLibraryInfo/xcore-xmos-elf.test b/llvm/test/Analysis/TargetLibraryInfo/xcore-xmos-elf.test new file mode 100644 index 0000000000000..1f335487d28b6 --- /dev/null +++ b/llvm/test/Analysis/TargetLibraryInfo/xcore-xmos-elf.test @@ -0,0 +1,526 @@ +# RUN: llvm-tli-checker --dump-tli --triple=xcore-xmos-elf | FileCheck %s + +CHECK: TLI knows 523 symbols, 405 available for 'xcore-xmos-elf' +CHECK-NEXT: not available: '??2@YAPAXI@Z' aka void * __cdecl operator new(unsigned int) +CHECK-NEXT: not available: '??2@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??2@YAPEAX_K@Z' aka void * __cdecl operator new(unsigned __int64) +CHECK-NEXT: not available: '??2@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new(unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPAXI@Z' aka void __cdecl operator delete(void *, unsigned int) +CHECK-NEXT: not available: '??3@YAXPEAX@Z' aka void __cdecl operator delete(void *) +CHECK-NEXT: not available: '??3@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete(void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??3@YAXPEAX_K@Z' aka void __cdecl operator delete(void *, unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPAXI@Z' aka void * __cdecl operator new[](unsigned int) +CHECK-NEXT: not available: '??_U@YAPAXIABUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned int, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_U@YAPEAX_K@Z' aka void * __cdecl operator new[](unsigned __int64) +CHECK-NEXT: not available: '??_U@YAPEAX_KAEBUnothrow_t@std@@@Z' aka void * __cdecl operator new[](unsigned __int64, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPAXABUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPAXI@Z' aka void __cdecl operator delete[](void *, unsigned int) +CHECK-NEXT: not available: '??_V@YAXPEAX@Z' aka void __cdecl operator delete[](void *) +CHECK-NEXT: not available: '??_V@YAXPEAXAEBUnothrow_t@std@@@Z' aka void __cdecl operator delete[](void *, struct std::nothrow_t const &) +CHECK-NEXT: not available: '??_V@YAXPEAX_K@Z' aka void __cdecl operator delete[](void *, unsigned __int64) +CHECK-NEXT: not available: '_IO_getc' +CHECK-NEXT: not available: '_IO_putc' +CHECK-NEXT: available: '_ZdaPv' aka operator delete[](void*) +CHECK-NEXT: available: '_ZdaPvRKSt9nothrow_t' aka operator delete[](void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvSt11align_val_t' aka operator delete[](void*, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvSt11align_val_tRKSt9nothrow_t' aka operator delete[](void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdaPvj' aka operator delete[](void*, unsigned int) +CHECK-NEXT: available: '_ZdaPvjSt11align_val_t' aka operator delete[](void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdaPvm' aka operator delete[](void*, unsigned long) +CHECK-NEXT: available: '_ZdaPvmSt11align_val_t' aka operator delete[](void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZdlPv' aka operator delete(void*) +CHECK-NEXT: available: '_ZdlPvRKSt9nothrow_t' aka operator delete(void*, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvSt11align_val_t' aka operator delete(void*, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvSt11align_val_tRKSt9nothrow_t' aka operator delete(void*, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZdlPvj' aka operator delete(void*, unsigned int) +CHECK-NEXT: available: '_ZdlPvjSt11align_val_t' aka operator delete(void*, unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZdlPvm' aka operator delete(void*, unsigned long) +CHECK-NEXT: available: '_ZdlPvmSt11align_val_t' aka operator delete(void*, unsigned long, std::align_val_t) +CHECK-NEXT: available: '_Znaj' aka operator new[](unsigned int) +CHECK-NEXT: available: '_ZnajRKSt9nothrow_t' aka operator new[](unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnajSt11align_val_t' aka operator new[](unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnajSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znam' aka operator new[](unsigned long) +CHECK-NEXT: available: '_Znam12__hot_cold_t' aka operator new[](unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t' aka operator new[](unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t' aka operator new[](unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnamSt11align_val_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnamSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new[](unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_Znwj' aka operator new(unsigned int) +CHECK-NEXT: available: '_ZnwjRKSt9nothrow_t' aka operator new(unsigned int, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwjSt11align_val_t' aka operator new(unsigned int, std::align_val_t) +CHECK-NEXT: available: '_ZnwjSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned int, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_Znwm' aka operator new(unsigned long) +CHECK-NEXT: available: '_Znwm12__hot_cold_t' aka operator new(unsigned long, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t' aka operator new(unsigned long, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t' aka operator new(unsigned long, std::align_val_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, __hot_cold_t) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&) +CHECK-NEXT: available: '_ZnwmSt11align_val_tRKSt9nothrow_t12__hot_cold_t' aka operator new(unsigned long, std::align_val_t, std::nothrow_t const&, __hot_cold_t) +CHECK-NEXT: available: '__size_returning_new' +CHECK-NEXT: available: '__size_returning_new_hot_cold' +CHECK-NEXT: available: '__size_returning_new_aligned' +CHECK-NEXT: available: '__size_returning_new_aligned_hot_cold' +CHECK-NEXT: not available: '__acos_finite' +CHECK-NEXT: not available: '__acosf_finite' +CHECK-NEXT: not available: '__acosh_finite' +CHECK-NEXT: not available: '__acoshf_finite' +CHECK-NEXT: not available: '__acoshl_finite' +CHECK-NEXT: not available: '__acosl_finite' +CHECK-NEXT: not available: '__asin_finite' +CHECK-NEXT: not available: '__asinf_finite' +CHECK-NEXT: not available: '__asinl_finite' +CHECK-NEXT: not available: '__atan2_finite' +CHECK-NEXT: not available: '__atan2f_finite' +CHECK-NEXT: not available: '__atan2l_finite' +CHECK-NEXT: not available: '__atanh_finite' +CHECK-NEXT: not available: '__atanhf_finite' +CHECK-NEXT: not available: '__atanhl_finite' +CHECK-NEXT: available: '__atomic_load' +CHECK-NEXT: available: '__atomic_store' +CHECK-NEXT: not available: '__cosh_finite' +CHECK-NEXT: not available: '__coshf_finite' +CHECK-NEXT: not available: '__coshl_finite' +CHECK-NEXT: not available: '__cospi' +CHECK-NEXT: not available: '__cospif' +CHECK-NEXT: available: '__cxa_atexit' +CHECK-NEXT: available: 'atexit' +CHECK-NEXT: available: 'abort' +CHECK-NEXT: available: 'exit' +CHECK-NEXT: available: '_Exit' +CHECK-NEXT: available: '_ZSt9terminatev' aka std::terminate() +CHECK-NEXT: available: '__cxa_throw' +CHECK-NEXT: available: '__cxa_guard_abort' +CHECK-NEXT: available: '__cxa_guard_acquire' +CHECK-NEXT: available: '__cxa_guard_release' +CHECK-NEXT: not available: '__exp10_finite' +CHECK-NEXT: not available: '__exp10f_finite' +CHECK-NEXT: not available: '__exp10l_finite' +CHECK-NEXT: not available: '__exp2_finite' +CHECK-NEXT: not available: '__exp2f_finite' +CHECK-NEXT: not available: '__exp2l_finite' +CHECK-NEXT: not available: '__exp_finite' +CHECK-NEXT: not available: '__expf_finite' +CHECK-NEXT: not available: '__expl_finite' +CHECK-NEXT: not available: '__isoc99_scanf' +CHECK-NEXT: not available: '__isoc99_sscanf' +CHECK-NEXT: available: '__kmpc_alloc_shared' +CHECK-NEXT: available: '__kmpc_free_shared' +CHECK-NEXT: not available: '__log10_finite' +CHECK-NEXT: not available: '__log10f_finite' +CHECK-NEXT: not available: '__log10l_finite' +CHECK-NEXT: not available: '__log2_finite' +CHECK-NEXT: not available: '__log2f_finite' +CHECK-NEXT: not available: '__log2l_finite' +CHECK-NEXT: not available: '__log_finite' +CHECK-NEXT: not available: '__logf_finite' +CHECK-NEXT: not available: '__logl_finite' +CHECK-NEXT: available: '__memccpy_chk' +CHECK-NEXT: available: '__memcpy_chk' +CHECK-NEXT: available: '__memmove_chk' +CHECK-NEXT: available: '__mempcpy_chk' +CHECK-NEXT: available: '__memset_chk' +CHECK-NEXT: not available: '__nvvm_reflect' +CHECK-NEXT: not available: '__pow_finite' +CHECK-NEXT: not available: '__powf_finite' +CHECK-NEXT: not available: '__powl_finite' +CHECK-NEXT: not available: '__sincospi_stret' +CHECK-NEXT: not available: '__sincospif_stret' +CHECK-NEXT: not available: '__sinh_finite' +CHECK-NEXT: not available: '__sinhf_finite' +CHECK-NEXT: not available: '__sinhl_finite' +CHECK-NEXT: not available: '__sinpi' +CHECK-NEXT: not available: '__sinpif' +CHECK-NEXT: not available: '__small_fprintf' +CHECK-NEXT: not available: '__small_printf' +CHECK-NEXT: not available: '__small_sprintf' +CHECK-NEXT: available: '__snprintf_chk' +CHECK-NEXT: available: '__sprintf_chk' +CHECK-NEXT: not available: '__sqrt_finite' +CHECK-NEXT: not available: '__sqrtf_finite' +CHECK-NEXT: not available: '__sqrtl_finite' +CHECK-NEXT: available: '__stpcpy_chk' +CHECK-NEXT: available: '__stpncpy_chk' +CHECK-NEXT: available: '__strcat_chk' +CHECK-NEXT: available: '__strcpy_chk' +CHECK-NEXT: not available: '__strdup' +CHECK-NEXT: available: '__strlcat_chk' +CHECK-NEXT: available: '__strlcpy_chk' +CHECK-NEXT: available: '__strlen_chk' +CHECK-NEXT: available: '__strncat_chk' +CHECK-NEXT: available: '__strncpy_chk' +CHECK-NEXT: available: '__strndup' +CHECK-NEXT: not available: '__strtok_r' +CHECK-NEXT: available: '__vsnprintf_chk' +CHECK-NEXT: available: '__vsprintf_chk' +CHECK-NEXT: available: 'abs' +CHECK-NEXT: available: 'access' +CHECK-NEXT: available: 'acos' +CHECK-NEXT: available: 'acosf' +CHECK-NEXT: available: 'acosh' +CHECK-NEXT: available: 'acoshf' +CHECK-NEXT: available: 'acoshl' +CHECK-NEXT: available: 'acosl' +CHECK-NEXT: available: 'aligned_alloc' +CHECK-NEXT: available: 'asin' +CHECK-NEXT: available: 'asinf' +CHECK-NEXT: available: 'asinh' +CHECK-NEXT: available: 'asinhf' +CHECK-NEXT: available: 'asinhl' +CHECK-NEXT: available: 'asinl' +CHECK-NEXT: available: 'atan' +CHECK-NEXT: available: 'atan2' +CHECK-NEXT: available: 'atan2f' +CHECK-NEXT: available: 'atan2l' +CHECK-NEXT: available: 'atanf' +CHECK-NEXT: available: 'atanh' +CHECK-NEXT: available: 'atanhf' +CHECK-NEXT: available: 'atanhl' +CHECK-NEXT: available: 'atanl' +CHECK-NEXT: available: 'atof' +CHECK-NEXT: available: 'atoi' +CHECK-NEXT: available: 'atol' +CHECK-NEXT: available: 'atoll' +CHECK-NEXT: not available: 'bcmp' +CHECK-NEXT: available: 'bcopy' +CHECK-NEXT: available: 'bzero' +CHECK-NEXT: available: 'cabs' +CHECK-NEXT: available: 'cabsf' +CHECK-NEXT: available: 'cabsl' +CHECK-NEXT: available: 'calloc' +CHECK-NEXT: available: 'cbrt' +CHECK-NEXT: available: 'cbrtf' +CHECK-NEXT: available: 'cbrtl' +CHECK-NEXT: available: 'ceil' +CHECK-NEXT: available: 'ceilf' +CHECK-NEXT: available: 'ceill' +CHECK-NEXT: available: 'chmod' +CHECK-NEXT: available: 'chown' +CHECK-NEXT: available: 'clearerr' +CHECK-NEXT: available: 'closedir' +CHECK-NEXT: available: 'copysign' +CHECK-NEXT: available: 'copysignf' +CHECK-NEXT: available: 'copysignl' +CHECK-NEXT: available: 'cos' +CHECK-NEXT: available: 'cosf' +CHECK-NEXT: available: 'cosh' +CHECK-NEXT: available: 'coshf' +CHECK-NEXT: available: 'coshl' +CHECK-NEXT: available: 'cosl' +CHECK-NEXT: available: 'ctermid' +CHECK-NEXT: available: 'erf' +CHECK-NEXT: available: 'erff' +CHECK-NEXT: available: 'erfl' +CHECK-NEXT: available: 'tgamma' +CHECK-NEXT: available: 'tgammaf' +CHECK-NEXT: available: 'tgammal' +CHECK-NEXT: available: 'execl' +CHECK-NEXT: available: 'execle' +CHECK-NEXT: available: 'execlp' +CHECK-NEXT: available: 'execv' +CHECK-NEXT: available: 'execvP' +CHECK-NEXT: available: 'execve' +CHECK-NEXT: available: 'execvp' +CHECK-NEXT: available: 'execvpe' +CHECK-NEXT: available: 'exp' +CHECK-NEXT: not available: 'exp10' +CHECK-NEXT: not available: 'exp10f' +CHECK-NEXT: not available: 'exp10l' +CHECK-NEXT: available: 'exp2' +CHECK-NEXT: available: 'exp2f' +CHECK-NEXT: available: 'exp2l' +CHECK-NEXT: available: 'expf' +CHECK-NEXT: available: 'expl' +CHECK-NEXT: available: 'expm1' +CHECK-NEXT: available: 'expm1f' +CHECK-NEXT: available: 'expm1l' +CHECK-NEXT: available: 'fabs' +CHECK-NEXT: available: 'fabsf' +CHECK-NEXT: available: 'fabsl' +CHECK-NEXT: available: 'fclose' +CHECK-NEXT: available: 'fdopen' +CHECK-NEXT: available: 'feof' +CHECK-NEXT: available: 'ferror' +CHECK-NEXT: available: 'fflush' +CHECK-NEXT: available: 'ffs' +CHECK-NEXT: not available: 'ffsl' +CHECK-NEXT: not available: 'ffsll' +CHECK-NEXT: available: 'fgetc' +CHECK-NEXT: not available: 'fgetc_unlocked' +CHECK-NEXT: available: 'fgetpos' +CHECK-NEXT: available: 'fgets' +CHECK-NEXT: not available: 'fgets_unlocked' +CHECK-NEXT: available: 'fileno' +CHECK-NEXT: available: 'fiprintf' +CHECK-NEXT: available: 'flockfile' +CHECK-NEXT: available: 'floor' +CHECK-NEXT: available: 'floorf' +CHECK-NEXT: available: 'floorl' +CHECK-NEXT: not available: 'fls' +CHECK-NEXT: not available: 'flsl' +CHECK-NEXT: not available: 'flsll' +CHECK-NEXT: available: 'fmax' +CHECK-NEXT: available: 'fmaxf' +CHECK-NEXT: available: 'fmaxl' +CHECK-NEXT: available: 'fmin' +CHECK-NEXT: available: 'fminf' +CHECK-NEXT: available: 'fminl' +CHECK-NEXT: available: 'fmaximum_num' +CHECK-NEXT: available: 'fmaximum_numf' +CHECK-NEXT: available: 'fmaximum_numl' +CHECK-NEXT: available: 'fminimum_num' +CHECK-NEXT: available: 'fminimum_numf' +CHECK-NEXT: available: 'fminimum_numl' +CHECK-NEXT: available: 'fmod' +CHECK-NEXT: available: 'fmodf' +CHECK-NEXT: available: 'fmodl' +CHECK-NEXT: available: 'fopen' +CHECK-NEXT: not available: 'fopen64' +CHECK-NEXT: available: 'fork' +CHECK-NEXT: available: 'fprintf' +CHECK-NEXT: available: 'fputc' +CHECK-NEXT: not available: 'fputc_unlocked' +CHECK-NEXT: available: 'fputs' +CHECK-NEXT: not available: 'fputs_unlocked' +CHECK-NEXT: available: 'fread' +CHECK-NEXT: not available: 'fread_unlocked' +CHECK-NEXT: available: 'free' +CHECK-NEXT: available: 'frexp' +CHECK-NEXT: available: 'frexpf' +CHECK-NEXT: available: 'frexpl' +CHECK-NEXT: available: 'fscanf' +CHECK-NEXT: available: 'fseek' +CHECK-NEXT: available: 'fseeko' +CHECK-NEXT: not available: 'fseeko64' +CHECK-NEXT: available: 'fsetpos' +CHECK-NEXT: available: 'fstat' +CHECK-NEXT: not available: 'fstat64' +CHECK-NEXT: available: 'fstatvfs' +CHECK-NEXT: not available: 'fstatvfs64' +CHECK-NEXT: available: 'ftell' +CHECK-NEXT: available: 'ftello' +CHECK-NEXT: not available: 'ftello64' +CHECK-NEXT: available: 'ftrylockfile' +CHECK-NEXT: available: 'funlockfile' +CHECK-NEXT: available: 'fwrite' +CHECK-NEXT: not available: 'fwrite_unlocked' +CHECK-NEXT: available: 'getc' +CHECK-NEXT: not available: 'getc_unlocked' +CHECK-NEXT: available: 'getchar' +CHECK-NEXT: not available: 'getchar_unlocked' +CHECK-NEXT: available: 'getenv' +CHECK-NEXT: available: 'getitimer' +CHECK-NEXT: available: 'getlogin_r' +CHECK-NEXT: available: 'getpwnam' +CHECK-NEXT: available: 'gets' +CHECK-NEXT: available: 'gettimeofday' +CHECK-NEXT: available: 'htonl' +CHECK-NEXT: available: 'htons' +CHECK-NEXT: available: 'hypot' +CHECK-NEXT: available: 'hypotf' +CHECK-NEXT: available: 'hypotl' +CHECK-NEXT: available: 'iprintf' +CHECK-NEXT: available: 'isascii' +CHECK-NEXT: available: 'isdigit' +CHECK-NEXT: available: 'labs' +CHECK-NEXT: available: 'lchown' +CHECK-NEXT: available: 'ldexp' +CHECK-NEXT: available: 'ldexpf' +CHECK-NEXT: available: 'ldexpl' +CHECK-NEXT: available: 'llabs' +CHECK-NEXT: available: 'log' +CHECK-NEXT: available: 'log10' +CHECK-NEXT: available: 'log10f' +CHECK-NEXT: available: 'log10l' +CHECK-NEXT: available: 'log1p' +CHECK-NEXT: available: 'log1pf' +CHECK-NEXT: available: 'log1pl' +CHECK-NEXT: available: 'log2' +CHECK-NEXT: available: 'log2f' +CHECK-NEXT: available: 'log2l' +CHECK-NEXT: available: 'ilogb' +CHECK-NEXT: available: 'ilogbf' +CHECK-NEXT: available: 'ilogbl' +CHECK-NEXT: available: 'logb' +CHECK-NEXT: available: 'logbf' +CHECK-NEXT: available: 'logbl' +CHECK-NEXT: available: 'logf' +CHECK-NEXT: available: 'logl' +CHECK-NEXT: available: 'lstat' +CHECK-NEXT: not available: 'lstat64' +CHECK-NEXT: available: 'malloc' +CHECK-NEXT: not available: 'memalign' +CHECK-NEXT: available: 'memccpy' +CHECK-NEXT: available: 'memchr' +CHECK-NEXT: available: 'memcmp' +CHECK-NEXT: available: 'memcpy' +CHECK-NEXT: available: 'memmove' +CHECK-NEXT: available: 'mempcpy' +CHECK-NEXT: available: 'memrchr' +CHECK-NEXT: available: 'memset' +CHECK-NEXT: not available: 'memset_pattern16' +CHECK-NEXT: not available: 'memset_pattern4' +CHECK-NEXT: not available: 'memset_pattern8' +CHECK-NEXT: available: 'mkdir' +CHECK-NEXT: available: 'mktime' +CHECK-NEXT: available: 'modf' +CHECK-NEXT: available: 'modff' +CHECK-NEXT: available: 'modfl' +CHECK-NEXT: available: 'nan' +CHECK-NEXT: available: 'nanf' +CHECK-NEXT: available: 'nanl' +CHECK-NEXT: available: 'nearbyint' +CHECK-NEXT: available: 'nearbyintf' +CHECK-NEXT: available: 'nearbyintl' +CHECK-NEXT: available: 'ntohl' +CHECK-NEXT: available: 'ntohs' +CHECK-NEXT: available: 'open' +CHECK-NEXT: not available: 'open64' +CHECK-NEXT: available: 'opendir' +CHECK-NEXT: available: 'pclose' +CHECK-NEXT: available: 'perror' +CHECK-NEXT: available: 'popen' +CHECK-NEXT: available: 'posix_memalign' +CHECK-NEXT: available: 'pow' +CHECK-NEXT: available: 'powf' +CHECK-NEXT: available: 'powl' +CHECK-NEXT: available: 'pread' +CHECK-NEXT: available: 'printf' +CHECK-NEXT: available: 'putc' +CHECK-NEXT: not available: 'putc_unlocked' +CHECK-NEXT: available: 'putchar' +CHECK-NEXT: not available: 'putchar_unlocked' +CHECK-NEXT: available: 'puts' +CHECK-NEXT: available: 'pwrite' +CHECK-NEXT: available: 'qsort' +CHECK-NEXT: available: 'read' +CHECK-NEXT: available: 'readlink' +CHECK-NEXT: available: 'realloc' +CHECK-NEXT: available: 'reallocf' +CHECK-NEXT: available: 'reallocarray' +CHECK-NEXT: available: 'realpath' +CHECK-NEXT: available: 'remainder' +CHECK-NEXT: available: 'remainderf' +CHECK-NEXT: available: 'remainderl' +CHECK-NEXT: available: 'remquo' +CHECK-NEXT: available: 'remquof' +CHECK-NEXT: available: 'remquol' +CHECK-NEXT: available: 'fdim' +CHECK-NEXT: available: 'fdimf' +CHECK-NEXT: available: 'fdiml' +CHECK-NEXT: available: 'remove' +CHECK-NEXT: available: 'rename' +CHECK-NEXT: available: 'rewind' +CHECK-NEXT: available: 'rint' +CHECK-NEXT: available: 'rintf' +CHECK-NEXT: available: 'rintl' +CHECK-NEXT: available: 'rmdir' +CHECK-NEXT: available: 'round' +CHECK-NEXT: available: 'roundeven' +CHECK-NEXT: available: 'roundevenf' +CHECK-NEXT: available: 'roundevenl' +CHECK-NEXT: available: 'roundf' +CHECK-NEXT: available: 'roundl' +CHECK-NEXT: available: 'scalbln' +CHECK-NEXT: available: 'scalblnf' +CHECK-NEXT: available: 'scalblnl' +CHECK-NEXT: available: 'scalbn' +CHECK-NEXT: available: 'scalbnf' +CHECK-NEXT: available: 'scalbnl' +CHECK-NEXT: available: 'scanf' +CHECK-NEXT: available: 'setbuf' +CHECK-NEXT: available: 'setitimer' +CHECK-NEXT: available: 'setvbuf' +CHECK-NEXT: available: 'sin' +CHECK-NEXT: available: 'sinf' +CHECK-NEXT: available: 'sinh' +CHECK-NEXT: available: 'sinhf' +CHECK-NEXT: available: 'sinhl' +CHECK-NEXT: available: 'sinl' +CHECK-NEXT: available: 'sincos' +CHECK-NEXT: available: 'sincosf' +CHECK-NEXT: available: 'sincosl' +CHECK-NEXT: available: 'siprintf' +CHECK-NEXT: available: 'snprintf' +CHECK-NEXT: available: 'sprintf' +CHECK-NEXT: available: 'sqrt' +CHECK-NEXT: available: 'sqrtf' +CHECK-NEXT: available: 'sqrtl' +CHECK-NEXT: available: 'sscanf' +CHECK-NEXT: available: 'stat' +CHECK-NEXT: not available: 'stat64' +CHECK-NEXT: available: 'statvfs' +CHECK-NEXT: not available: 'statvfs64' +CHECK-NEXT: available: 'stpcpy' +CHECK-NEXT: available: 'stpncpy' +CHECK-NEXT: available: 'strcasecmp' +CHECK-NEXT: available: 'strcat' +CHECK-NEXT: available: 'strchr' +CHECK-NEXT: available: 'strcmp' +CHECK-NEXT: available: 'strcoll' +CHECK-NEXT: available: 'strcpy' +CHECK-NEXT: available: 'strcspn' +CHECK-NEXT: available: 'strdup' +CHECK-NEXT: available: 'strlcat' +CHECK-NEXT: available: 'strlcpy' +CHECK-NEXT: available: 'strlen' +CHECK-NEXT: available: 'strncasecmp' +CHECK-NEXT: available: 'strncat' +CHECK-NEXT: available: 'strncmp' +CHECK-NEXT: available: 'strncpy' +CHECK-NEXT: available: 'strndup' +CHECK-NEXT: available: 'strnlen' +CHECK-NEXT: available: 'strpbrk' +CHECK-NEXT: available: 'strrchr' +CHECK-NEXT: available: 'strspn' +CHECK-NEXT: available: 'strstr' +CHECK-NEXT: available: 'strtod' +CHECK-NEXT: available: 'strtof' +CHECK-NEXT: available: 'strtok' +CHECK-NEXT: available: 'strtok_r' +CHECK-NEXT: available: 'strtol' +CHECK-NEXT: available: 'strtold' +CHECK-NEXT: available: 'strtoll' +CHECK-NEXT: available: 'strtoul' +CHECK-NEXT: available: 'strtoull' +CHECK-NEXT: available: 'strxfrm' +CHECK-NEXT: available: 'system' +CHECK-NEXT: available: 'tan' +CHECK-NEXT: available: 'tanf' +CHECK-NEXT: available: 'tanh' +CHECK-NEXT: available: 'tanhf' +CHECK-NEXT: available: 'tanhl' +CHECK-NEXT: available: 'tanl' +CHECK-NEXT: available: 'times' +CHECK-NEXT: available: 'tmpfile' +CHECK-NEXT: not available: 'tmpfile64' +CHECK-NEXT: available: 'toascii' +CHECK-NEXT: available: 'trunc' +CHECK-NEXT: available: 'truncf' +CHECK-NEXT: available: 'truncl' +CHECK-NEXT: available: 'uname' +CHECK-NEXT: available: 'ungetc' +CHECK-NEXT: available: 'unlink' +CHECK-NEXT: available: 'unsetenv' +CHECK-NEXT: available: 'utime' +CHECK-NEXT: available: 'utimes' +CHECK-NEXT: available: 'valloc' +CHECK-NEXT: not available: 'vec_calloc' +CHECK-NEXT: not available: 'vec_free' +CHECK-NEXT: not available: 'vec_malloc' +CHECK-NEXT: not available: 'vec_realloc' +CHECK-NEXT: available: 'vfprintf' +CHECK-NEXT: available: 'vfscanf' +CHECK-NEXT: available: 'vprintf' +CHECK-NEXT: available: 'vscanf' +CHECK-NEXT: available: 'vsnprintf' +CHECK-NEXT: available: 'vsprintf' +CHECK-NEXT: available: 'vsscanf' +CHECK-NEXT: available: 'wcslen' +CHECK-NEXT: available: 'write' diff --git a/llvm/utils/emit-llvm-tli-checker-test.py b/llvm/utils/emit-llvm-tli-checker-test.py new file mode 100755 index 0000000000000..b6d583231e411 --- /dev/null +++ b/llvm/utils/emit-llvm-tli-checker-test.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 + +"""A test case generation script. + +Generate check lines for all known TargetLibraryInfo functions + +""" + +import sys +import os +import subprocess + +if len(sys.argv) < 2: + print("usage: " + sys.argv[0] + " target-triple-name > target-triple-name.test") + exit(1) + +triple = sys.argv[1] +process = subprocess.Popen( + "llvm-tli-checker --dump-tli --triple=" + triple, + shell=True, + stdin=subprocess.DEVNULL, + stdout=subprocess.PIPE, + universal_newlines=True) + +print("# RUN: llvm-tli-checker --dump-tli --triple=" + triple + " | FileCheck %s\n") + +First = True +for line in process.stdout.readlines(): + if First: + print("CHECK: " + line.strip()); + First = False + else: + print("CHECK-NEXT: " + line.strip());