blob: 70b582e25b986108f73966165af86a98c3d265cb [file] [log] [blame]
# REQUIRES: x86-registered-target
#
## The object files ps4-tli-checks.right.so and ps4-tli-checks.wrong.so
## were generated with the following commands:
## llvm-mc --triple=x86_64-scei-ps4 --filetype=obj ps4-tli-check.s -o t.o
## ld.lld --shared t.o -o Inputs/ps4-tli-check.right.so
## llvm-mc --triple=x86_64-scei-ps4 --defsym WRONG=1 --filetype=obj ps4-tli-check.s -o t2.o
## ld.lld --shared t2.o -o Inputs/ps4-tli-check.wrong.so
#
# RUN: llvm-tli-checker --triple=x86_64-scei-ps4 %S/Inputs/ps4-tli-check.right.so | FileCheck %s
#
# RUN: echo %S/Inputs/ps4-tli-check.wrong.so > %t2.txt
# RUN: llvm-tli-checker --triple x86_64-scei-ps4 @%t2.txt | \
# RUN: FileCheck %s --check-prefix=WRONG_SUMMARY --check-prefix=WRONG_DETAIL \
# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>"
# RUN: llvm-tli-checker --triple x86_64-scei-ps4 @%t2.txt --report=summary | \
# RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \
# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>"
## --separate implies --report=summary.
# RUN: llvm-tli-checker --triple x86_64-scei-ps4 @%t2.txt --separate | \
# RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \
# RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>"
#
# RUN: llvm-tli-checker --triple x86_64-scei-ps4 --dump-tli > %t3.txt
# RUN: FileCheck %s --check-prefix=AVAIL --input-file %t3.txt
# RUN: FileCheck %s --check-prefix=UNAVAIL --input-file %t3.txt
#
# CHECK: << Total TLI yes SDK no: 0
# CHECK: >> Total TLI no SDK yes: 0
# CHECK: == Total TLI yes SDK yes: 235
#
# WRONG_DETAIL: << TLI yes SDK no : '_ZdaPv'
# WRONG_DETAIL: >> TLI no SDK yes: '_ZdaPvj'
# WRONG_SUMMARY: << Total TLI yes SDK no: 1{{$}}
# WRONG_SUMMARY: >> Total TLI no SDK yes: 1{{$}}
# WRONG_SUMMARY: == Total TLI yes SDK yes: 234
#
## The -COUNT suffix doesn't care if there are too many matches, so check
## the exact count first; the two directives should add up to that.
# AVAIL: TLI knows 466 symbols, 235 available
# AVAIL-COUNT-235: {{^}} available
# UNAVAIL-COUNT-231: not available
.macro defname name
.globl \name
.type \name ,@function
\name : nop
.endm
.text
# For the WRONG case, omit _ZdaPv and include _ZdaPvj.
.ifdef WRONG
defname _ZdaPvj
.else
defname _ZdaPv
.endif
defname _ZdaPvRKSt9nothrow_t
defname _ZdaPvSt11align_val_t
defname _ZdaPvSt11align_val_tRKSt9nothrow_t
defname _ZdaPvm
defname _ZdaPvmSt11align_val_t
defname _ZdlPv
defname _ZdlPvRKSt9nothrow_t
defname _ZdlPvSt11align_val_t
defname _ZdlPvSt11align_val_tRKSt9nothrow_t
defname _ZdlPvm
defname _ZdlPvmSt11align_val_t
defname _Znam
defname _ZnamRKSt9nothrow_t
defname _ZnamSt11align_val_t
defname _ZnamSt11align_val_tRKSt9nothrow_t
defname _Znwm
defname _ZnwmRKSt9nothrow_t
defname _ZnwmSt11align_val_t
defname _ZnwmSt11align_val_tRKSt9nothrow_t
defname __cxa_atexit
defname __cxa_guard_abort
defname __cxa_guard_acquire
defname __cxa_guard_release
defname abs
defname acos
defname acosf
defname acosh
defname acoshf
defname acoshl
defname acosl
defname aligned_alloc
defname asin
defname asinf
defname asinh
defname asinhf
defname asinhl
defname asinl
defname atan
defname atan2
defname atan2f
defname atan2l
defname atanf
defname atanh
defname atanhf
defname atanhl
defname atanl
defname atof
defname atoi
defname atol
defname atoll
defname calloc
defname cbrt
defname cbrtf
defname cbrtl
defname ceil
defname ceilf
defname ceill
defname clearerr
defname copysign
defname copysignf
defname copysignl
defname cos
defname cosf
defname cosh
defname coshf
defname coshl
defname cosl
defname exp
defname exp2
defname exp2f
defname exp2l
defname expf
defname expl
defname expm1
defname expm1f
defname expm1l
defname fabs
defname fabsf
defname fabsl
defname fclose
defname fdopen
defname feof
defname ferror
defname fflush
defname fgetc
defname fgetpos
defname fgets
defname fileno
defname floor
defname floorf
defname floorl
defname fmax
defname fmaxf
defname fmaxl
defname fmin
defname fminf
defname fminl
defname fmod
defname fmodf
defname fmodl
defname fopen
defname fprintf
defname fputc
defname fputs
defname fread
defname free
defname frexp
defname frexpf
defname frexpl
defname fscanf
defname fseek
defname fsetpos
defname ftell
defname fwrite
defname getc
defname getchar
defname gets
defname isdigit
defname labs
defname ldexp
defname ldexpf
defname ldexpl
defname llabs
defname log
defname log10
defname log10f
defname log10l
defname log1p
defname log1pf
defname log1pl
defname log2
defname log2f
defname log2l
defname logb
defname logbf
defname logbl
defname logf
defname logl
defname malloc
defname memalign
defname memchr
defname memcmp
defname memcpy
defname memmove
defname memset
defname mktime
defname modf
defname modff
defname modfl
defname nearbyint
defname nearbyintf
defname nearbyintl
defname perror
defname posix_memalign
defname pow
defname powf
defname powl
defname printf
defname putc
defname putchar
defname puts
defname qsort
defname realloc
defname remainder
defname remainderf
defname remainderl
defname remove
defname rewind
defname rint
defname rintf
defname rintl
defname round
defname roundf
defname roundl
defname scanf
defname setbuf
defname setvbuf
defname sin
defname sinf
defname sinh
defname sinhf
defname sinhl
defname sinl
defname snprintf
defname sprintf
defname sqrt
defname sqrtf
defname sqrtl
defname sscanf
defname strcasecmp
defname strcat
defname strchr
defname strcmp
defname strcoll
defname strcpy
defname strcspn
defname strdup
defname strlen
defname strncasecmp
defname strncat
defname strncmp
defname strncpy
defname strpbrk
defname strrchr
defname strspn
defname strstr
defname strtod
defname strtof
defname strtok
defname strtok_r
defname strtol
defname strtold
defname strtoll
defname strtoul
defname strtoull
defname strxfrm
defname tan
defname tanf
defname tanh
defname tanhf
defname tanhl
defname tanl
defname trunc
defname truncf
defname truncl
defname ungetc
defname vfprintf
defname vfscanf
defname vprintf
defname vscanf
defname vsnprintf
defname vsprintf
defname vsscanf
defname wcslen