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