1 ; RUN: llc -debugger-tune=gdb -mcpu=ppc -mtriple powerpc-ibm-aix-xcoff < %s | \
2 ; RUN: FileCheck %s --check-prefix=ASM32
3 ; RUN: llc -debugger-tune=gdb -mcpu=ppc -mtriple powerpc64-ibm-aix-xcoff < %s | \
4 ; RUN: FileCheck %s --check-prefix=ASM64
5 ; RUN: llc -mtriple powerpc-ibm-aix-xcoff -mcpu=ppc -filetype=obj < %s | \
6 ; RUN: llvm-dwarfdump --all - | FileCheck %s --check-prefix=DWARF32
8 source_filename = "1.c"
9 target datalayout = "E-m:a-p:32:32-i64:64-n32"
11 ; Function Attrs: noinline nounwind optnone
12 define i32 @main() #0 !dbg !8 {
14 %retval = alloca i32, align 4
15 store i32 0, ptr %retval, align 4
20 !llvm.module.flags = !{!3, !4, !5, !6}
23 !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 12.0.0", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, nameTableKind: None)
24 !1 = !DIFile(filename: "1.c", directory: "debug")
26 !3 = !{i32 7, !"Dwarf Version", i32 4}
27 !4 = !{i32 2, !"Debug Info Version", i32 3}
28 !5 = !{i32 1, !"wchar_size", i32 2}
29 !6 = !{i32 7, !"PIC Level", i32 2}
30 !7 = !{!"clang version 12.0.0"}
31 !8 = distinct !DISubprogram(name: "main", scope: !1, file: !1, line: 1, type: !9, scopeLine: 2, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
32 !9 = !DISubroutineType(types: !10)
34 !11 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
35 !12 = !DILocation(line: 3, column: 3, scope: !8)
38 ; ASM32-NEXT: .csect ..text..[PR],5
39 ; ASM32-NEXT: .rename ..text..[PR],""
40 ; ASM32-NEXT: .machine "COM"
41 ; ASM32-NEXT: .globl main[DS] # -- Begin function main
42 ; ASM32-NEXT: .globl .main
43 ; ASM32-NEXT: .align 2
44 ; ASM32-NEXT: .csect main[DS],2
45 ; ASM32-NEXT: .vbyte 4, .main # @main
46 ; ASM32-NEXT: .vbyte 4, TOC[TC0]
47 ; ASM32-NEXT: .vbyte 4, 0
48 ; ASM32-NEXT: .csect ..text..[PR],5
50 ; ASM32-NEXT: L..func_begin0:
51 ; ASM32-NEXT: # %bb.0: # %entry
52 ; ASM32-NEXT: L..tmp0:
54 ; ASM32-NEXT: L..tmp1:
55 ; ASM32-NEXT: L..tmp2:
57 ; ASM32-NEXT: stw 4, -4(1)
59 ; ASM32-NEXT: L..tmp3:
60 ; ASM32-NEXT: L..main0:
61 ; ASM32-NEXT: .vbyte 4, 0x00000000 # Traceback table begin
62 ; ASM32-NEXT: .byte 0x00 # Version = 0
63 ; ASM32-NEXT: .byte 0x09 # Language = CPlusPlus
64 ; ASM32-NEXT: .byte 0x20 # -IsGlobaLinkage, -IsOutOfLineEpilogOrPrologue
65 ; ASM32-NEXT: # +HasTraceBackTableOffset, -IsInternalProcedure
66 ; ASM32-NEXT: # -HasControlledStorage, -IsTOCless
67 ; ASM32-NEXT: # -IsFloatingPointPresent
68 ; ASM32-NEXT: # -IsFloatingPointOperationLogOrAbortEnabled
69 ; ASM32-NEXT: .byte 0x40 # -IsInterruptHandler, +IsFunctionNamePresent, -IsAllocaUsed
70 ; ASM32-NEXT: # OnConditionDirective = 0, -IsCRSaved, -IsLRSaved
71 ; ASM32-NEXT: .byte 0x00 # -IsBackChainStored, -IsFixup, NumOfFPRsSaved = 0
72 ; ASM32-NEXT: .byte 0x00 # -HasExtensionTable, -HasVectorInfo, NumOfGPRsSaved = 0
73 ; ASM32-NEXT: .byte 0x00 # NumberOfFixedParms = 0
74 ; ASM32-NEXT: .byte 0x01 # NumberOfFPParms = 0, +HasParmsOnStack
75 ; ASM32-NEXT: .vbyte 4, L..main0-.main # Function size
76 ; ASM32-NEXT: .vbyte 2, 0x0004 # Function name len = 4
77 ; ASM32-NEXT: .byte "main" # Function Name
78 ; ASM32-NEXT: L..func_end0:
79 ; ASM32-NEXT: # -- End function
80 ; ASM32-NEXT: L..sec_end0:
81 ; ASM32: .dwsect 0x60000
82 ; ASM32-NEXT: .dwabrev:
83 ; ASM32-NEXT: .byte 1 # Abbreviation Code
84 ; ASM32-NEXT: .byte 17 # DW_TAG_compile_unit
85 ; ASM32-NEXT: .byte 1 # DW_CHILDREN_yes
86 ; ASM32-NEXT: .byte 37 # DW_AT_producer
87 ; ASM32-NEXT: .byte 14 # DW_FORM_strp
88 ; ASM32-NEXT: .byte 19 # DW_AT_language
89 ; ASM32-NEXT: .byte 5 # DW_FORM_data2
90 ; ASM32-NEXT: .byte 3 # DW_AT_name
91 ; ASM32-NEXT: .byte 14 # DW_FORM_strp
92 ; ASM32-NEXT: .byte 16 # DW_AT_stmt_list
93 ; ASM32-NEXT: .byte 23 # DW_FORM_sec_offset
94 ; ASM32-NEXT: .byte 27 # DW_AT_comp_dir
95 ; ASM32-NEXT: .byte 14 # DW_FORM_strp
96 ; ASM32-NEXT: .byte 17 # DW_AT_low_pc
97 ; ASM32-NEXT: .byte 1 # DW_FORM_addr
98 ; ASM32-NEXT: .byte 18 # DW_AT_high_pc
99 ; ASM32-NEXT: .byte 6 # DW_FORM_data4
100 ; ASM32-NEXT: .byte 0 # EOM(1)
101 ; ASM32-NEXT: .byte 0 # EOM(2)
102 ; ASM32-NEXT: .byte 2 # Abbreviation Code
103 ; ASM32-NEXT: .byte 46 # DW_TAG_subprogram
104 ; ASM32-NEXT: .byte 0 # DW_CHILDREN_no
105 ; ASM32-NEXT: .byte 17 # DW_AT_low_pc
106 ; ASM32-NEXT: .byte 1 # DW_FORM_addr
107 ; ASM32-NEXT: .byte 18 # DW_AT_high_pc
108 ; ASM32-NEXT: .byte 6 # DW_FORM_data4
109 ; ASM32-NEXT: .byte 64 # DW_AT_frame_base
110 ; ASM32-NEXT: .byte 24 # DW_FORM_exprloc
111 ; ASM32-NEXT: .byte 3 # DW_AT_name
112 ; ASM32-NEXT: .byte 14 # DW_FORM_strp
113 ; ASM32-NEXT: .byte 58 # DW_AT_decl_file
114 ; ASM32-NEXT: .byte 11 # DW_FORM_data1
115 ; ASM32-NEXT: .byte 59 # DW_AT_decl_line
116 ; ASM32-NEXT: .byte 11 # DW_FORM_data1
117 ; ASM32-NEXT: .byte 39 # DW_AT_prototyped
118 ; ASM32-NEXT: .byte 25 # DW_FORM_flag_present
119 ; ASM32-NEXT: .byte 73 # DW_AT_type
120 ; ASM32-NEXT: .byte 19 # DW_FORM_ref4
121 ; ASM32-NEXT: .byte 63 # DW_AT_external
122 ; ASM32-NEXT: .byte 25 # DW_FORM_flag_present
123 ; ASM32-NEXT: .byte 0 # EOM(1)
124 ; ASM32-NEXT: .byte 0 # EOM(2)
125 ; ASM32-NEXT: .byte 3 # Abbreviation Code
126 ; ASM32-NEXT: .byte 36 # DW_TAG_base_type
127 ; ASM32-NEXT: .byte 0 # DW_CHILDREN_no
128 ; ASM32-NEXT: .byte 3 # DW_AT_name
129 ; ASM32-NEXT: .byte 14 # DW_FORM_strp
130 ; ASM32-NEXT: .byte 62 # DW_AT_encoding
131 ; ASM32-NEXT: .byte 11 # DW_FORM_data1
132 ; ASM32-NEXT: .byte 11 # DW_AT_byte_size
133 ; ASM32-NEXT: .byte 11 # DW_FORM_data1
134 ; ASM32-NEXT: .byte 0 # EOM(1)
135 ; ASM32-NEXT: .byte 0 # EOM(2)
136 ; ASM32-NEXT: .byte 0 # EOM(3)
137 ; ASM32: .dwsect 0x10000
138 ; ASM32-NEXT: .dwinfo:
139 ; ASM32-NEXT: L..cu_begin0:
140 ; ASM32-NEXT: .vbyte 2, 4 # DWARF version number
141 ; ASM32-NEXT: .vbyte 4, .dwabrev # Offset Into Abbrev. Section
142 ; ASM32-NEXT: .byte 4 # Address Size (in bytes)
143 ; ASM32-NEXT: .byte 1 # Abbrev [1] 0xb:0x38 DW_TAG_compile_unit
144 ; ASM32-NEXT: .vbyte 4, L..info_string0 # DW_AT_producer
145 ; ASM32-NEXT: .vbyte 2, 12 # DW_AT_language
146 ; ASM32-NEXT: .vbyte 4, L..info_string1 # DW_AT_name
147 ; ASM32-NEXT: .vbyte 4, L..line_table_start0 # DW_AT_stmt_list
148 ; ASM32-NEXT: .vbyte 4, L..info_string2 # DW_AT_comp_dir
149 ; ASM32-NEXT: .vbyte 4, L..func_begin0 # DW_AT_low_pc
150 ; ASM32-NEXT: .vbyte 4, L..func_end0-L..func_begin0 # DW_AT_high_pc
151 ; ASM32-NEXT: .byte 2 # Abbrev [2] 0x26:0x15 DW_TAG_subprogram
152 ; ASM32-NEXT: .vbyte 4, L..func_begin0 # DW_AT_low_pc
153 ; ASM32-NEXT: .vbyte 4, L..func_end0-L..func_begin0 # DW_AT_high_pc
154 ; ASM32-NEXT: .byte 1 # DW_AT_frame_base
155 ; ASM32-NEXT: .byte 81
156 ; ASM32-NEXT: .vbyte 4, L..info_string3 # DW_AT_name
157 ; ASM32-NEXT: .byte 1 # DW_AT_decl_file
158 ; ASM32-NEXT: .byte 1 # DW_AT_decl_line
159 ; ASM32-NEXT: # DW_AT_prototyped
160 ; ASM32-NEXT: .vbyte 4, 59 # DW_AT_type
161 ; ASM32-NEXT: # DW_AT_external
162 ; ASM32-NEXT: .byte 3 # Abbrev [3] 0x3b:0x7 DW_TAG_base_type
163 ; ASM32-NEXT: .vbyte 4, L..info_string4 # DW_AT_name
164 ; ASM32-NEXT: .byte 5 # DW_AT_encoding
165 ; ASM32-NEXT: .byte 4 # DW_AT_byte_size
166 ; ASM32-NEXT: .byte 0 # End Of Children Mark
167 ; ASM32-NEXT: L..debug_info_end0:
168 ; ASM32: .dwsect 0x70000
169 ; ASM32-NEXT: .dwstr:
170 ; ASM32-NEXT: L..info_string0:
171 ; ASM32-NEXT: .string "clang version 12.0.0" # string offset=0
172 ; ASM32-NEXT: L..info_string1:
173 ; ASM32-NEXT: .string "1.c" # string offset=21
174 ; ASM32-NEXT: L..info_string2:
175 ; ASM32-NEXT: .string "debug" # string offset=25
176 ; ASM32-NEXT: L..info_string3:
177 ; ASM32-NEXT: .string "main" # string offset=31
178 ; ASM32-NEXT: L..info_string4:
179 ; ASM32-NEXT: .string "int" # string offset=36
181 ; ASM32: .dwsect 0x20000
182 ; ASM32-NEXT: .dwline:
183 ; ASM32-NEXT: L..debug_line_0:
184 ; ASM32-NEXT: .set L..line_table_start0, L..debug_line_0-4
185 ; ASM32-NEXT: .vbyte 2, 4
186 ; ASM32-NEXT: .vbyte 4, L..prologue_end0-L..prologue_start0
187 ; ASM32-NEXT: L..prologue_start0:
188 ; ASM32-NEXT: .byte 4
189 ; ASM32-NEXT: .byte 1
190 ; ASM32-NEXT: .byte 1
191 ; ASM32-NEXT: .byte -5
192 ; ASM32-NEXT: .byte 14
193 ; ASM32-NEXT: .byte 13
194 ; ASM32-NEXT: .byte 0
195 ; ASM32-NEXT: .byte 1
196 ; ASM32-NEXT: .byte 1
197 ; ASM32-NEXT: .byte 1
198 ; ASM32-NEXT: .byte 1
199 ; ASM32-NEXT: .byte 0
200 ; ASM32-NEXT: .byte 0
201 ; ASM32-NEXT: .byte 0
202 ; ASM32-NEXT: .byte 1
203 ; ASM32-NEXT: .byte 0
204 ; ASM32-NEXT: .byte 0
205 ; ASM32-NEXT: .byte 1
206 ; ASM32-NEXT: .byte "debug"
207 ; ASM32-NEXT: .byte 0
208 ; ASM32-NEXT: .byte 0
209 ; ASM32-NEXT: .byte "1.c"
210 ; ASM32-NEXT: .byte 0
211 ; ASM32-NEXT: .byte 1
212 ; ASM32-NEXT: .byte 0
213 ; ASM32-NEXT: .byte 0
214 ; ASM32-NEXT: .byte 0
215 ; ASM32-NEXT: L..prologue_end0:
216 ; ASM32-NEXT: .byte 0 # Set address to L..tmp0
217 ; ASM32-NEXT: .byte 5
218 ; ASM32-NEXT: .byte 2
219 ; ASM32-NEXT: .vbyte 4, L..tmp0
220 ; ASM32-NEXT: .byte 19 # Start sequence
221 ; ASM32-NEXT: .byte 5
222 ; ASM32-NEXT: .byte 3
223 ; ASM32-NEXT: .byte 10
224 ; ASM32-NEXT: .byte 0 # Set address to L..tmp2
225 ; ASM32-NEXT: .byte 5
226 ; ASM32-NEXT: .byte 2
227 ; ASM32-NEXT: .vbyte 4, L..tmp2
228 ; ASM32-NEXT: .byte 3 # Advance line 1
229 ; ASM32-NEXT: .byte 1
230 ; ASM32-NEXT: .byte 1
231 ; ASM32-NEXT: .byte 0 # Set address to L..func_end0
232 ; ASM32-NEXT: .byte 5
233 ; ASM32-NEXT: .byte 2
234 ; ASM32-NEXT: .vbyte 4, L..func_end0
235 ; ASM32-NEXT: .byte 0 # End sequence
236 ; ASM32-NEXT: .byte 1
237 ; ASM32-NEXT: .byte 1
238 ; ASM32-NEXT: L..debug_line_end0:
241 ; ASM64-NEXT: .csect ..text..[PR],5
242 ; ASM64-NEXT: .rename ..text..[PR],""
243 ; ASM64-NEXT: .machine "COM"
244 ; ASM64-NEXT: .globl main[DS] # -- Begin function main
245 ; ASM64-NEXT: .globl .main
246 ; ASM64-NEXT: .align 2
247 ; ASM64-NEXT: .csect main[DS],3
248 ; ASM64-NEXT: .vbyte 8, .main # @main
249 ; ASM64-NEXT: .vbyte 8, TOC[TC0]
250 ; ASM64-NEXT: .vbyte 8, 0
251 ; ASM64-NEXT: .csect ..text..[PR],5
253 ; ASM64-NEXT: L..func_begin0:
254 ; ASM64-NEXT: # %bb.0: # %entry
255 ; ASM64-NEXT: L..tmp0:
256 ; ASM64-NEXT: li 4, 0
257 ; ASM64-NEXT: L..tmp1:
258 ; ASM64-NEXT: L..tmp2:
259 ; ASM64-NEXT: li 3, 0
260 ; ASM64-NEXT: stw 4, -4(1)
262 ; ASM64-NEXT: L..tmp3:
263 ; ASM64-NEXT: L..main0:
264 ; ASM64-NEXT: .vbyte 4, 0x00000000 # Traceback table begin
265 ; ASM64-NEXT: .byte 0x00 # Version = 0
266 ; ASM64-NEXT: .byte 0x09 # Language = CPlusPlus
267 ; ASM64-NEXT: .byte 0x20 # -IsGlobaLinkage, -IsOutOfLineEpilogOrPrologue
268 ; ASM64-NEXT: # +HasTraceBackTableOffset, -IsInternalProcedure
269 ; ASM64-NEXT: # -HasControlledStorage, -IsTOCless
270 ; ASM64-NEXT: # -IsFloatingPointPresent
271 ; ASM64-NEXT: # -IsFloatingPointOperationLogOrAbortEnabled
272 ; ASM64-NEXT: .byte 0x40 # -IsInterruptHandler, +IsFunctionNamePresent, -IsAllocaUsed
273 ; ASM64-NEXT: # OnConditionDirective = 0, -IsCRSaved, -IsLRSaved
274 ; ASM64-NEXT: .byte 0x00 # -IsBackChainStored, -IsFixup, NumOfFPRsSaved = 0
275 ; ASM64-NEXT: .byte 0x00 # -HasExtensionTable, -HasVectorInfo, NumOfGPRsSaved = 0
276 ; ASM64-NEXT: .byte 0x00 # NumberOfFixedParms = 0
277 ; ASM64-NEXT: .byte 0x01 # NumberOfFPParms = 0, +HasParmsOnStack
278 ; ASM64-NEXT: .vbyte 4, L..main0-.main # Function size
279 ; ASM64-NEXT: .vbyte 2, 0x0004 # Function name len = 4
280 ; ASM64-NEXT: .byte "main" # Function Name
281 ; ASM64-NEXT: L..func_end0:
282 ; ASM64-NEXT: # -- End function
283 ; ASM64-NEXT: L..sec_end0:
284 ; ASM64: .dwsect 0x60000
285 ; ASM64-NEXT: .dwabrev:
286 ; ASM64-NEXT: .byte 1 # Abbreviation Code
287 ; ASM64-NEXT: .byte 17 # DW_TAG_compile_unit
288 ; ASM64-NEXT: .byte 1 # DW_CHILDREN_yes
289 ; ASM64-NEXT: .byte 37 # DW_AT_producer
290 ; ASM64-NEXT: .byte 14 # DW_FORM_strp
291 ; ASM64-NEXT: .byte 19 # DW_AT_language
292 ; ASM64-NEXT: .byte 5 # DW_FORM_data2
293 ; ASM64-NEXT: .byte 3 # DW_AT_name
294 ; ASM64-NEXT: .byte 14 # DW_FORM_strp
295 ; ASM64-NEXT: .byte 16 # DW_AT_stmt_list
296 ; ASM64-NEXT: .byte 23 # DW_FORM_sec_offset
297 ; ASM64-NEXT: .byte 27 # DW_AT_comp_dir
298 ; ASM64-NEXT: .byte 14 # DW_FORM_strp
299 ; ASM64-NEXT: .byte 17 # DW_AT_low_pc
300 ; ASM64-NEXT: .byte 1 # DW_FORM_addr
301 ; ASM64-NEXT: .byte 18 # DW_AT_high_pc
302 ; ASM64-NEXT: .byte 6 # DW_FORM_data4
303 ; ASM64-NEXT: .byte 0 # EOM(1)
304 ; ASM64-NEXT: .byte 0 # EOM(2)
305 ; ASM64-NEXT: .byte 2 # Abbreviation Code
306 ; ASM64-NEXT: .byte 46 # DW_TAG_subprogram
307 ; ASM64-NEXT: .byte 0 # DW_CHILDREN_no
308 ; ASM64-NEXT: .byte 17 # DW_AT_low_pc
309 ; ASM64-NEXT: .byte 1 # DW_FORM_addr
310 ; ASM64-NEXT: .byte 18 # DW_AT_high_pc
311 ; ASM64-NEXT: .byte 6 # DW_FORM_data4
312 ; ASM64-NEXT: .byte 64 # DW_AT_frame_base
313 ; ASM64-NEXT: .byte 24 # DW_FORM_exprloc
314 ; ASM64-NEXT: .byte 3 # DW_AT_name
315 ; ASM64-NEXT: .byte 14 # DW_FORM_strp
316 ; ASM64-NEXT: .byte 58 # DW_AT_decl_file
317 ; ASM64-NEXT: .byte 11 # DW_FORM_data1
318 ; ASM64-NEXT: .byte 59 # DW_AT_decl_line
319 ; ASM64-NEXT: .byte 11 # DW_FORM_data1
320 ; ASM64-NEXT: .byte 39 # DW_AT_prototyped
321 ; ASM64-NEXT: .byte 25 # DW_FORM_flag_present
322 ; ASM64-NEXT: .byte 73 # DW_AT_type
323 ; ASM64-NEXT: .byte 19 # DW_FORM_ref4
324 ; ASM64-NEXT: .byte 63 # DW_AT_external
325 ; ASM64-NEXT: .byte 25 # DW_FORM_flag_present
326 ; ASM64-NEXT: .byte 0 # EOM(1)
327 ; ASM64-NEXT: .byte 0 # EOM(2)
328 ; ASM64-NEXT: .byte 3 # Abbreviation Code
329 ; ASM64-NEXT: .byte 36 # DW_TAG_base_type
330 ; ASM64-NEXT: .byte 0 # DW_CHILDREN_no
331 ; ASM64-NEXT: .byte 3 # DW_AT_name
332 ; ASM64-NEXT: .byte 14 # DW_FORM_strp
333 ; ASM64-NEXT: .byte 62 # DW_AT_encoding
334 ; ASM64-NEXT: .byte 11 # DW_FORM_data1
335 ; ASM64-NEXT: .byte 11 # DW_AT_byte_size
336 ; ASM64-NEXT: .byte 11 # DW_FORM_data1
337 ; ASM64-NEXT: .byte 0 # EOM(1)
338 ; ASM64-NEXT: .byte 0 # EOM(2)
339 ; ASM64-NEXT: .byte 0 # EOM(3)
340 ; ASM64: .dwsect 0x10000
341 ; ASM64-NEXT: .dwinfo:
342 ; ASM64-NEXT: L..cu_begin0:
343 ; ASM64-NEXT: .vbyte 2, 4 # DWARF version number
344 ; ASM64-NEXT: .vbyte 8, .dwabrev # Offset Into Abbrev. Section
345 ; ASM64-NEXT: .byte 8 # Address Size (in bytes)
346 ; ASM64-NEXT: .byte 1 # Abbrev [1] 0x17:0x58 DW_TAG_compile_unit
347 ; ASM64-NEXT: .vbyte 8, L..info_string0 # DW_AT_producer
348 ; ASM64-NEXT: .vbyte 2, 12 # DW_AT_language
349 ; ASM64-NEXT: .vbyte 8, L..info_string1 # DW_AT_name
350 ; ASM64-NEXT: .vbyte 8, L..line_table_start0 # DW_AT_stmt_list
351 ; ASM64-NEXT: .vbyte 8, L..info_string2 # DW_AT_comp_dir
352 ; ASM64-NEXT: .vbyte 8, L..func_begin0 # DW_AT_low_pc
353 ; ASM64-NEXT: .vbyte 4, L..func_end0-L..func_begin0 # DW_AT_high_pc
354 ; ASM64-NEXT: .byte 2 # Abbrev [2] 0x46:0x1d DW_TAG_subprogram
355 ; ASM64-NEXT: .vbyte 8, L..func_begin0 # DW_AT_low_pc
356 ; ASM64-NEXT: .vbyte 4, L..func_end0-L..func_begin0 # DW_AT_high_pc
357 ; ASM64-NEXT: .byte 1 # DW_AT_frame_base
358 ; ASM64-NEXT: .byte 81
359 ; ASM64-NEXT: .vbyte 8, L..info_string3 # DW_AT_name
360 ; ASM64-NEXT: .byte 1 # DW_AT_decl_file
361 ; ASM64-NEXT: .byte 1 # DW_AT_decl_line
362 ; ASM64-NEXT: # DW_AT_prototyped
363 ; ASM64-NEXT: .vbyte 4, 99 # DW_AT_type
364 ; ASM64-NEXT: # DW_AT_external
365 ; ASM64-NEXT: .byte 3 # Abbrev [3] 0x63:0xb DW_TAG_base_type
366 ; ASM64-NEXT: .vbyte 8, L..info_string4 # DW_AT_name
367 ; ASM64-NEXT: .byte 5 # DW_AT_encoding
368 ; ASM64-NEXT: .byte 4 # DW_AT_byte_size
369 ; ASM64-NEXT: .byte 0 # End Of Children Mark
370 ; ASM64-NEXT: L..debug_info_end0:
371 ; ASM64: .dwsect 0x70000
372 ; ASM64-NEXT: .dwstr:
373 ; ASM64-NEXT: L..info_string0:
374 ; ASM64-NEXT: .string "clang version 12.0.0" # string offset=0
375 ; ASM64-NEXT: L..info_string1:
376 ; ASM64-NEXT: .string "1.c" # string offset=21
377 ; ASM64-NEXT: L..info_string2:
378 ; ASM64-NEXT: .string "debug" # string offset=25
379 ; ASM64-NEXT: L..info_string3:
380 ; ASM64-NEXT: .string "main" # string offset=31
381 ; ASM64-NEXT: L..info_string4:
382 ; ASM64-NEXT: .string "int" # string offset=36
384 ; ASM64: .dwsect 0x20000
385 ; ASM64-NEXT: .dwline:
386 ; ASM64-NEXT: L..debug_line_0:
387 ; ASM64-NEXT: .set L..line_table_start0, L..debug_line_0-12
388 ; ASM64-NEXT: .vbyte 2, 4
389 ; ASM64-NEXT: .vbyte 8, L..prologue_end0-L..prologue_start0
390 ; ASM64-NEXT: L..prologue_start0:
391 ; ASM64-NEXT: .byte 4
392 ; ASM64-NEXT: .byte 1
393 ; ASM64-NEXT: .byte 1
394 ; ASM64-NEXT: .byte -5
395 ; ASM64-NEXT: .byte 14
396 ; ASM64-NEXT: .byte 13
397 ; ASM64-NEXT: .byte 0
398 ; ASM64-NEXT: .byte 1
399 ; ASM64-NEXT: .byte 1
400 ; ASM64-NEXT: .byte 1
401 ; ASM64-NEXT: .byte 1
402 ; ASM64-NEXT: .byte 0
403 ; ASM64-NEXT: .byte 0
404 ; ASM64-NEXT: .byte 0
405 ; ASM64-NEXT: .byte 1
406 ; ASM64-NEXT: .byte 0
407 ; ASM64-NEXT: .byte 0
408 ; ASM64-NEXT: .byte 1
409 ; ASM64-NEXT: .byte "debug"
410 ; ASM64-NEXT: .byte 0
411 ; ASM64-NEXT: .byte 0
412 ; ASM64-NEXT: .byte "1.c"
413 ; ASM64-NEXT: .byte 0
414 ; ASM64-NEXT: .byte 1
415 ; ASM64-NEXT: .byte 0
416 ; ASM64-NEXT: .byte 0
417 ; ASM64-NEXT: .byte 0
418 ; ASM64-NEXT: L..prologue_end0:
419 ; ASM64-NEXT: .byte 0 # Set address to L..tmp0
420 ; ASM64-NEXT: .byte 9
421 ; ASM64-NEXT: .byte 2
422 ; ASM64-NEXT: .vbyte 8, L..tmp0
423 ; ASM64-NEXT: .byte 19 # Start sequence
424 ; ASM64-NEXT: .byte 5
425 ; ASM64-NEXT: .byte 3
426 ; ASM64-NEXT: .byte 10
427 ; ASM64-NEXT: .byte 0 # Set address to L..tmp2
428 ; ASM64-NEXT: .byte 9
429 ; ASM64-NEXT: .byte 2
430 ; ASM64-NEXT: .vbyte 8, L..tmp2
431 ; ASM64-NEXT: .byte 3 # Advance line 1
432 ; ASM64-NEXT: .byte 1
433 ; ASM64-NEXT: .byte 1
434 ; ASM64-NEXT: .byte 0 # Set address to L..func_end0
435 ; ASM64-NEXT: .byte 9
436 ; ASM64-NEXT: .byte 2
437 ; ASM64-NEXT: .vbyte 8, L..func_end0
438 ; ASM64-NEXT: .byte 0 # End sequence
439 ; ASM64-NEXT: .byte 1
440 ; ASM64-NEXT: .byte 1
441 ; ASM64-NEXT: L..debug_line_end0:
443 ; DWARF32: : file format aixcoff-rs6000
444 ; DWARF32: .debug_abbrev contents:
445 ; DWARF32-NEXT: Abbrev table for offset: 0x00000000
446 ; DWARF32-NEXT: [1] DW_TAG_compile_unit DW_CHILDREN_yes
447 ; DWARF32-NEXT: DW_AT_producer DW_FORM_string
448 ; DWARF32-NEXT: DW_AT_language DW_FORM_data2
449 ; DWARF32-NEXT: DW_AT_name DW_FORM_string
450 ; DWARF32-NEXT: DW_AT_stmt_list DW_FORM_sec_offset
451 ; DWARF32-NEXT: DW_AT_comp_dir DW_FORM_string
452 ; DWARF32-NEXT: DW_AT_low_pc DW_FORM_addr
453 ; DWARF32-NEXT: DW_AT_high_pc DW_FORM_data4
454 ; DWARF32: [2] DW_TAG_subprogram DW_CHILDREN_no
455 ; DWARF32-NEXT: DW_AT_low_pc DW_FORM_addr
456 ; DWARF32-NEXT: DW_AT_high_pc DW_FORM_data4
457 ; DWARF32-NEXT: DW_AT_frame_base DW_FORM_exprloc
458 ; DWARF32-NEXT: DW_AT_name DW_FORM_string
459 ; DWARF32-NEXT: DW_AT_decl_file DW_FORM_data1
460 ; DWARF32-NEXT: DW_AT_decl_line DW_FORM_data1
461 ; DWARF32-NEXT: DW_AT_prototyped DW_FORM_flag_present
462 ; DWARF32-NEXT: DW_AT_type DW_FORM_ref4
463 ; DWARF32-NEXT: DW_AT_external DW_FORM_flag_present
464 ; DWARF32: [3] DW_TAG_base_type DW_CHILDREN_no
465 ; DWARF32-NEXT: DW_AT_name DW_FORM_string
466 ; DWARF32-NEXT: DW_AT_encoding DW_FORM_data1
467 ; DWARF32-NEXT: DW_AT_byte_size DW_FORM_data1
468 ; DWARF32: .debug_info contents:
469 ; DWARF32-NEXT: 0x00000000: Compile Unit: length = 0x00000053, format = DWARF32, version = 0x0004, abbr_offset = 0x0000, addr_size = 0x04 (next unit at 0x00000057)
470 ; DWARF32: 0x0000000b: DW_TAG_compile_unit
471 ; DWARF32-NEXT: DW_AT_producer ("clang version 12.0.0")
472 ; DWARF32-NEXT: DW_AT_language (DW_LANG_C99)
473 ; DWARF32-NEXT: DW_AT_name ("1.c")
474 ; DWARF32-NEXT: DW_AT_stmt_list (0x00000000)
475 ; DWARF32-NEXT: DW_AT_comp_dir ("debug")
476 ; DWARF32-NEXT: DW_AT_low_pc (0x00000000)
477 ; DWARF32-NEXT: DW_AT_high_pc (0x00000026)
478 ; DWARF32: 0x00000039: DW_TAG_subprogram
479 ; DWARF32-NEXT: DW_AT_low_pc (0x00000000)
480 ; DWARF32-NEXT: DW_AT_high_pc (0x00000026)
481 ; DWARF32-NEXT: DW_AT_frame_base (DW_OP_reg1 R1)
482 ; DWARF32-NEXT: DW_AT_name ("main")
483 ; DWARF32-NEXT: DW_AT_decl_file ("debug{{[/\\]}}1.c")
484 ; DWARF32-NEXT: DW_AT_decl_line (1)
485 ; DWARF32-NEXT: DW_AT_prototyped (true)
486 ; DWARF32-NEXT: DW_AT_type (0x0000004f "int")
487 ; DWARF32-NEXT: DW_AT_external (true)
488 ; DWARF32: 0x0000004f: DW_TAG_base_type
489 ; DWARF32-NEXT: DW_AT_name ("int")
490 ; DWARF32-NEXT: DW_AT_encoding (DW_ATE_signed)
491 ; DWARF32-NEXT: DW_AT_byte_size (0x04)
492 ; DWARF32: 0x00000056: NULL
493 ; DWARF32: .debug_line contents:
494 ; DWARF32-NEXT: debug_line[0x00000000]
495 ; DWARF32-NEXT: Line table prologue:
496 ; DWARF32-NEXT: total_length: 0x00000032
497 ; DWARF32-NEXT: format: DWARF32
498 ; DWARF32-NEXT: version: 4
499 ; DWARF32-NEXT: prologue_length: 0x0000001b
500 ; DWARF32-NEXT: min_inst_length: 4
501 ; DWARF32-NEXT: max_ops_per_inst: 1
502 ; DWARF32-NEXT: default_is_stmt: 1
503 ; DWARF32-NEXT: line_base: -5
504 ; DWARF32-NEXT: line_range: 14
505 ; DWARF32-NEXT: opcode_base: 13
506 ; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_copy] = 0
507 ; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_advance_pc] = 1
508 ; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_advance_line] = 1
509 ; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_file] = 1
510 ; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_column] = 1
511 ; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_negate_stmt] = 0
512 ; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_basic_block] = 0
513 ; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_const_add_pc] = 0
514 ; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
515 ; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
516 ; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
517 ; DWARF32-NEXT: standard_opcode_lengths[DW_LNS_set_isa] = 1
518 ; DWARF32-NEXT: file_names[ 1]:
519 ; DWARF32-NEXT: name: "1.c"
520 ; DWARF32-NEXT: dir_index: 0
521 ; DWARF32-NEXT: mod_time: 0x00000000
522 ; DWARF32-NEXT: length: 0x00000000
523 ; DWARF32: Address Line Column File ISA Discriminator OpIndex Flags
524 ; DWARF32-NEXT: ------------------ ------ ------ ------ --- ------------- ------- -------------
525 ; DWARF32-NEXT: 0x0000000000000000 2 0 1 0 0 0 is_stmt
526 ; DWARF32-NEXT: 0x0000000000000004 3 3 1 0 0 0 is_stmt prologue_end
527 ; DWARF32-NEXT: 0x0000000000000024 3 3 1 0 0 0 is_stmt end_sequence