symbol-visibility.yaml 1.8 KB
## Check yaml2obj is able to parse the Visibility field and produce the output.

# RUN: yaml2obj %s | llvm-readobj --symbols - | FileCheck --check-prefix OBJ %s

# OBJ:      Symbol {
# OBJ:        Name: default1
# OBJ-NEXT:   Value: 0x0
# OBJ-NEXT:   Size: 0
# OBJ-NEXT:   Binding: Local (0x0)
# OBJ-NEXT:   Type: None (0x0)
# OBJ-NEXT:   Other: 0
# OBJ-NEXT:   Section: Undefined (0x0)
# OBJ-NEXT: }
# OBJ-NEXT: Symbol {
# OBJ-NEXT:   Name: default2
# OBJ-NEXT:   Value: 0x0
# OBJ-NEXT:   Size: 0
# OBJ-NEXT:   Binding: Local (0x0)
# OBJ-NEXT:   Type: None (0x0)
# OBJ-NEXT:   Other: 0
# OBJ-NEXT:   Section: Undefined (0x0)
# OBJ-NEXT: }
# OBJ-NEXT: Symbol {
# OBJ-NEXT:   Name: internal
# OBJ-NEXT:   Value: 0x0
# OBJ-NEXT:   Size: 0
# OBJ-NEXT:   Binding: Local (0x0)
# OBJ-NEXT:   Type: None (0x0)
# OBJ-NEXT:   Other [ (0x1)
# OBJ-NEXT:     STV_INTERNAL (0x1)
# OBJ-NEXT:   ]
# OBJ-NEXT:   Section: Undefined (0x0)
# OBJ-NEXT: }
# OBJ-NEXT: Symbol {
# OBJ-NEXT:   Name: hidden
# OBJ-NEXT:   Value: 0x0
# OBJ-NEXT:   Size: 0
# OBJ-NEXT:   Binding: Local (0x0)
# OBJ-NEXT:   Type: None (0x0)
# OBJ-NEXT:   Other [ (0x2)
# OBJ-NEXT:     STV_HIDDEN (0x2)
# OBJ-NEXT:   ]
# OBJ-NEXT:   Section: Undefined (0x0)
# OBJ-NEXT: }
# OBJ-NEXT: Symbol {
# OBJ-NEXT:   Name: protected
# OBJ-NEXT:   Value: 0x0
# OBJ-NEXT:   Size: 0
# OBJ-NEXT:   Binding: Local (0x0)
# OBJ-NEXT:   Type: None (0x0)
# OBJ-NEXT:   Other [ (0x3)
# OBJ-NEXT:     STV_PROTECTED (0x3)
# OBJ-NEXT:   ]
# OBJ-NEXT:   Section: Undefined (0x0)
# OBJ-NEXT: }

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Symbols:
  - Name:  default1
  - Name:  default2
    Other: [ STV_DEFAULT ]
  - Name:  internal
    Other: [ STV_INTERNAL ]
  - Name:  hidden
    Other: [ STV_HIDDEN ]
  - Name:  protected
    Other: [ STV_PROTECTED ]