Recommit "rL366894: [yaml2obj] - Allow custom fields for the SHT_UNDEF sections."
[llvm-complete.git] / test / tools / llvm-readobj / elf-reloc-zero-name-or-value.test
blob6b1a41637b432b73b289979518effc110f7250a3
1 # Show that the value field is omitted if a symbol has no name or value, but is
2 # printed if one is present. Test for both static and dynamic relocation
3 # printing.
5 # RUN: yaml2obj %s -o %t
6 # RUN: llvm-readelf --relocations --dyn-relocations %t | FileCheck %s
8 # CHECK:      Relocation section '.rela.text' at offset {{.*}} contains 2 entries:
9 # CHECK-NEXT:     Offset             Info             Type               Symbol's Value  Symbol's Name + Addend
10 # CHECK-NEXT: 0000000000000000  0000000000000000 R_X86_64_NONE                           1
11 # CHECK-NEXT: 0000000000000000  0000000100000000 R_X86_64_NONE          0000000000000000 sym + 1
13 # CHECK:      Relocation section '.rela.dyn' at offset {{.*}} contains 2 entries:
14 # CHECK-NEXT:     Offset             Info             Type               Symbol's Value  Symbol's Name + Addend
15 # CHECK-NEXT: 0000000000000000  0000000000000000 R_X86_64_NONE                           1
16 # CHECK-NEXT: 0000000000000000  0000000100000000 R_X86_64_NONE          0000000000000000 sym + 1
18 # CHECK:      'RELA' relocation section at offset {{.*}} contains 48 bytes:
19 # CHECK-NEXT:     Offset             Info             Type               Symbol's Value  Symbol's Name + Addend
20 # CHECK-NEXT: 0000000000000000  0000000000000000 R_X86_64_NONE                           1
21 # CHECK-NEXT: 0000000000000000  0000000100000000 R_X86_64_NONE          0000000000000000 sym + 1
23 # TODO: Add test for symbol with no name but with a value once yaml2obj allows
24 # referencing symbols with no name from relocations.
26 --- !ELF
27 FileHeader:
28   Class:   ELFCLASS64
29   Data:    ELFDATA2LSB
30   Type:    ET_EXEC
31   Machine: EM_X86_64
32 Sections:
33   - Name: .text
34     Type: SHT_PROGBITS
35     Size: 0x10
36   - Name: .rela.text
37     Type: SHT_RELA
38     Link: .symtab
39     Info: .text
40     Relocations:
41       - Offset: 0
42         Type: R_X86_64_NONE
43         Addend: 1
44       - Offset: 0
45         Type: R_X86_64_NONE
46         Addend: 1
47         Symbol: sym
48   - Name: .dynamic
49     Type: SHT_DYNAMIC
50     Flags: [SHF_ALLOC]
51     Address: 0x1000
52     AddressAlign: 0x1000
53     Entries:
54       - Tag: DT_RELA
55         Value: 0x1100
56       - Tag: DT_RELASZ
57         Value: 48
58       - Tag: DT_RELAENT
59         Value: 24
60       - Tag: DT_NULL
61         Value: 0
62   - Name: .rela.dyn
63     Type: SHT_RELA
64     Flags: [SHF_ALLOC]
65     Info: .text
66     Address: 0x1100
67     AddressAlign: 0x100
68     Relocations:
69       - Offset: 0
70         Type: R_X86_64_NONE
71         Addend: 1
72       - Offset: 0
73         Type: R_X86_64_NONE
74         Addend: 1
75         Symbol: sym
76 Symbols:
77   - Name:    sym
78     Value:   0
79     Section: .text
80     Binding: STB_GLOBAL
81 DynamicSymbols:
82   - Name:    sym
83     Value:   0
84     Section: .text
85     Binding: STB_GLOBAL
86 ProgramHeaders:
87   - Type: PT_LOAD
88     VAddr: 0x1000
89     Sections:
90       - Section: .rela.dyn
91       - Section: .dynamic
92   - Type: PT_DYNAMIC
93     VAddr: 0x1000
94     Sections:
95       - Section: .dynamic