1## Show that llvm-readobj prints the symbol visibility where recognised, or 2## something sensible when not, for both GNU and LLVM output. 3 4## Check how we dump symbols when they have only STV_* bits set for st_other. 5## (This is the most common case). 6 7# RUN: yaml2obj --docnum=1 %s -o %t1.o 8# RUN: llvm-readobj --symbols %t1.o | FileCheck %s --check-prefix=LLVM 9# RUN: llvm-readelf --symbols %t1.o | FileCheck %s --strict-whitespace --check-prefix=GNU 10 11# LLVM: Name: default 12# LLVM: Other: 0 13# LLVM: Name: internal 14# LLVM: Other [ (0x1) 15# LLVM-NEXT: STV_INTERNAL (0x1) 16# LLVM-NEXT: ] 17# LLVM: Name: hidden 18# LLVM: Other [ (0x2) 19# LLVM-NEXT: STV_HIDDEN (0x2) 20# LLVM-NEXT: ] 21# LLVM: Name: protected 22# LLVM: Other [ (0x3) 23# LLVM-NEXT: STV_PROTECTED (0x3) 24# LLVM-NEXT: ] 25 26# GNU: Vis Ndx Name 27# GNU-NEXT: DEFAULT UND 28# GNU-NEXT: DEFAULT UND default 29# GNU-NEXT: INTERNAL UND internal 30# GNU-NEXT: HIDDEN UND hidden 31# GNU-NEXT: PROTECTED UND protected 32 33--- !ELF 34FileHeader: 35 Class: ELFCLASS32 36 Data: ELFDATA2LSB 37 Type: ET_REL 38Symbols: 39 - Name: default 40 Other: [ STV_DEFAULT ] 41 Binding: STB_GLOBAL 42 - Name: internal 43 Other: [ STV_INTERNAL ] 44 Binding: STB_GLOBAL 45 - Name: hidden 46 Other: [ STV_HIDDEN ] 47 Binding: STB_GLOBAL 48 - Name: protected 49 Other: [ STV_PROTECTED ] 50 Binding: STB_GLOBAL 51 52## Check the output when we have non-visibility bits set for at least one of the symbols. 53 54# RUN: yaml2obj --docnum=2 %s -o %t2.o 55# RUN: llvm-readobj --symbols %t2.o | FileCheck %s --check-prefixes=LLVM,LLVM-OTHER 56# RUN: llvm-readelf --symbols %t2.o | FileCheck %s --strict-whitespace --check-prefix=GNU-OTHER 57 58# LLVM-OTHER: Name: other 59# LLVM-OTHER: Other [ (0x4) 60# LLVM-OTHER-NEXT: ] 61 62# GNU-OTHER: Vis Ndx Name 63# GNU-OTHER-NEXT: DEFAULT UND 64# GNU-OTHER-NEXT: DEFAULT UND default 65# GNU-OTHER-NEXT: INTERNAL UND internal 66# GNU-OTHER-NEXT: HIDDEN UND hidden 67# GNU-OTHER-NEXT: PROTECTED UND protected 68# GNU-OTHER-NEXT: DEFAULT [<other: 0x4>] UND other 69 70--- !ELF 71FileHeader: 72 Class: ELFCLASS32 73 Data: ELFDATA2LSB 74 Type: ET_REL 75Symbols: 76 - Name: default 77 Other: [ STV_DEFAULT ] 78 - Name: internal 79 Other: [ STV_INTERNAL ] 80 - Name: hidden 81 Other: [ STV_HIDDEN ] 82 - Name: protected 83 Other: [ STV_PROTECTED ] 84 - Name: other 85 Other: [ 4 ] 86