# Show that llvm-readobj prints the symbol visibility where recognised, or
# something sensible when not, for both GNU and LLVM output.

# Use --dyn-symbols because it is only possible to hand-craft symbols with
# non-standard st_other values for .dynsym.
# RUN: yaml2obj %s > %t
# RUN: llvm-readobj --symbols --dyn-symbols %t | FileCheck %s --check-prefix=LLVM
# RUN: llvm-readelf --symbols --dyn-symbols %t | FileCheck %s --check-prefix=GNU

# LLVM:      Name: default
# LLVM:      Other: 0
# LLVM:      Name: internal
# LLVM:      Other [ (0x1)
# LLVM-NEXT:   STV_INTERNAL (0x1)
# LLVM-NEXT: ]
# LLVM:      Name: hidden
# LLVM:      Other [ (0x2)
# LLVM-NEXT:   STV_HIDDEN (0x2)
# LLVM-NEXT: ]
# LLVM:      Name: protected
# LLVM:      Other [ (0x3)
# LLVM-NEXT:   STV_PROTECTED (0x3)
# LLVM-NEXT: ]
# LLVM:      Name: other
# LLVM:      Other [ (0x4)
# LLVM-NEXT: ]

# FIXME - the "other" symbol should print something indicating its non-zero st_other value.
# See https://bugs.llvm.org/show_bug.cgi?id=40785.
# GNU:      DEFAULT   {{.*}} other
# GNU:      DEFAULT   {{.*}} default
# GNU-NEXT: INTERNAL  {{.*}} internal
# GNU-NEXT: HIDDEN    {{.*}} hidden
# GNU-NEXT: PROTECTED {{.*}} protected

!ELF
FileHeader:
  Class:   ELFCLASS32
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_386
Sections:
  - Name: .dynstr
    Type: SHT_STRTAB
    #\0other\0
    Content: "006f7468657200"
  - Name: .dynsym
    Type: SHT_DYNSYM
    Link: .dynstr
    EntSize: 16
    # Null symbol
    # Symbol with st_name = 1, st_other = 0x4
    Content: "0000000000000000000000000000000001000000000000000000000000040000"
Symbols:
  - Name: default
    Visibility: STV_DEFAULT
    Binding: STB_GLOBAL
  - Name: internal
    Visibility: STV_INTERNAL
    Binding: STB_GLOBAL
  - Name: hidden
    Visibility: STV_HIDDEN
    Binding: STB_GLOBAL
  - Name: protected
    Visibility: STV_PROTECTED
    Binding: STB_GLOBAL
