## Show the disassembly behaviour when dynamic symbols are present.
# RUN: yaml2obj %s -o %t

## Case 1: Both static and dynamic symbols are present. Only static
## symbols are displayed.
# RUN: llvm-objdump -d %t | FileCheck %s --check-prefixes=CHECK,STATIC

## Case 2: Only the dynamic symbols are present. These should be displayed, if
## they meet the necessary criteria.
# RUN: llvm-objcopy --strip-all %t %t2
# RUN: llvm-objdump -d %t2 | FileCheck %s --check-prefixes=CHECK,DYN

# CHECK:       Disassembly of section .text:
# CHECK-EMPTY:
# STATIC-NEXT: 0000000000001000 <.text>:
# DYN-NEXT:    0000000000001000 <only_dyn>:
# CHECK-NEXT:      1000:
# CHECK-EMPTY:
# STATIC-NEXT: 0000000000001001 <both_static>:
# DYN-NEXT:    0000000000001001 <both_dyn>:
# CHECK-NEXT:      1001:
# STATIC-EMPTY:
# STATIC-NEXT: 0000000000001002 <only_static>:
# CHECK-NEXT:      1002:
# DYN-EMPTY:
# DYN-NEXT:    0000000000001003 <object>:
# CHECK-NEXT:      1003:
# DYN-EMPTY:
# DYN-NEXT:    0000000000001004 <zero_sized>:
# CHECK-NEXT:      1004:
# DYN-EMPTY:
# DYN-NEXT:    0000000000001005 <common>:
# CHECK-NEXT:      1005:
# DYN-EMPTY:
# DYN-NEXT:    0000000000001006 <loos>:
# CHECK-NEXT:      1006:
# DYN-EMPTY:
# DYN-NEXT:    0000000000001007 <loproc>:
# CHECK-NEXT:      1007:
# CHECK-NEXT:      1008:
# CHECK-NEXT:      1009:
# CHECK-NEXT:      100a:
# CHECK-NEXT:      100b:{{.*}}
# CHECK-NOT:   {{.}}

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name:    .text
    Type:    SHT_PROGBITS
    Flags:   [SHF_ALLOC, SHF_EXECINSTR]
    Address: 0x1000
    Content: 909090909090909090909090
ProgramHeaders:
  - Type: PT_LOAD
    VAddr: 0x1000
    Sections:
      - Section: .text
Symbols:
  - Name:    both_static
    Value:   0x1001
    Section: .text
    Binding: STB_GLOBAL
  - Name:    only_static
    Value:   0x1002
    Section: .text
    Binding: STB_GLOBAL
DynamicSymbols:
  - Name:    only_dyn
    Value:   0x1000
    Section: .text
    Size:    1
    Type:    STT_FUNC
    Binding: STB_GLOBAL
  - Name:    both_dyn
    Value:   0x1001
    Section: .text
    Size:    1
    Type:    STT_NOTYPE
    Binding: STB_GLOBAL
  - Name:    object
    Value:   0x1003
    Section: .text
    Size:    1
    Type:    STT_OBJECT
    Binding: STB_GLOBAL
  - Name:    zero_sized
    Value:   0x1004
    Section: .text
    Type:    STT_FUNC
    Binding: STB_GLOBAL
  - Name:    common
    Value:   0x1005
    Section: .text
    Size:    1
    Type:    STT_COMMON
    Binding: STB_GLOBAL
  - Name:    loos
    Value:   0x1006
    Section: .text
    Size:    1
    Type:    10
    Binding: STB_GLOBAL
  - Name:    loproc
    Value:   0x1007
    Section: .text
    Size:    1
    Type:    13
    Binding: STB_GLOBAL
  ## The rest of the dynamic symbols won't be used for various reasons.
  - Name:    section
    Value:   0x1008
    Section: .text
    Size:    1
    Type:    STT_SECTION
    Binding: STB_GLOBAL
  - Name:    '' # No name
    Value:   0x1009
    Section: .text
    Size:    1
    Type:    STT_FUNC
    Binding: STB_GLOBAL
  - Name:    absolute
    Value:   0x100a
    Index:   SHN_ABS
    Size:    1
    Type:    STT_FUNC
    Binding: STB_GLOBAL
  - Name:    undefined
    Value:   0x100b
    Index:   SHN_UNDEF
    Size:    1
    Type:    STT_FUNC
    Binding: STB_GLOBAL
