1 # REQUIRES: x86-registered-target
3 ## This produces the object that matches expectations for PS4.
4 # RUN: yaml2obj %s -DZDAPV=_ZdaPv -o=%t1
5 # RUN: llvm-tli-checker --triple=x86_64-scei-ps4 %t1 | FileCheck %s
7 ## This produces an object that has _ZdaPvj instead of _ZdaPv.
8 # RUN: yaml2obj %s -DZDAPV=_ZdaPvj -o=%t2
9 # RUN: llvm-tli-checker --triple x86_64-scei-ps4 %t2 | \
10 # RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \
11 # RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>"
13 ## --report=discrepancy is the default, check we get the same output.
14 # RUN: llvm-tli-checker --triple x86_64-scei-ps4 %t2 --report=discrepancy | \
15 # RUN: FileCheck %s --check-prefixes=WRONG_SUMMARY,WRONG_DETAIL \
16 # RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>"
18 ## --report=summary should not print the details (checked by the
19 ## implicit-check-not strings).
20 # RUN: llvm-tli-checker --triple x86_64-scei-ps4 %t2 --report=summary | \
21 # RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \
22 # RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>"
24 ## --separate implies --report=summary.
25 # RUN: llvm-tli-checker --triple x86_64-scei-ps4 %t2 --separate | \
26 # RUN: FileCheck %s --check-prefix=WRONG_SUMMARY \
27 # RUN: --implicit-check-not="==" --implicit-check-not="<<" --implicit-check-not=">>"
29 ## Verify --dump-tli reports the full set.
30 # RUN: llvm-tli-checker --triple x86_64-scei-ps4 --dump-tli > %t3.txt
31 # RUN: FileCheck %s --check-prefix=AVAIL --input-file %t3.txt
32 # RUN: FileCheck %s --check-prefix=UNAVAIL --input-file %t3.txt
34 # CHECK: << Total TLI yes SDK no: 0
35 # CHECK: >> Total TLI no SDK yes: 0
36 # CHECK: == Total TLI yes SDK yes: 235
38 # WRONG_DETAIL: << TLI yes SDK no : '_ZdaPv' aka operator delete[](void*)
39 # WRONG_DETAIL: >> TLI no SDK yes: '_ZdaPvj' aka operator delete[](void*, unsigned int)
40 # WRONG_SUMMARY: << Total TLI yes SDK no: 1{{$}}
41 # WRONG_SUMMARY: >> Total TLI no SDK yes: 1{{$}}
42 # WRONG_SUMMARY: == Total TLI yes SDK yes: 234
44 ## The -COUNT suffix doesn't care if there are too many matches, so check
45 ## the exact count first; the two directives should add up to that.
46 ## Yes, this means additions to TLI will fail this test, but the argument
47 ## to -COUNT can't be an expression.
48 # AVAIL: TLI knows 468 symbols, 235 available
49 # AVAIL-COUNT-235: {{^}} available
50 # AVAIL-NOT: {{^}} available
51 # UNAVAIL-COUNT-233: not available
52 # UNAVAIL-NOT: not available
54 ## This is a large file so it's worth telling lit to stop here.
61 OSABI: ELFOSABI_FREEBSD
68 # This is an undefined symbol that is known to TLI but not in the
69 # available set for PS4, showing the tool will ignore undefined symbols.
70 # Omitting the Section attribute makes it undefined.
74 # This will be either _ZdaPv or _ZdaPvj (see yaml2obj invocations above).
79 # The rest of these are the remaining symbols needed for PS4.
80 - Name: _ZdaPvRKSt9nothrow_t
84 - Name: _ZdaPvSt11align_val_t
88 - Name: _ZdaPvSt11align_val_tRKSt9nothrow_t
96 - Name: _ZdaPvmSt11align_val_t
104 - Name: _ZdlPvRKSt9nothrow_t
108 - Name: _ZdlPvSt11align_val_t
112 - Name: _ZdlPvSt11align_val_tRKSt9nothrow_t
120 - Name: _ZdlPvmSt11align_val_t
128 - Name: _ZnamRKSt9nothrow_t
132 - Name: _ZnamSt11align_val_t
136 - Name: _ZnamSt11align_val_tRKSt9nothrow_t
144 - Name: _ZnwmRKSt9nothrow_t
148 - Name: _ZnwmSt11align_val_t
152 - Name: _ZnwmSt11align_val_tRKSt9nothrow_t
160 - Name: __cxa_guard_abort
164 - Name: __cxa_guard_acquire
168 - Name: __cxa_guard_release
200 - Name: aligned_alloc
692 - Name: posix_memalign