## Test that llvm-objdump can dump dynamic symbols.
# RUN: yaml2obj --docnum=1 %s -o %t1
# RUN: llvm-objdump --dynamic-syms %t1 | \
# RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=DYNSYM
# RUN: llvm-objdump -T %t1 | \
# RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=DYNSYM

#       DYNSYM:{{.*}}file format elf64-x86-64
# DYNSYM-EMPTY:
#  DYNSYM-NEXT:DYNAMIC SYMBOL TABLE:
#  DYNSYM-NEXT:0000000000000000 l    DO .data	0000000000000000 localsym
#  DYNSYM-NEXT:0000000000000000 g    DO .data	0000000000000000 globalsym
#  DYNSYM-NEXT:0000000000000000 u    DO .data	0000000000000000 uniqueglobalsym
#  DYNSYM-NEXT:0000000000000000  w   DO .data	0000000000000000 weaksym
#  DYNSYM-NEXT:0000000000000000 g    Df .data	0000000000000000 filesym
#  DYNSYM-NEXT:0000000000000000 g    DF .data	0000000000000000 funcsym
# DYNSYM-EMPTY:

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name:  .data
    Type:  SHT_PROGBITS
    Flags: [ SHF_ALLOC, SHF_WRITE ]
DynamicSymbols:
  - Name:    localsym
    Type:    STT_OBJECT
    Section: .data
    Binding: STB_LOCAL
  - Name:    globalsym
    Type:    STT_OBJECT
    Section: .data
    Binding: STB_GLOBAL
  - Name:    uniqueglobalsym
    Type:    STT_OBJECT
    Section: .data
    Binding: STB_GNU_UNIQUE
  - Name:    weaksym
    Type:    STT_OBJECT
    Section: .data
    Binding: STB_WEAK
  - Name:    filesym
    Type:    STT_FILE
    Section: .data
    Binding: STB_GLOBAL
  - Name:    funcsym
    Type:    STT_FUNC
    Section: .data
    Binding: STB_GLOBAL

## Test dumping ELF files with no .dynsym section.
# RUN: yaml2obj --docnum=2 %s -o %t2
# RUN: llvm-objdump --dynamic-syms %t2 | \
# RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=NODYNSYM
# RUN: llvm-objdump -T %t2 | \
# RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=NODYNSYM

#       NODYNSYM:DYNAMIC SYMBOL TABLE:
# NODYNSYM-EMPTY:

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64

## Test dumping ELF files with logically empty .dynsym section (only has a 0-index NULL symbol).
# RUN: yaml2obj --docnum=3 %s -o %t3
# RUN: llvm-objdump --dynamic-syms %t3 | \
# RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=ONLY-NULL
# RUN: llvm-objdump -T %t3 | \
# RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=ONLY-NULL

#       ONLY-NULL:DYNAMIC SYMBOL TABLE:
# ONLY-NULL-EMPTY:

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
DynamicSymbols: []

## Test dumping ELF files with truly empty .dynsym section (size of .dynsym section is 0).
# RUN: yaml2obj --docnum=4 %s -o %t4
# RUN: llvm-objdump --dynamic-syms %t4 | \
# RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=EMPTY
# RUN: llvm-objdump -T %t4 | \
# RUN:   FileCheck %s --match-full-lines --strict-whitespace --check-prefix=EMPTY

#       EMPTY:DYNAMIC SYMBOL TABLE:
# EMPTY-EMPTY:

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Sections:
  - Name: .dynsym
    Type: SHT_DYNSYM
    Size: 0
