xref: /llvm-project/llvm/test/tools/llvm-dwp/Inputs/overflow/debug_info_v4.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-4 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	1 "/xxxxxx/xxxx/xxxxxxxxxx/xxxxxxxx/hello" "hello.c"
23*53a483ceSzhuna	.loc	1 3 0                           # hello.c:3:0
24*53a483ceSzhuna	.cfi_startproc
25*53a483ceSzhuna# %bb.0:
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	1 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	1 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	17                              # DW_TAG_compile_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	27                              # DW_AT_comp_dir
58*53a483ceSzhuna	.byte	14                              # DW_FORM_strp
59*53a483ceSzhuna	.ascii	"\264B"                         # DW_AT_GNU_pubnames
60*53a483ceSzhuna	.byte	25                              # DW_FORM_flag_present
61*53a483ceSzhuna	.ascii	"\260B"                         # DW_AT_GNU_dwo_name
62*53a483ceSzhuna	.byte	14                              # DW_FORM_strp
63*53a483ceSzhuna	.ascii	"\261B"                         # DW_AT_GNU_dwo_id
64*53a483ceSzhuna	.byte	7                               # DW_FORM_data8
65*53a483ceSzhuna	.byte	17                              # DW_AT_low_pc
66*53a483ceSzhuna	.byte	1                               # DW_FORM_addr
67*53a483ceSzhuna	.byte	18                              # DW_AT_high_pc
68*53a483ceSzhuna	.byte	6                               # DW_FORM_data4
69*53a483ceSzhuna	.ascii	"\263B"                         # DW_AT_GNU_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	4294967295   # 2^32 - 1    #44                              # Length of Unit
77*53a483ceSzhuna	.long	44                              # Length of Unit
78*53a483ceSzhuna	.short	4                               # DWARF version number
79*53a483ceSzhuna	.long	.debug_abbrev                   # Offset Into Abbrev. Section
80*53a483ceSzhuna	.byte	8                               # Address Size (in bytes)
81*53a483ceSzhuna	.byte	1                               # Abbrev [1] 0xb:0x25 DW_TAG_compile_unit
82*53a483ceSzhuna	.long	.Lline_table_start0             # DW_AT_stmt_list
83*53a483ceSzhuna	.long	.Lskel_string0                  # DW_AT_comp_dir
84*53a483ceSzhuna                                        # DW_AT_GNU_pubnames
85*53a483ceSzhuna	.long	.Lskel_string1                  # DW_AT_GNU_dwo_name
86*53a483ceSzhuna	.quad	-94954012350180462              # DW_AT_GNU_dwo_id
87*53a483ceSzhuna	.quad	.Lfunc_begin0                   # DW_AT_low_pc
88*53a483ceSzhuna	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
89*53a483ceSzhuna	.long	.Laddr_table_base0              # DW_AT_GNU_addr_base
90*53a483ceSzhuna	# .fill   4294967251   # = 2^32 - 1 - 44
91*53a483ceSzhuna	.section	.debug_str,"MS",@progbits,1
92*53a483ceSzhuna.Lskel_string0:
93*53a483ceSzhuna	.asciz	"/xxxxxx/xxxx/xxxxxxxxxx/xxxxxxxx/hello" # string offset=0
94*53a483ceSzhuna.Lskel_string1:
95*53a483ceSzhuna	.asciz	"hello.dwo"                     # string offset=39
96*53a483ceSzhuna	.section	.debug_str.dwo,"eMS",@progbits,1
97*53a483ceSzhuna.Linfo_string0:
98*53a483ceSzhuna	.asciz	"hello"                         # string offset=0
99*53a483ceSzhuna.Linfo_string1:
100*53a483ceSzhuna	.asciz	"clang version 11.1.0 (https://github.com/llvm/llvm-project.git 173544ee3d09cdce8665f2097f677c31e1f1a9a1)" # string offset=6
101*53a483ceSzhuna.Linfo_string2:
102*53a483ceSzhuna	.asciz	"hello.c"                       # string offset=111
103*53a483ceSzhuna.Linfo_string3:
104*53a483ceSzhuna	.asciz	"hello.dwo"                     # string offset=119
105*53a483ceSzhuna	.section	.debug_str_offsets.dwo,"e",@progbits
106*53a483ceSzhuna	.long	0
107*53a483ceSzhuna	.long	6
108*53a483ceSzhuna	.long	111
109*53a483ceSzhuna	.long	119
110*53a483ceSzhuna	.section	.debug_info.dwo,"e",@progbits
111*53a483ceSzhuna	.long	4294967266   # 2^32 - 30        #33                              # Length of Unit
112*53a483ceSzhuna	.short	4                               # DWARF version number
113*53a483ceSzhuna	.long	0                               # Offset Into Abbrev. Section
114*53a483ceSzhuna	.byte	8                               # Address Size (in bytes)
115*53a483ceSzhuna	.byte	1                               # Abbrev [1] 0xb:0x1a DW_TAG_compile_unit
116*53a483ceSzhuna	.byte	1                               # DW_AT_producer
117*53a483ceSzhuna	.short	12                              # DW_AT_language
118*53a483ceSzhuna	.byte	2                               # DW_AT_name
119*53a483ceSzhuna	.byte	3                               # DW_AT_GNU_dwo_name
120*53a483ceSzhuna	.quad	-94954012350180462              # DW_AT_GNU_dwo_id
121*53a483ceSzhuna	.byte	2                               # Abbrev [2] 0x19:0xb DW_TAG_subprogram
122*53a483ceSzhuna	.byte	0                               # DW_AT_low_pc
123*53a483ceSzhuna	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc
124*53a483ceSzhuna	.byte	1                               # DW_AT_frame_base
125*53a483ceSzhuna	.byte	86
126*53a483ceSzhuna	.byte	0                               # DW_AT_name
127*53a483ceSzhuna	.byte	1                               # DW_AT_decl_file
128*53a483ceSzhuna	.byte	3                               # DW_AT_decl_line
129*53a483ceSzhuna                                        # DW_AT_external
130*53a483ceSzhuna	.byte	0                               # End Of Children Mark
131*53a483ceSzhuna	.fill   4294967233  # 2^32 - 30 - 33
132*53a483ceSzhuna	.section	.debug_abbrev.dwo,"e",@progbits
133*53a483ceSzhuna	.byte	1                               # Abbreviation Code
134*53a483ceSzhuna	.byte	17                              # DW_TAG_compile_unit
135*53a483ceSzhuna	.byte	1                               # DW_CHILDREN_yes
136*53a483ceSzhuna	.byte	37                              # DW_AT_producer
137*53a483ceSzhuna	.ascii	"\202>"                         # DW_FORM_GNU_str_index
138*53a483ceSzhuna	.byte	19                              # DW_AT_language
139*53a483ceSzhuna	.byte	5                               # DW_FORM_data2
140*53a483ceSzhuna	.byte	3                               # DW_AT_name
141*53a483ceSzhuna	.ascii	"\202>"                         # DW_FORM_GNU_str_index
142*53a483ceSzhuna	.ascii	"\260B"                         # DW_AT_GNU_dwo_name
143*53a483ceSzhuna	.ascii	"\202>"                         # DW_FORM_GNU_str_index
144*53a483ceSzhuna	.ascii	"\261B"                         # DW_AT_GNU_dwo_id
145*53a483ceSzhuna	.byte	7                               # DW_FORM_data8
146*53a483ceSzhuna	.byte	0                               # EOM(1)
147*53a483ceSzhuna	.byte	0                               # EOM(2)
148*53a483ceSzhuna	.byte	2                               # Abbreviation Code
149*53a483ceSzhuna	.byte	46                              # DW_TAG_subprogram
150*53a483ceSzhuna	.byte	0                               # DW_CHILDREN_no
151*53a483ceSzhuna	.byte	17                              # DW_AT_low_pc
152*53a483ceSzhuna	.ascii	"\201>"                         # DW_FORM_GNU_addr_index
153*53a483ceSzhuna	.byte	18                              # DW_AT_high_pc
154*53a483ceSzhuna	.byte	6                               # DW_FORM_data4
155*53a483ceSzhuna	.byte	64                              # DW_AT_frame_base
156*53a483ceSzhuna	.byte	24                              # DW_FORM_exprloc
157*53a483ceSzhuna	.byte	3                               # DW_AT_name
158*53a483ceSzhuna	.ascii	"\202>"                         # DW_FORM_GNU_str_index
159*53a483ceSzhuna	.byte	58                              # DW_AT_decl_file
160*53a483ceSzhuna	.byte	11                              # DW_FORM_data1
161*53a483ceSzhuna	.byte	59                              # DW_AT_decl_line
162*53a483ceSzhuna	.byte	11                              # DW_FORM_data1
163*53a483ceSzhuna	.byte	63                              # DW_AT_external
164*53a483ceSzhuna	.byte	25                              # DW_FORM_flag_present
165*53a483ceSzhuna	.byte	0                               # EOM(1)
166*53a483ceSzhuna	.byte	0                               # EOM(2)
167*53a483ceSzhuna	.byte	0                               # EOM(3)
168*53a483ceSzhuna	.section	.debug_addr,"",@progbits
169*53a483ceSzhuna.Laddr_table_base0:
170*53a483ceSzhuna	.quad	.Lfunc_begin0
171*53a483ceSzhuna	.section	.debug_gnu_pubnames,"",@progbits
172*53a483ceSzhuna	.long	.LpubNames_end0-.LpubNames_begin0 # Length of Public Names Info
173*53a483ceSzhuna.LpubNames_begin0:
174*53a483ceSzhuna	.short	2                               # DWARF Version
175*53a483ceSzhuna	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
176*53a483ceSzhuna	.long	48                              # Compilation Unit Length
177*53a483ceSzhuna	.long	25                              # DIE offset
178*53a483ceSzhuna	.byte	48                              # Attributes: FUNCTION, EXTERNAL
179*53a483ceSzhuna	.asciz	"hello"                         # External Name
180*53a483ceSzhuna	.long	0                               # End Mark
181*53a483ceSzhuna.LpubNames_end0:
182*53a483ceSzhuna	.section	.debug_gnu_pubtypes,"",@progbits
183*53a483ceSzhuna	.long	.LpubTypes_end0-.LpubTypes_begin0 # Length of Public Types Info
184*53a483ceSzhuna.LpubTypes_begin0:
185*53a483ceSzhuna	.short	2                               # DWARF Version
186*53a483ceSzhuna	.long	.Lcu_begin0                     # Offset of Compilation Unit Info
187*53a483ceSzhuna	.long	48                              # Compilation Unit Length
188*53a483ceSzhuna	.long	0                               # End Mark
189*53a483ceSzhuna.LpubTypes_end0:
190*53a483ceSzhuna	.ident	"clang version 11.1.0 (https://github.com/llvm/llvm-project.git 173544ee3d09cdce8665f2097f677c31e1f1a9a1)"
191*53a483ceSzhuna	.section	".note.GNU-stack","",@progbits
192*53a483ceSzhuna	.addrsig
193*53a483ceSzhuna	.addrsig_sym printf
194*53a483ceSzhuna	.section	.debug_line,"",@progbits
195*53a483ceSzhuna.Lline_table_start0: