## Check that obj2yaml is able to produce YAML from
## an object containing symbols and sections with duplicate
## names and produces same-named sections and symbols
## with distinguishing suffixes.

# RUN: yaml2obj --docnum=1 %s -o %t1
# RUN: llvm-readobj -s -t %t1 | FileCheck %s

# CHECK: Name: .foo (
# CHECK: Name: .foo (
# CHECK: Name: .foo (
# CHECK: Name: .bar (
# CHECK: Name: .bar (
# CHECK: Name: .bar (

# CHECK: Name: localfoo (
# CHECK: Name: localfoo (
# CHECK: Name: localfoo (
# CHECK: Name: localbar (
# CHECK: Name: localbar (
# CHECK: Name: localbar (

# RUN: obj2yaml %t1 | FileCheck %s --check-prefix=CASE1

# CASE1:      --- !ELF
# CASE1-NEXT: FileHeader:
# CASE1-NEXT:   Class:   ELFCLASS64
# CASE1-NEXT:   Data:    ELFDATA2LSB
# CASE1-NEXT:   Type:    ET_REL
# CASE1-NEXT:   Machine: EM_X86_64
# CASE1-NEXT: Sections:
# CASE1-NEXT:   - Name: .foo
# CASE1-NEXT:     Type: SHT_PROGBITS
# CASE1-NEXT:   - Name: '.foo [1]'
# CASE1-NEXT:     Type: SHT_PROGBITS
# CASE1-NEXT:   - Name: '.foo [2]'
# CASE1-NEXT:     Type: SHT_PROGBITS
# CASE1-NEXT:   - Name: .bar
# CASE1-NEXT:     Type: SHT_PROGBITS
# CASE1-NEXT:   - Name: '.bar [1]'
# CASE1-NEXT:     Type: SHT_PROGBITS
# CASE1-NEXT:   - Name: '.bar [2]'
# CASE1-NEXT:     Type: SHT_PROGBITS
# CASE1-NEXT: Symbols:
# CASE1-NEXT:   - Name: localfoo
# CASE1-NEXT:   - Name: 'localfoo [1]'
# CASE1-NEXT:   - Name: 'localfoo [2]'
# CASE1-NEXT:   - Name: localbar
# CASE1-NEXT:   - Name: 'localbar [1]'
# CASE1-NEXT:   - Name: 'localbar [2]'
# CASE1-NEXT: ...

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .foo
    Type: SHT_PROGBITS
  - Name: '.foo [555]'
    Type: SHT_PROGBITS
  - Name: '.foo [random_tag]'
    Type: SHT_PROGBITS
  - Name: .bar
    Type: SHT_PROGBITS
  - Name: '.bar [666]'
    Type: SHT_PROGBITS
  - Name: '.bar [random_tag]'
    Type: SHT_PROGBITS
Symbols:
  - Name: 'localfoo [111]'
  - Name: 'localfoo [222]'
  - Name: 'localfoo [random_tag]' 
  - Name: 'localbar [333]'
  - Name: 'localbar [444]'
  - Name: 'localbar [random_tag]' 

## Check we can refer to symbols with the same
## name from relocations.

# RUN: yaml2obj --docnum=2 %s -o %t2
# RUN: obj2yaml %t2 | FileCheck %s --check-prefix=CASE2

# CASE2:      Relocations:
# CASE2-NEXT:  - Offset: 0x0000000000000000
# CASE2-NEXT:    Symbol: 'foo [1]'
# CASE2-NEXT:    Type:   R_X86_64_PC32
# CASE2-NEXT:  - Offset: 0x0000000000000004
# CASE2-NEXT:    Symbol: foo
# CASE2-NEXT:    Type:   R_X86_64_PC32
# CASE2-NEXT: Symbols:
# CASE2-NEXT:  - Name: foo
# CASE2-NEXT:  - Name: 'foo [1]'
  
--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .text
    Type: SHT_PROGBITS
    Size: 8
  - Name: .rela.text
    Type: SHT_RELA
    Info: .text
    Link: .symtab
    Relocations:
      - Type: R_X86_64_PC32
        Offset: 0
        Symbol: 'foo [1]'
      - Type: R_X86_64_PC32
        Offset: 4
        Symbol: foo
Symbols:
  - Name: foo
  - Name: 'foo [1]'

## Check obj2yaml does not add a suffix to a name if the
## symbol is in .symtab and .dynsym at the same time.

# RUN: yaml2obj --docnum=3 %s -o %t3
# RUN: obj2yaml %t3 | FileCheck %s --check-prefix=CASE3

# CASE3:      --- !ELF
# CASE3-NEXT: FileHeader:
# CASE3-NEXT:   Class:   ELFCLASS64
# CASE3-NEXT:   Data:    ELFDATA2LSB
# CASE3-NEXT:   Type:    ET_DYN
# CASE3-NEXT:   Machine: EM_X86_64
# CASE3-NEXT: Symbols:
# CASE3-NEXT:   - Name:    foo
# CASE3-NEXT:     Binding: STB_GLOBAL
# CASE3-NEXT: DynamicSymbols:
# CASE3-NEXT:   - Name:    foo
# CASE3-NEXT:     Binding: STB_GLOBAL

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_DYN
  Machine: EM_X86_64
Symbols:
  - Name:    foo
    Binding: STB_GLOBAL
DynamicSymbols:
  - Name:    foo
    Binding: STB_GLOBAL
