xref: /llvm-project/llvm/test/tools/llvm-dwp/Inputs/overflow/debug_info_v5.s (revision 53a483cee801a207bd851d94a8ee8aebfc3db963)
1*53a483ceSzhuna# Note: This file is compiled from the following code, for
2*53a483ceSzhuna# 		the purpose of creating an overflowed dwo section.
3*53a483ceSzhuna#       After being compiled from source, section `.debug_info.dwo`
4*53a483ceSzhuna#       is changed to have length (2^32 - 30) Bytes, and added
5*53a483ceSzhuna#       padding with `.fill` directive, so it is likely to
6*53a483ceSzhuna#       overflow when packed with other files.
7*53a483ceSzhuna#
8*53a483ceSzhuna# clang -g -S -gsplit-dwarf -gdwarf-5 hello.c
9*53a483ceSzhuna#
10*53a483ceSzhuna# #include <stdio.h>
11*53a483ceSzhuna# void hello() {
12*53a483ceSzhuna#     printf("hello\n");
13*53a483ceSzhuna# }
14*53a483ceSzhuna
15*53a483ceSzhuna	.text
16*53a483ceSzhuna	.file	"hello.c"
17*53a483ceSzhuna	.globl	hello                           # -- Begin function hello
18*53a483ceSzhuna	.p2align	4, 0x90
19*53a483ceSzhuna	.type	hello,@function
20*53a483ceSzhunahello:                                  # @hello
21*53a483ceSzhuna.Lfunc_begin0:
22*53a483ceSzhuna	.file	0 "/xxxx/xxxxxxxxxx/xxxxxxxx/hello" "hello.c" md5 0x0b447232502f439981a2fe9f11255f42
23*53a483ceSzhuna	.loc	0 3 0                           # hello.c:3:0
24*53a483ceSzhuna	.cfi_startproc
25*53a483ceSzhuna# %bb.0:                                # %entry
26*53a483ceSzhuna	pushq	%rbp
27*53a483ceSzhuna	.cfi_def_cfa_offset 16
28*53a483ceSzhuna	.cfi_offset %rbp, -16
29*53a483ceSzhuna	movq	%rsp, %rbp
30*53a483ceSzhuna	.cfi_def_cfa_register %rbp
31*53a483ceSzhuna.Ltmp0:
32*53a483ceSzhuna	.loc	0 4 5 prologue_end              # hello.c:4:5
33*53a483ceSzhuna	movabsq	$.L.str, %rdi
34*53a483ceSzhuna	movb	$0, %al
35*53a483ceSzhuna	callq	printf
36*53a483ceSzhuna	.loc	0 5 1                           # hello.c:5:1
37*53a483ceSzhuna	popq	%rbp
38*53a483ceSzhuna	.cfi_def_cfa %rsp, 8
39*53a483ceSzhuna	retq
40*53a483ceSzhuna.Ltmp1:
41*53a483ceSzhuna.Lfunc_end0:
42*53a483ceSzhuna	.size	hello, .Lfunc_end0-hello
43*53a483ceSzhuna	.cfi_endproc
44*53a483ceSzhuna                                        # -- End function
45*53a483ceSzhuna	.type	.L.str,@object                  # @.str
46*53a483ceSzhuna	.section	.rodata.str1.1,"aMS",@progbits,1
47*53a483ceSzhuna.L.str:
48*53a483ceSzhuna	.asciz	"hello\n"
49*53a483ceSzhuna	.size	.L.str, 7
50*53a483ceSzhuna
51*53a483ceSzhuna	.section	.debug_abbrev,"",@progbits
52*53a483ceSzhuna	.byte	1                               # Abbreviation Code
53*53a483ceSzhuna	.byte	74                              # DW_TAG_skeleton_unit
54*53a483ceSzhuna	.byte	0                               # DW_CHILDREN_no
55*53a483ceSzhuna	.byte	16                              # DW_AT_stmt_list
56*53a483ceSzhuna	.byte	23                              # DW_FORM_sec_offset
57*53a483ceSzhuna	.byte	114                             # DW_AT_str_offsets_base
58*53a483ceSzhuna	.byte	23                              # DW_FORM_sec_offset
59*53a483ceSzhuna	.byte	27                              # DW_AT_comp_dir
60*53a483ceSzhuna	.byte	37                              # DW_FORM_strx1
61*53a483ceSzhuna	.ascii	"\264B"                         # DW_AT_GNU_pubnames
62*53a483ceSzhuna	.byte	25                              # DW_FORM_flag_present
63*53a483ceSzhuna	.byte	118                             # DW_AT_dwo_name
64*53a483ceSzhuna	.byte	37                              # DW_FORM_strx1
65*53a483ceSzhuna	.byte	17                              # DW_AT_low_pc
66*53a483ceSzhuna	.byte	27                              # DW_FORM_addrx
67*53a483ceSzhuna	.byte	18                              # DW_AT_high_pc
68*53a483ceSzhuna	.byte	6                               # DW_FORM_data4
69*53a483ceSzhuna	.byte	115                             # DW_AT_addr_base
70*53a483ceSzhuna	.byte	23                              # DW_FORM_sec_offset
71*53a483ceSzhuna	.byte	0                               # EOM(1)
72*53a483ceSzhuna	.byte	0                               # EOM(2)
73*53a483ceSzhuna	.byte	0                               # EOM(3)
74*53a483ceSzhuna	.section	.debug_info,"",@progbits
75*53a483ceSzhuna.Lcu_begin0:
76*53a483ceSzhuna	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
77*53a483ceSzhuna.Ldebug_info_start0:
78*53a483ceSzhuna	.short	5                               # DWARF version number
79*53a483ceSzhuna	.byte	4                               # DWARF Unit Type
80*53a483ceSzhuna	.byte	8                               # Address Size (in bytes)
81*53a483ceSzhuna	.long	.debug_abbrev                   # Offset Into Abbrev. Section
82*53a483ceSzhuna	.quad	-94954012350180462
83*53a483ceSzhuna	.byte	1                               # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit
84*53a483ceSzhuna	.long	.Lline_table_start0             # DW_AT_stmt_list
85*53a483ceSzhuna	.long	.Lstr_offsets_base0             # DW_AT_str_offsets_base
86*53a483ceSzhuna	.byte	0                               # DW_AT_comp_dir
87*53a483ceSzhuna                                        # DW_AT_GNU_pubnames
88*53a483ceSzhuna	.byte	1                               # DW_AT_dwo_name
89*53a483ceSzhuna	.byte	0                               # DW_AT_low_pc
90*53a483ceSzhuna	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
91*53a483ceSzhuna	.long	.Laddr_table_base0              # DW_AT_addr_base
92*53a483ceSzhuna.Ldebug_info_end0:
93*53a483ceSzhuna	.section	.debug_str_offsets,"",@progbits
94*53a483ceSzhuna	.long	12
95*53a483ceSzhuna	.short	5
96*53a483ceSzhuna	.short	0
97*53a483ceSzhuna.Lstr_offsets_base0:
98*53a483ceSzhuna	.section	.debug_str,"MS",@progbits,1
99*53a483ceSzhuna.Lskel_string0:
100*53a483ceSzhuna	.asciz	"/xxxx/xxxxxxxxxx/xxxxxxxx/hello" # string offset=0
101*53a483ceSzhuna.Lskel_string1:
102*53a483ceSzhuna	.asciz	"hello.dwo"                     # string offset=32
103*53a483ceSzhuna	.section	.debug_str_offsets,"",@progbits
104*53a483ceSzhuna	.long	.Lskel_string0
105*53a483ceSzhuna	.long	.Lskel_string1
106*53a483ceSzhuna	.section	.debug_str_offsets.dwo,"e",@progbits
107*53a483ceSzhuna	.long	20
108*53a483ceSzhuna	.short	5
109*53a483ceSzhuna	.short	0
110*53a483ceSzhuna	.section	.debug_str.dwo,"eMS",@progbits,1
111*53a483ceSzhuna.Linfo_string0:
112*53a483ceSzhuna	.asciz	"hello"                         # string offset=0
113*53a483ceSzhuna.Linfo_string1:
114*53a483ceSzhuna	.asciz	"clang version 11.1.0 (https://github.com/llvm/llvm-project.git 1a0dc1e010bf5c8034bd4a53340fc0dc3e90549a)" # string offset=6
115*53a483ceSzhuna.Linfo_string2:
116*53a483ceSzhuna	.asciz	"hello.c"                       # string offset=111
117*53a483ceSzhuna.Linfo_string3:
118*53a483ceSzhuna	.asciz	"hello.dwo"                     # string offset=119
119*53a483ceSzhuna	.section	.debug_str_offsets.dwo,"e",@progbits
120*53a483ceSzhuna	.long	0
121*53a483ceSzhuna	.long	6
122*53a483ceSzhuna	.long	111
123*53a483ceSzhuna	.long	119
124*53a483ceSzhuna	.section	.debug_info.dwo,"e",@progbits
125*53a483ceSzhuna	.long	.Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
126*53a483ceSzhuna.Ldebug_info_dwo_start0:
127*53a483ceSzhuna	.short	5                               # DWARF version number
128*53a483ceSzhuna	.byte	5                               # DWARF Unit Type
129*53a483ceSzhuna	.byte	8                               # Address Size (in bytes)
130*53a483ceSzhuna	.long	0                               # Offset Into Abbrev. Section
131*53a483ceSzhuna	.quad	-94954012350180462
132*53a483ceSzhuna	.byte	1                               # Abbrev [1] 0x14:0x12 DW_TAG_compile_unit
133*53a483ceSzhuna	.byte	1                               # DW_AT_producer
134*53a483ceSzhuna	.short	12                              # DW_AT_language
135*53a483ceSzhuna	.byte	2                               # DW_AT_name
136*53a483ceSzhuna	.byte	3                               # DW_AT_dwo_name
137*53a483ceSzhuna	.byte	2                               # Abbrev [2] 0x1a:0xb DW_TAG_subprogram
138*53a483ceSzhuna	.byte	0                               # DW_AT_low_pc
139*53a483ceSzhuna	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
140*53a483ceSzhuna	.byte	1                               # DW_AT_frame_base
141*53a483ceSzhuna	.byte	86
142*53a483ceSzhuna	.byte	0                               # DW_AT_name
143*53a483ceSzhuna	.byte	0                               # DW_AT_decl_file
144*53a483ceSzhuna	.byte	3                               # DW_AT_decl_line
145*53a483ceSzhuna                                        # DW_AT_external
146*53a483ceSzhuna	.byte	0                               # End Of Children Mark
147*53a483ceSzhuna	.fill   4294967233
148*53a483ceSzhuna.Ldebug_info_dwo_end0:
149*53a483ceSzhuna	.section	.debug_abbrev.dwo,"e",@progbits
150*53a483ceSzhuna	.byte	1                               # Abbreviation Code
151*53a483ceSzhuna	.byte	17                              # DW_TAG_compile_unit
152*53a483ceSzhuna	.byte	1                               # DW_CHILDREN_yes
153*53a483ceSzhuna	.byte	37                              # DW_AT_producer
154*53a483ceSzhuna	.byte	37                              # DW_FORM_strx1
155*53a483ceSzhuna	.byte	19                              # DW_AT_language
156*53a483ceSzhuna	.byte	5                               # DW_FORM_data2
157*53a483ceSzhuna	.byte	3                               # DW_AT_name
158*53a483ceSzhuna	.byte	37                              # DW_FORM_strx1
159*53a483ceSzhuna	.byte	118                             # DW_AT_dwo_name
160*53a483ceSzhuna	.byte	37                              # DW_FORM_strx1
161*53a483ceSzhuna	.byte	0                               # EOM(1)
162*53a483ceSzhuna	.byte	0                               # EOM(2)
163*53a483ceSzhuna	.byte	2                               # Abbreviation Code
164*53a483ceSzhuna	.byte	46                              # DW_TAG_subprogram
165*53a483ceSzhuna	.byte	0                               # DW_CHILDREN_no
166*53a483ceSzhuna	.byte	17                              # DW_AT_low_pc
167*53a483ceSzhuna	.byte	27                              # DW_FORM_addrx
168*53a483ceSzhuna	.byte	18                              # DW_AT_high_pc
169*53a483ceSzhuna	.byte	6                               # DW_FORM_data4
170*53a483ceSzhuna	.byte	64                              # DW_AT_frame_base
171*53a483ceSzhuna	.byte	24                              # DW_FORM_exprloc
172*53a483ceSzhuna	.byte	3                               # DW_AT_name
173*53a483ceSzhuna	.byte	37                              # DW_FORM_strx1
174*53a483ceSzhuna	.byte	58                              # DW_AT_decl_file
175*53a483ceSzhuna	.byte	11                              # DW_FORM_data1
176*53a483ceSzhuna	.byte	59                              # DW_AT_decl_line
177*53a483ceSzhuna	.byte	11                              # DW_FORM_data1
178*53a483ceSzhuna	.byte	63                              # DW_AT_external
179*53a483ceSzhuna	.byte	25                              # DW_FORM_flag_present
180*53a483ceSzhuna	.byte	0                               # EOM(1)
181*53a483ceSzhuna	.byte	0                               # EOM(2)
182*53a483ceSzhuna	.byte	0                               # EOM(3)
183*53a483ceSzhuna	.section	.debug_addr,"",@progbits
184*53a483ceSzhuna	.long	.Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
185*53a483ceSzhuna.Ldebug_addr_start0:
186*53a483ceSzhuna	.short	5                               # DWARF version number
187*53a483ceSzhuna	.byte	8                               # Address size
188*53a483ceSzhuna	.byte	0                               # Segment selector size
189*53a483ceSzhuna.Laddr_table_base0:
190*53a483ceSzhuna	.quad	.Lfunc_begin0
191*53a483ceSzhuna.Ldebug_addr_end0:
192*53a483ceSzhuna	.section	.debug_gnu_pubnames,"",@progbits
193*53a483ceSzhuna	.long	.LpubNames_end0-.LpubNames_begin0 # Length of Public Names Info
194*53a483ceSzhuna.LpubNames_begin0:
195*53a483ceSzhuna	.short	2                               # DWARF Version
196*53a483ceSzhuna	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
197*53a483ceSzhuna	.long	40                              # Compilation Unit Length
198*53a483ceSzhuna	.long	26                              # DIE offset
199*53a483ceSzhuna	.byte	48                              # Attributes: FUNCTION, EXTERNAL
200*53a483ceSzhuna	.asciz	"hello"                         # External Name
201*53a483ceSzhuna	.long	0                               # End Mark
202*53a483ceSzhuna.LpubNames_end0:
203*53a483ceSzhuna	.section	.debug_gnu_pubtypes,"",@progbits
204*53a483ceSzhuna	.long	.LpubTypes_end0-.LpubTypes_begin0 # Length of Public Types Info
205*53a483ceSzhuna.LpubTypes_begin0:
206*53a483ceSzhuna	.short	2                               # DWARF Version
207*53a483ceSzhuna	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
208*53a483ceSzhuna	.long	40                              # Compilation Unit Length
209*53a483ceSzhuna	.long	0                               # End Mark
210*53a483ceSzhuna.LpubTypes_end0:
211*53a483ceSzhuna	.ident	"clang version 11.1.0 (https://github.com/llvm/llvm-project.git 1a0dc1e010bf5c8034bd4a53340fc0dc3e90549a)"
212*53a483ceSzhuna	.section	".note.GNU-stack","",@progbits
213*53a483ceSzhuna	.addrsig
214*53a483ceSzhuna	.addrsig_sym printf
215*53a483ceSzhuna	.section	.debug_line,"",@progbits
216*53a483ceSzhuna.Lline_table_start0:
217