1 # RUN: rm -rf %t && mkdir -p %t
3 # RUN: llvm-mc -filetype=obj -triple x86_64-unknown-linux-gnu %s -o ranges.o -split-dwarf-file ranges.dwo
4 # RUN: llvm-dwarfdump --statistics ranges.o | FileCheck %s
6 # CHECK: "#bytes within functions": 30,
11 .section .text._Z2f3v,"ax",@progbits
12 .globl _Z2f3v # -- Begin function _Z2f3v
14 .type _Z2f3v,@function
17 .file 0 "/usr/local/google/home/blaikie/dev/scratch" "ranges.cpp" md5 0x6dd27b2681f4bda8fe888ef8f6ffca94
18 .loc 0 4 0 # ranges.cpp:4:0
22 .cfi_def_cfa_offset 16
25 .cfi_def_cfa_register %rbp
27 .loc 0 5 7 prologue_end # ranges.cpp:5:7
33 .section .text._Z2f3v,"ax",@progbits,unique,1
34 _Z2f3v.__part.1
: # %if.then
38 .loc 0 6 5 # ranges.cpp:6:5
42 .size _Z2f3v.__part.1, .LBB_END0_1-_Z2f3v.__part.1
44 .section .text._Z2f3v,"ax",@progbits,unique,2
45 _Z2f3v.__part.2
: # %if.end
49 .loc 0 7 3 # ranges.cpp:7:3
51 .loc 0 8 1 # ranges.cpp:8:1
56 .size _Z2f3v.__part.2, .LBB_END0_2-_Z2f3v.__part.2
58 .section .text._Z2f3v,"ax",@progbits
60 .size _Z2f3v, .Lfunc_end0-_Z2f3v
62 .section .debug_abbrev,"",@progbits
63 .byte 1 # Abbreviation Code
64 .byte 74 # DW_TAG_skeleton_unit
65 .byte 0 # DW_CHILDREN_no
66 .byte 16 # DW_AT_stmt_list
67 .byte 23 # DW_FORM_sec_offset
68 .byte 114 # DW_AT_str_offsets_base
69 .byte 23 # DW_FORM_sec_offset
70 .byte 27 # DW_AT_comp_dir
71 .byte 37 # DW_FORM_strx1
72 .ascii "\264B" # DW_AT_GNU_pubnames
73 .byte 25 # DW_FORM_flag_present
74 .byte 118 # DW_AT_dwo_name
75 .byte 37 # DW_FORM_strx1
76 .byte 17 # DW_AT_low_pc
77 .byte 1 # DW_FORM_addr
78 .byte 85 # DW_AT_ranges
79 .byte 35 # DW_FORM_rnglistx
80 .byte 115 # DW_AT_addr_base
81 .byte 23 # DW_FORM_sec_offset
82 .byte 116 # DW_AT_rnglists_base
83 .byte 23 # DW_FORM_sec_offset
87 .section .debug_info,"",@progbits
89 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
91 .short 5 # DWARF version number
92 .byte 4 # DWARF Unit Type
93 .byte 8 # Address Size (in bytes)
94 .long .debug_abbrev # Offset Into Abbrev. Section
95 .quad -7949078943903054930
96 .byte 1 # Abbrev [1] 0x14:0x1c DW_TAG_skeleton_unit
97 .long .Lline_table_start0 # DW_AT_stmt_list
98 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
99 .byte 0 # DW_AT_comp_dir
101 .byte 1 # DW_AT_dwo_name
102 .quad 0 # DW_AT_low_pc
103 .byte 0 # DW_AT_ranges
104 .long .Laddr_table_base0 # DW_AT_addr_base
105 .long .Lrnglists_table_base0 # DW_AT_rnglists_base
107 .section .debug_rnglists,"",@progbits
108 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length
109 .Ldebug_list_header_start0:
111 .byte 8 # Address size
112 .byte 0 # Segment selector size
113 .long 1 # Offset entry count
114 .Lrnglists_table_base0:
115 .long .Ldebug_ranges1-.Lrnglists_table_base0
117 .byte 3 # DW_RLE_startx_length
118 .byte 0 # start index
119 .uleb128 .LBB_END0_1-_Z2f3v.__part.1 # length
120 .byte 3 # DW_RLE_startx_length
121 .byte 1 # start index
122 .uleb128 .LBB_END0_2-_Z2f3v.__part.2 # length
123 .byte 3 # DW_RLE_startx_length
124 .byte 2 # start index
125 .uleb128 .Lfunc_end0-.Lfunc_begin0 # length
126 .byte 0 # DW_RLE_end_of_list
127 .Ldebug_list_header_end0:
128 .section .debug_str_offsets,"",@progbits
129 .long 12 # Length of String Offsets Set
133 .section .debug_str,"MS",@progbits,1
135 .asciz "." # string offset=0
137 .asciz "ranges.dwo" # string offset=43
138 .section .debug_str_offsets,"",@progbits
141 .section .debug_addr,"",@progbits
142 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
144 .short 5 # DWARF version number
145 .byte 8 # Address size
146 .byte 0 # Segment selector size
148 .quad _Z2f3v.__part.1
149 .quad _Z2f3v.__part.2
152 .section .debug_gnu_pubnames,"",@progbits
153 .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
155 .short 2 # DWARF Version
156 .long .Lcu_begin0 # Offset of Compilation Unit Info
157 .long 48 # Compilation Unit Length
158 .long 26 # DIE offset
159 .byte 48 # Attributes: FUNCTION, EXTERNAL
160 .asciz "f3" # External Name
163 .section .debug_gnu_pubtypes,"",@progbits
164 .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
166 .short 2 # DWARF Version
167 .long .Lcu_begin0 # Offset of Compilation Unit Info
168 .long 48 # Compilation Unit Length
171 .ident "clang version 13.0.0 (git@github.com:llvm/llvm-project.git 09cdcf09b54d328fc0a247b3a0f351d2610e928f)"
172 .section ".note.GNU-stack","",@progbits
177 .section .debug_line,"",@progbits
181 .section .debug_str_offsets.dwo,"e",@progbits
182 .long 24 # Length of String Offsets Set
185 .section .debug_str.dwo,"eMS",@progbits,1
187 .asciz "_Z2f3v" # string offset=0
189 .asciz "f3" # string offset=7
191 .asciz "clang version 13.0.0 (git@github.com:llvm/llvm-project.git 09cdcf09b54d328fc0a247b3a0f351d2610e928f)" # string offset=10
193 .asciz "ranges.cpp" # string offset=111
195 .asciz "ranges.dwo" # string offset=122
196 .section .debug_str_offsets.dwo,"e",@progbits
202 .section .debug_info.dwo,"e",@progbits
203 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
204 .Ldebug_info_dwo_start0:
205 .short 5 # DWARF version number
206 .byte 5 # DWARF Unit Type
207 .byte 8 # Address Size (in bytes)
208 .long 0 # Offset Into Abbrev. Section
209 .quad -7949078943903054930
210 .byte 1 # Abbrev [1] 0x14:0xf DW_TAG_compile_unit
211 .byte 2 # DW_AT_producer
212 .short 33 # DW_AT_language
214 .byte 4 # DW_AT_dwo_name
215 .byte 2 # Abbrev [2] 0x1a:0x8 DW_TAG_subprogram
216 .byte 0 # DW_AT_ranges
217 .byte 1 # DW_AT_frame_base
219 .byte 0 # DW_AT_linkage_name
221 .byte 0 # DW_AT_decl_file
222 .byte 4 # DW_AT_decl_line
224 .byte 0 # End Of Children Mark
225 .Ldebug_info_dwo_end0:
226 .section .debug_abbrev.dwo,"e",@progbits
227 .byte 1 # Abbreviation Code
228 .byte 17 # DW_TAG_compile_unit
229 .byte 1 # DW_CHILDREN_yes
230 .byte 37 # DW_AT_producer
231 .byte 37 # DW_FORM_strx1
232 .byte 19 # DW_AT_language
233 .byte 5 # DW_FORM_data2
235 .byte 37 # DW_FORM_strx1
236 .byte 118 # DW_AT_dwo_name
237 .byte 37 # DW_FORM_strx1
240 .byte 2 # Abbreviation Code
241 .byte 46 # DW_TAG_subprogram
242 .byte 0 # DW_CHILDREN_no
243 .byte 85 # DW_AT_ranges
244 .byte 35 # DW_FORM_rnglistx
245 .byte 64 # DW_AT_frame_base
246 .byte 24 # DW_FORM_exprloc
247 .byte 110 # DW_AT_linkage_name
248 .byte 37 # DW_FORM_strx1
250 .byte 37 # DW_FORM_strx1
251 .byte 58 # DW_AT_decl_file
252 .byte 11 # DW_FORM_data1
253 .byte 59 # DW_AT_decl_line
254 .byte 11 # DW_FORM_data1
255 .byte 63 # DW_AT_external
256 .byte 25 # DW_FORM_flag_present
260 .section .debug_rnglists.dwo,"e",@progbits
261 .long .Ldebug_list_header_end1-.Ldebug_list_header_start1 # Length
262 .Ldebug_list_header_start1:
264 .byte 8 # Address size
265 .byte 0 # Segment selector size
266 .long 1 # Offset entry count
267 .Lrnglists_dwo_table_base0:
268 .long .Ldebug_ranges0-.Lrnglists_dwo_table_base0
270 .byte 3 # DW_RLE_startx_length
271 .byte 0 # start index
273 .byte 3 # DW_RLE_startx_length
274 .byte 1 # start index
276 .byte 3 # DW_RLE_startx_length
277 .byte 2 # start index
279 .byte 0 # DW_RLE_end_of_list
280 .Ldebug_list_header_end1: