xref: /llvm-project/llvm/test/DebugInfo/XCOFF/empty.ll (revision f31099ce581d33fdb64e35fee4b56d0a1145cab1)
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
7
8source_filename = "1.c"
9target datalayout = "E-m:a-p:32:32-i64:64-n32"
10
11; Function Attrs: noinline nounwind optnone
12define i32 @main() #0 !dbg !8 {
13entry:
14  %retval = alloca i32, align 4
15  store i32 0, ptr %retval, align 4
16  ret i32 0, !dbg !12
17}
18
19!llvm.dbg.cu = !{!0}
20!llvm.module.flags = !{!3, !4, !5, !6}
21!llvm.ident = !{!7}
22
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")
25!2 = !{}
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)
33!10 = !{!11}
34!11 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
35!12 = !DILocation(line: 3, column: 3, scope: !8)
36
37; ASM32:               .file   "1.c"
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
49; ASM32-NEXT:  .main:
50; ASM32-NEXT:  L..func_begin0:
51; ASM32-NEXT:  # %bb.0:                                # %entry
52; ASM32-NEXT:  L..tmp0:
53; ASM32-NEXT:          li 4, 0
54; ASM32-NEXT:  L..tmp1:
55; ASM32-NEXT:  L..tmp2:
56; ASM32-NEXT:          li 3, 0
57; ASM32-NEXT:          stw 4, -4(1)
58; ASM32-NEXT:          blr
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
180; ASM32-NEXT:          .toc
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:
239
240; ASM64:               .file   "1.c"
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
252; ASM64-NEXT:  .main:
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)
261; ASM64-NEXT:          blr
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
383; ASM64-NEXT:         .toc
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:
442
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
528