## Show which labels are printed in disassembly of a relocatable object.

# RUN: yaml2obj %s -o %t
# RUN: llvm-objdump %t -d | FileCheck %s --implicit-check-not=stt_section \
# RUN:                                   --implicit-check-not=first \
# RUN:                                   --implicit-check-not=second \
# RUN:                                   --implicit-check-not=third \
# RUN:                                   --implicit-check-not=fourth \
# RUN:                                   --implicit-check-not=absolute \
# RUN:                                   --implicit-check-not=other

# CHECK: {{.*}}: file format {{.*}}
# CHECK: Disassembly of section .text:
# CHECK: 0000000000000000 first:
# CHECK: 0000000000000001 second:
# CHECK: 0000000000000002 third:
# CHECK: Disassembly of section .text2:
# CHECK: 0000000000000004 other:

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name:    .text
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC, SHF_EXECINSTR]
    Content: '909090909090'
  - Name:    .text2
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC, SHF_EXECINSTR]
    Content: '9090909090'
Symbols:
  - Name:    first
    Value:   0
    Section: .text
    Size:    2
  - Name:    second # Shows, with first, that symbol sizes are not used to delineate functions.
    Value:   1
    Size:    1
    Section: .text
  - Name:    third # Shows, with fourth, that first symbol is picked.
    Value:   2
    Section: .text
  - Name:    fourth
    Value:   2
    Section: .text
  - Name:    stt_section # Shows that STT_SECTION symbols are ignored even if no other symbol present.
    Value:   3
    Type:    STT_SECTION
    Section: .text
  - Name:    absolute # Show that absolute symbols are ignored.
    Value:   4
    Index:   SHN_ABS
  - Name:    other # Show that symbols in other sections are ignored.
    Value:   4
    Section: .text2
