Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / tools / llvm-readobj / ELF / bb-addr-map-relocatable.test
blob6ac27941853fed639396c92456907278bb96e78f
1 ## This test checks how we handle the --bb-addr-map option on relocatable
2 ## object files.
4 ## Fails on windows (https://github.com/llvm/llvm-project/issues/60013).
5 # UNSUPPORTED: system-windows
7 # RUN: yaml2obj %s -o %t1.o
8 # RUN: llvm-readobj %t1.o --bb-addr-map | FileCheck %s
10 # CHECK:      BBAddrMap [
11 # CHECK-NEXT:   Function {
12 # CHECK-NEXT:     At: 0x0
13 # CHECK-NEXT:     Name: <?>
14 # CHECK-NEXT:     BB entries [
15 # CHECK-NEXT:       {
16 # CHECK-NEXT:         ID: 0
17 # CHECK-NEXT:         Offset: 0x0
18 # CHECK-NEXT:         Size: 0xF
19 # CHECK-NEXT:         HasReturn: Yes
20 # CHECK-NEXT:         HasTailCall: No
21 # CHECK-NEXT:         IsEHPad: No
22 # CHECK-NEXT:         CanFallThrough: No
23 # CHECK-NEXT:         HasIndirectBranch: No
24 # CHECK-NEXT:       }
25 # CHECK-NEXT:     ]
26 # CHECK-NEXT:   }
27 # CHECK-NEXT:   Function {
28 # CHECK-NEXT:     At: 0x10
29 # CHECK-NEXT:     Name: <?>
30 # CHECK-NEXT:     BB entries [
31 # CHECK-NEXT:       {
32 # CHECK-NEXT:         ID: 0
33 # CHECK-NEXT:         Offset: 0x0
34 # CHECK-NEXT:         Size: 0x11
35 # CHECK-NEXT:         HasReturn: No
36 # CHECK-NEXT:         HasTailCall: No
37 # CHECK-NEXT:         IsEHPad: No
38 # CHECK-NEXT:         CanFallThrough: Yes
39 # CHECK-NEXT:         HasIndirectBranch: No
40 # CHECK-NEXT:       }
41 # CHECK-NEXT:     ]
42 # CHECK-NEXT:   }
43 # CHECK-NEXT: ]
45 --- !ELF
46 FileHeader:
47   Class:           ELFCLASS64
48   Data:            ELFDATA2LSB
49   Type:            ET_REL
50   Machine:         EM_X86_64
51 Sections:
52   - Name:    .text
53     Type:    SHT_PROGBITS
54     Flags:   [ SHF_ALLOC, SHF_EXECINSTR ]
55   - Name:    .llvm_bb_addr_map
56     Type:    SHT_LLVM_BB_ADDR_MAP
57     Link:    .text
58     Entries:
59       - Version: 2
60         BBEntries:
61           - ID:              0
62             AddressOffset:   0x0
63             Size:            0xF
64             Metadata:        0x1
65       - Version: 2
66         BBEntries:
67           - ID:              0
68             AddressOffset:   0x0
69             Size:            0x11
70             Metadata:        0x8
71   - Name:  .rela.llvm_bb_addr_map
72     Type:  SHT_RELA
73     Flags: [ SHF_INFO_LINK ]
74     Link:  .symtab
75     Info:  .llvm_bb_addr_map
76     Relocations:
77       - Offset: 0x2
78         Symbol: .text
79         Type:   R_X86_64_64
80       - Offset: 0x11
81         Symbol: .text
82         Type:   R_X86_64_64
83         Addend: 16
84 Symbols:
85   - Name:    a
86     Section: .text
87     Value:   0x0
88   - Name:    c
89     Section: .text
90     Value:   0x10
91   - Name:    .text
92     Type:    STT_SECTION
93     Section: .text
95 ## Check that if we have a relocatable file and no relocation section for
96 ## a SHT_LLVM_BB_ADDR_MAP section, we give the appropriate warnings.
98 --- !ELF
99 FileHeader:
100   Class:           ELFCLASS64
101   Data:            ELFDATA2LSB
102   Type:            ET_REL
103   Machine:         EM_X86_64
104 Sections:
105   - Name:    .text
106     Type:    SHT_PROGBITS
107     Flags:   [ SHF_ALLOC, SHF_EXECINSTR ]
108   - Name:    .llvm_bb_addr_map
109     Type:    SHT_LLVM_BB_ADDR_MAP
110     Link:    .text
112 # RUN: yaml2obj %s --docnum=2 -o %t2.o
113 # RUN: llvm-readobj %t2.o --bb-addr-map 2>&1 | FileCheck %s --check-prefix=NO-RELA -DFILE=%t2.o
115 # NO-RELA: warning: '[[FILE]]': unable to get relocation section for SHT_LLVM_BB_ADDR_MAP section with index 2
117 ## Check that we get a warning if we expect a relocation and it is not present.
119 --- !ELF
120 FileHeader:
121   Class:           ELFCLASS64
122   Data:            ELFDATA2LSB
123   Type:            ET_REL
124   Machine:         EM_X86_64
125 Sections:
126   - Name:    .text
127     Type:    SHT_PROGBITS
128     Flags:   [ SHF_ALLOC, SHF_EXECINSTR ]
129   - Name:    .llvm_bb_addr_map
130     Type:    SHT_LLVM_BB_ADDR_MAP
131     Link:    .text
132     Entries:
133       - Version: 2
134         BBEntries:
135           - ID:              0
136             AddressOffset:   0x0
137             Size:            0xF
138             Metadata:        0x1
139   - Name:  .rela.llvm_bb_addr_map
140     Type:  SHT_RELA
141     Flags: [ SHF_INFO_LINK ]
142     Info:  .llvm_bb_addr_map
144 # RUN: yaml2obj %s --docnum=3 -o %t3.o
145 # RUN: llvm-readobj %t3.o --bb-addr-map 2>&1 | FileCheck %s --check-prefix=MISSING-RELOCATION -DFILE=%t3.o
147 # MISSING-RELOCATION: warning: '[[FILE]]': unable to dump SHT_LLVM_BB_ADDR_MAP section with index 2: failed to get relocation data for offset: 2 in section SHT_LLVM_BB_ADDR_MAP section with index 2
149 ## Check that if we have a missing relocated section, we fail and give the
150 ## appropriate warning.
152 --- !ELF
153 FileHeader:
154   Class:           ELFCLASS64
155   Data:            ELFDATA2LSB
156   Type:            ET_REL
157   Machine:         EM_X86_64
158 Sections:
159   - Name:  .rela.llvm_bb_addr_map
160     Type:  SHT_RELA
161     Flags: [ SHF_INFO_LINK ]
162     Info:  0xFF
164 # RUN: yaml2obj %s --docnum=4 -o %t4.o
165 # RUN: llvm-readobj %t4.o --bb-addr-map 2>&1 | FileCheck %s --check-prefix=NO-RELOCATED-SECTION -DFILE=%t4.o
167 # NO-RELOCATED-SECTION: warning: '[[FILE]]': failed to get SHT_LLVM_BB_ADDR_MAP section(s): SHT_RELA section with index 1: failed to get a relocated section: invalid section index: 255
169 ## Check that if we have an ET_DYN file with a .rela.dyn section, we don't get
170 ## a warning about a missing relocation section and can get the baddrmap data.
172 --- !ELF
173 FileHeader:
174   Class:           ELFCLASS64
175   Data:            ELFDATA2LSB
176   Type:            ET_DYN
177   Machine:         EM_X86_64
178 Sections:
179   - Name:            .rela.dyn
180     Type:            SHT_RELA
181     Flags:           [ SHF_ALLOC ]
182   - Name:            .llvm_bb_addr_map
183     Type:            SHT_LLVM_BB_ADDR_MAP
184     Flags:           [ SHF_LINK_ORDER ]
185     Entries:
186       - Version:         2
187         Address:         0xF
188         BBEntries:
189           - ID:              0
190             AddressOffset:   0x0
191             Size:            0xF
192             Metadata:        0x1
194 # RUN: yaml2obj %s --docnum=5 -o %t5.o
195 # RUN: llvm-readobj %t5.o --bb-addr-map 2>&1 | FileCheck %s --check-prefix=ET-DYN-NO-WARNING -DFILE=%t5.o
197 # ET-DYN-NO-WARNING: BBAddrMap [
198 # ET-DYN-NO-WARNING:   Function {
199 # ET-DYN-NO-WARNING:     At: 0xF
200 # ET-DYN-NO-WARNING:     Name: <?>
201 # ET-DYN-NO-WARNING:     BB entries [
202 # ET-DYN-NO-WARNING:       {
203 # ET-DYN-NO-WARNING:         ID: 0
204 # ET-DYN-NO-WARNING:         Offset: 0x0
205 # ET-DYN-NO-WARNING:         Size: 0xF
206 # ET-DYN-NO-WARNING:         HasReturn: Yes
207 # ET-DYN-NO-WARNING:         HasTailCall: No
208 # ET-DYN-NO-WARNING:         IsEHPad: No
209 # ET-DYN-NO-WARNING:         CanFallThrough: No
210 # ET-DYN-NO-WARNING:         HasIndirectBranch: No
211 # ET-DYN-NO-WARNING:       }
212 # ET-DYN-NO-WARNING:     ]
213 # ET-DYN-NO-WARNING:   }
214 # ET-DYN-NO-WARNING: ]