Recommit r371023 "[lib/ObjectYAML] - Stop calling error(1) when mapping the st_other...
[llvm-complete.git] / test / tools / yaml2obj / duplicate-symbol-names.test
blobf4a6be942cfa56cb4c10841e9b074a6c5670f2fd
1 ## Check that yaml2obj is able to produce an object from YAML
2 ## containing symbols with duplicate names (but different name suffixes).
4 # RUN: yaml2obj --docnum=1 %s -o %t1
5 # RUN: llvm-readobj -t %t1 | FileCheck %s --check-prefix=CASE1
7 # CASE1: Name: localfoo (1)
8 # CASE1: Name: localfoo (1)
10 --- !ELF
11 FileHeader:
12   Class:   ELFCLASS64
13   Data:    ELFDATA2LSB
14   Type:    ET_REL
15   Machine: EM_X86_64
16 Symbols:
17   - Name: localfoo
18   - Name: 'localfoo [1]'
20 ## Check that yaml2obj reports an error when we have
21 ## symbols with equal names and suffixes.
23 # RUN: not yaml2obj --docnum=2 %s 2>&1| FileCheck %s --check-prefix=CASE2
24 # CASE2: error: Repeated symbol name: 'localfoo [1]'.
26 --- !ELF
27 FileHeader:
28   Class:   ELFCLASS64
29   Data:    ELFDATA2LSB
30   Type:    ET_REL
31   Machine: EM_X86_64
32 Symbols:
33   - Name: 'localfoo [1]'
34   - Name: 'localfoo [1]'
36 ## Check that yaml2obj reports an error when we have
37 ## symbols without suffixes in the names and their
38 ## names are equal.
40 # RUN: not yaml2obj --docnum=3 %s 2>&1| FileCheck %s --check-prefix=CASE3
41 # CASE3: error: Repeated symbol name: 'localfoo'.
43 --- !ELF
44 FileHeader:
45   Class:   ELFCLASS64
46   Data:    ELFDATA2LSB
47   Type:    ET_REL
48   Machine: EM_X86_64
49 Symbols:
50   - Name:    localfoo
51     Section: .text.foo.1
52   - Name:    localfoo
53     Section: .text.foo.2
55 ## Check that yaml2obj can produce correct relocations that
56 ## reference symbols with name suffixes.
58 # RUN: yaml2obj --docnum=4 %s -o %t4
59 # RUN: llvm-readobj -r --expand-relocs %t4 | FileCheck %s --check-prefix=CASE4
61 # CASE4:      Relocations [
62 # CASE4-NEXT:   Section {{.*}} .rela.text {
63 # CASE4-NEXT:     Relocation {
64 # CASE4-NEXT:       Offset: 0x0
65 # CASE4-NEXT:       Type: R_X86_64_NONE
66 # CASE4-NEXT:       Symbol: foo (1)
67 # CASE4-NEXT:       Addend: 0x0
68 # CASE4-NEXT:     }
69 # CASE4-NEXT:     Relocation {
70 # CASE4-NEXT:       Offset: 0x1
71 # CASE4-NEXT:       Type: R_X86_64_NONE
72 # CASE4-NEXT:       Symbol: foo (2)
73 # CASE4-NEXT:       Addend: 0x0
74 # CASE4-NEXT:     }
75 # CASE4-NEXT:   }
76 # CASE4-NEXT: ]
78 --- !ELF
79 FileHeader:
80   Class:   ELFCLASS64
81   Data:    ELFDATA2LSB
82   Type:    ET_REL
83   Machine: EM_X86_64
84 Sections:
85   - Name: .text
86     Type: SHT_PROGBITS
87   - Name: .rela.text
88     Type: SHT_RELA
89     Info: .text
90     Link: .symtab
91     Relocations:
92       - Offset: 0x0
93         Type:   R_X86_64_NONE
94         Symbol: foo
95       - Offset: 0x1
96         Type:   R_X86_64_NONE
97         Symbol: 'foo [1]'
98 Symbols:
99   - Name: foo
100   - Name: 'foo [1]'