| ## Check that yaml2obj is able to produce an object from YAML |
| ## containing symbols with duplicate names (but different name suffixes). |
| |
| # RUN: yaml2obj --docnum=1 %s -o %t1 |
| # RUN: llvm-readobj -t %t1 | FileCheck %s --check-prefix=CASE1 |
| |
| # CASE1: Name: localfoo (1) |
| # CASE1: Name: localfoo (1) |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Symbols: |
| - Name: localfoo |
| - Name: 'localfoo [1]' |
| |
| ## Check that yaml2obj reports an error when we have |
| ## symbols with equal names and suffixes. |
| |
| # RUN: not yaml2obj --docnum=2 %s 2>&1| FileCheck %s --check-prefix=CASE2 |
| # CASE2-COUNT-2: error: repeated symbol name: 'localfoo [1]' |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Symbols: |
| - Name: 'localfoo [1]' |
| - Name: 'localfoo [1]' |
| - Name: 'localfoo [1]' |
| |
| ## Check that yaml2obj reports an error when we have |
| ## symbols without suffixes in the names and their |
| ## names are equal. |
| |
| # RUN: not yaml2obj --docnum=3 %s 2>&1| FileCheck %s --check-prefix=CASE3 |
| # CASE3: error: repeated symbol name: 'localfoo' |
| # CASE3: error: repeated symbol name: 'localfoo' |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Symbols: |
| - Name: localfoo |
| - Name: localfoo |
| - Name: localfoo |
| |
| ## Check that yaml2obj can produce correct relocations that |
| ## reference symbols with name suffixes. |
| |
| # RUN: yaml2obj --docnum=4 %s -o %t4 |
| # RUN: llvm-readobj -r --expand-relocs %t4 | FileCheck %s --check-prefix=CASE4 |
| |
| # CASE4: Relocations [ |
| # CASE4-NEXT: Section {{.*}} .rela.text { |
| # CASE4-NEXT: Relocation { |
| # CASE4-NEXT: Offset: 0x0 |
| # CASE4-NEXT: Type: R_X86_64_NONE |
| # CASE4-NEXT: Symbol: foo (1) |
| # CASE4-NEXT: Addend: 0x0 |
| # CASE4-NEXT: } |
| # CASE4-NEXT: Relocation { |
| # CASE4-NEXT: Offset: 0x1 |
| # CASE4-NEXT: Type: R_X86_64_NONE |
| # CASE4-NEXT: Symbol: foo (2) |
| # CASE4-NEXT: Addend: 0x0 |
| # CASE4-NEXT: } |
| # CASE4-NEXT: } |
| # CASE4-NEXT: ] |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| - Name: .rela.text |
| Type: SHT_RELA |
| Info: .text |
| Link: .symtab |
| Relocations: |
| - Offset: 0x0 |
| Type: R_X86_64_NONE |
| Symbol: foo |
| - Offset: 0x1 |
| Type: R_X86_64_NONE |
| Symbol: 'foo [1]' |
| Symbols: |
| - Name: foo |
| - Name: 'foo [1]' |