98 lines · yaml
1## Check that yaml2obj is able to produce an object from YAML2## containing symbols with duplicate names (but different name suffixes).3 4# RUN: yaml2obj --docnum=1 %s -o %t15# RUN: llvm-readobj --syms %t1 | FileCheck %s --check-prefix=CASE16 7# CASE1: Name: localfoo (1)8# CASE1: Name: localfoo (1)9 10--- !ELF11FileHeader:12 Class: ELFCLASS6413 Data: ELFDATA2LSB14 Type: ET_REL15Symbols:16 - Name: localfoo17 - Name: 'localfoo (1)'18 19## Check that yaml2obj reports an error when we have20## symbols with equal names and suffixes.21 22# RUN: not yaml2obj --docnum=2 %s 2>&1| FileCheck %s --check-prefix=CASE223# CASE2-COUNT-2: error: repeated symbol name: 'localfoo (1)'24 25--- !ELF26FileHeader:27 Class: ELFCLASS6428 Data: ELFDATA2LSB29 Type: ET_REL30Symbols:31 - Name: 'localfoo (1)'32 - Name: 'localfoo (1)'33 - Name: 'localfoo (1)'34 35## Check that yaml2obj reports an error when we have36## symbols without suffixes in the names and their37## names are equal.38 39# RUN: not yaml2obj --docnum=3 %s 2>&1| FileCheck %s --check-prefix=CASE340# CASE3: error: repeated symbol name: 'localfoo'41# CASE3: error: repeated symbol name: 'localfoo'42 43--- !ELF44FileHeader:45 Class: ELFCLASS6446 Data: ELFDATA2LSB47 Type: ET_REL48Symbols:49 - Name: localfoo50 - Name: localfoo51 - Name: localfoo52 53## Check that yaml2obj can produce correct relocations that54## reference symbols with name suffixes.55 56# RUN: yaml2obj --docnum=4 %s -o %t457# RUN: llvm-readobj -r --expand-relocs %t4 | FileCheck %s --check-prefix=CASE458 59# CASE4: Relocations [60# CASE4-NEXT: Section {{.*}} .rela.text {61# CASE4-NEXT: Relocation {62# CASE4-NEXT: Offset: 0x063# CASE4-NEXT: Type: R_X86_64_NONE64# CASE4-NEXT: Symbol: foo (1)65# CASE4-NEXT: Addend: 0x066# CASE4-NEXT: }67# CASE4-NEXT: Relocation {68# CASE4-NEXT: Offset: 0x169# CASE4-NEXT: Type: R_X86_64_NONE70# CASE4-NEXT: Symbol: foo (2)71# CASE4-NEXT: Addend: 0x072# CASE4-NEXT: }73# CASE4-NEXT: }74# CASE4-NEXT: ]75 76--- !ELF77FileHeader:78 Class: ELFCLASS6479 Data: ELFDATA2LSB80 Type: ET_REL81 Machine: EM_X86_6482Sections:83 - Name: .text84 Type: SHT_PROGBITS85 - Name: .rela.text86 Type: SHT_RELA87 Info: .text88 Link: .symtab89 Relocations:90 - Type: R_X86_64_NONE91 Symbol: foo92 - Offset: 0x193 Type: R_X86_64_NONE94 Symbol: 'foo (1)'95Symbols:96 - Name: foo97 - Name: 'foo (1)'98