[clang] Propagate -ftime-report to offload lto (#122143)
[llvm-project.git] / llvm / test / tools / llvm-readobj / ELF / bb-addr-map-relocatable.test
blobe7f78491a94737a816a6963f67780a2a177beb76
1 ## This test checks how we handle the --bb-addr-map option on relocatable
2 ## object files.
4 # RUN: yaml2obj %s -o %t1.o
5 # RUN: llvm-readobj %t1.o --bb-addr-map | FileCheck %s
7 # CHECK:      BBAddrMap [
8 # CHECK-NEXT:   Function {
9 # CHECK-NEXT:     At: 0x0
10 # CHECK-NEXT:     Name: <?>
11 # CHECK-NEXT:     BB Ranges [
12 # CHECK-NEXT:       {
13 # CHECK-NEXT:         Base Address: 0x0
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:     ]
28 # CHECK-NEXT:   }
29 # CHECK-NEXT:   Function {
30 # CHECK-NEXT:     At: 0x10
31 # CHECK-NEXT:     Name: <?>
32 # CHECK-NEXT:     BB Ranges [
33 # CHECK-NEXT:       {
34 # CHECK-NEXT:         Base Address: 0x10
35 # CHECK-NEXT:         BB Entries [
36 # CHECK-NEXT:           {
37 # CHECK-NEXT:             ID: 0
38 # CHECK-NEXT:             Offset: 0x0
39 # CHECK-NEXT:             Size: 0x11
40 # CHECK-NEXT:             HasReturn: No
41 # CHECK-NEXT:             HasTailCall: No
42 # CHECK-NEXT:             IsEHPad: No
43 # CHECK-NEXT:             CanFallThrough: Yes
44 # CHECK-NEXT:             HasIndirectBranch: No
45 # CHECK-NEXT:           }
46 # CHECK-NEXT:         ]
47 # CHECK-NEXT:       }
48 # CHECK-NEXT:     ]
49 # CHECK-NEXT:   }
50 # CHECK-NEXT: ]
52 --- !ELF
53 FileHeader:
54   Class:           ELFCLASS64
55   Data:            ELFDATA2LSB
56   Type:            ET_REL
57   Machine:         EM_X86_64
58 Sections:
59   - Name:    .text
60     Type:    SHT_PROGBITS
61     Flags:   [ SHF_ALLOC, SHF_EXECINSTR ]
62   - Name:    .llvm_bb_addr_map
63     Type:    SHT_LLVM_BB_ADDR_MAP
64     Link:    .text
65     Entries:
66       - Version: 2
67         BBRanges:
68           - BBEntries:
69             - ID:              0
70               AddressOffset:   0x0
71               Size:            0xF
72               Metadata:        0x1
73       - Version: 2
74         BBRanges:
75           - BBEntries:
76              - ID:              0
77                AddressOffset:   0x0
78                Size:            0x11
79                Metadata:        0x8
80   - Name:  .rela.llvm_bb_addr_map
81     Type:  SHT_RELA
82     Flags: [ SHF_INFO_LINK ]
83     Link:  .symtab
84     Info:  .llvm_bb_addr_map
85     Relocations:
86       - Offset: 0x2
87         Symbol: .text
88         Type:   R_X86_64_64
89       - Offset: 0x11
90         Symbol: .text
91         Type:   R_X86_64_64
92         Addend: 16
93 Symbols:
94   - Name:    a
95     Section: .text
96     Value:   0x0
97   - Name:    c
98     Section: .text
99     Value:   0x10
100   - Name:    .text
101     Type:    STT_SECTION
102     Section: .text
104 ## Check that if we have a relocatable file and no relocation section for
105 ## a SHT_LLVM_BB_ADDR_MAP section, we give the appropriate warnings.
107 --- !ELF
108 FileHeader:
109   Class:           ELFCLASS64
110   Data:            ELFDATA2LSB
111   Type:            ET_REL
112   Machine:         EM_X86_64
113 Sections:
114   - Name:    .text
115     Type:    SHT_PROGBITS
116     Flags:   [ SHF_ALLOC, SHF_EXECINSTR ]
117   - Name:    .llvm_bb_addr_map
118     Type:    SHT_LLVM_BB_ADDR_MAP
119     Link:    .text
121 # RUN: yaml2obj %s --docnum=2 -o %t2.o
122 # RUN: llvm-readobj %t2.o --bb-addr-map 2>&1 | FileCheck %s --check-prefix=NO-RELA -DFILE=%t2.o
124 # NO-RELA: warning: '[[FILE]]': unable to get relocation section for SHT_LLVM_BB_ADDR_MAP section with index 2
126 ## Check that we get a warning if we expect a relocation and it is not present.
128 --- !ELF
129 FileHeader:
130   Class:           ELFCLASS64
131   Data:            ELFDATA2LSB
132   Type:            ET_REL
133   Machine:         EM_X86_64
134 Sections:
135   - Name:    .text
136     Type:    SHT_PROGBITS
137     Flags:   [ SHF_ALLOC, SHF_EXECINSTR ]
138   - Name:    .llvm_bb_addr_map
139     Type:    SHT_LLVM_BB_ADDR_MAP
140     Link:    .text
141     Entries:
142       - Version: 2
143         BBRanges:
144         - BBEntries:
145           - ID:              0
146             AddressOffset:   0x0
147             Size:            0xF
148             Metadata:        0x1
149   - Name:  .rela.llvm_bb_addr_map
150     Type:  SHT_RELA
151     Flags: [ SHF_INFO_LINK ]
152     Info:  .llvm_bb_addr_map
154 # RUN: yaml2obj %s --docnum=3 -o %t3.o
155 # RUN: llvm-readobj %t3.o --bb-addr-map 2>&1 | FileCheck %s --check-prefix=MISSING-RELOCATION -DFILE=%t3.o
157 # 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
159 ## Check that if we have a missing relocated section, we fail and give the
160 ## appropriate warning.
162 --- !ELF
163 FileHeader:
164   Class:           ELFCLASS64
165   Data:            ELFDATA2LSB
166   Type:            ET_REL
167   Machine:         EM_X86_64
168 Sections:
169   - Name:  .rela.llvm_bb_addr_map
170     Type:  SHT_RELA
171     Flags: [ SHF_INFO_LINK ]
172     Info:  0xFF
174 # RUN: yaml2obj %s --docnum=4 -o %t4.o
175 # RUN: llvm-readobj %t4.o --bb-addr-map 2>&1 | FileCheck %s --check-prefix=NO-RELOCATED-SECTION -DFILE=%t4.o
177 # 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
179 ## Check that if we have an ET_DYN file with a .rela.dyn section, we don't get
180 ## a warning about a missing relocation section and can get the baddrmap data.
182 --- !ELF
183 FileHeader:
184   Class:           ELFCLASS64
185   Data:            ELFDATA2LSB
186   Type:            ET_DYN
187   Machine:         EM_X86_64
188 Sections:
189   - Name:            .rela.dyn
190     Type:            SHT_RELA
191     Flags:           [ SHF_ALLOC ]
192   - Name:            .llvm_bb_addr_map
193     Type:            SHT_LLVM_BB_ADDR_MAP
194     Flags:           [ SHF_LINK_ORDER ]
195     Entries:
196       - Version:         2
197         BBRanges:
198           - BaseAddress:         0xF
199             BBEntries:
200              - ID:              0
201                AddressOffset:   0x0
202                Size:            0xF
203                Metadata:        0x1
205 # RUN: yaml2obj %s --docnum=5 -o %t5.o
206 # RUN: llvm-readobj %t5.o --bb-addr-map 2>&1 | FileCheck %s --check-prefix=ET-DYN-NO-WARNING -DFILE=%t5.o
208 # ET-DYN-NO-WARNING: BBAddrMap [
209 # ET-DYN-NO-WARNING:   Function {
210 # ET-DYN-NO-WARNING:     At: 0xF
211 # ET-DYN-NO-WARNING:     Name: <?>
212 # ET-DYN-NO-WARNING:     BB Ranges [
213 # ET-DYN-NO-WARNING:       {
214 # ET-DYN-NO-WARNING:         Base Address: 0xF
215 # ET-DYN-NO-WARNING:         BB Entries [
216 # ET-DYN-NO-WARNING:           {
217 # ET-DYN-NO-WARNING:             ID: 0
218 # ET-DYN-NO-WARNING:             Offset: 0x0
219 # ET-DYN-NO-WARNING:             Size: 0xF
220 # ET-DYN-NO-WARNING:             HasReturn: Yes
221 # ET-DYN-NO-WARNING:             HasTailCall: No
222 # ET-DYN-NO-WARNING:             IsEHPad: No
223 # ET-DYN-NO-WARNING:             CanFallThrough: No
224 # ET-DYN-NO-WARNING:             HasIndirectBranch: No
225 # ET-DYN-NO-WARNING:           }
226 # ET-DYN-NO-WARNING:         ]
227 # ET-DYN-NO-WARNING:       }
228 # ET-DYN-NO-WARNING:     ]
229 # ET-DYN-NO-WARNING:   }
230 # ET-DYN-NO-WARNING: ]