282 lines · plain
1# RUN: rm -rf %t && mkdir -p %t2# RUN: cd %t3# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-linux-gnu %s -o ranges.o -split-dwarf-file ranges.dwo4# RUN: llvm-dwarfdump --statistics ranges.o | FileCheck %s5 6# CHECK: "#bytes within functions": 30,7 8 9 .text10 .file "ranges.cpp"11 .section .text._Z2f3v,"ax",@progbits12 .globl _Z2f3v # -- Begin function _Z2f3v13 .p2align 4, 0x9014 .type _Z2f3v,@function15_Z2f3v: # @_Z2f3v16.Lfunc_begin0:17 .file 0 "/usr/local/google/home/blaikie/dev/scratch" "ranges.cpp" md5 0x6dd27b2681f4bda8fe888ef8f6ffca9418 .loc 0 4 0 # ranges.cpp:4:019 .cfi_startproc20# %bb.0: # %entry21 pushq %rbp22 .cfi_def_cfa_offset 1623 .cfi_offset %rbp, -1624 movq %rsp, %rbp25 .cfi_def_cfa_register %rbp26.Ltmp0:27 .loc 0 5 7 prologue_end # ranges.cpp:5:728 testb $1, b29 je _Z2f3v.__part.230 jmp _Z2f3v.__part.131.LBB_END0_0:32 .cfi_endproc33 .section .text._Z2f3v,"ax",@progbits,unique,134_Z2f3v.__part.1: # %if.then35 .cfi_startproc36 .cfi_def_cfa %rbp, 1637 .cfi_offset %rbp, -1638 .loc 0 6 5 # ranges.cpp:6:539 callq _Z2f1v40 jmp _Z2f3v.__part.241.LBB_END0_1:42 .size _Z2f3v.__part.1, .LBB_END0_1-_Z2f3v.__part.143 .cfi_endproc44 .section .text._Z2f3v,"ax",@progbits,unique,245_Z2f3v.__part.2: # %if.end46 .cfi_startproc47 .cfi_def_cfa %rbp, 1648 .cfi_offset %rbp, -1649 .loc 0 7 3 # ranges.cpp:7:350 callq _Z2f2v51 .loc 0 8 1 # ranges.cpp:8:152 popq %rbp53 .cfi_def_cfa %rsp, 854 retq55.LBB_END0_2:56 .size _Z2f3v.__part.2, .LBB_END0_2-_Z2f3v.__part.257 .cfi_endproc58 .section .text._Z2f3v,"ax",@progbits59.Lfunc_end0:60 .size _Z2f3v, .Lfunc_end0-_Z2f3v61 # -- End function62 .section .debug_abbrev,"",@progbits63 .byte 1 # Abbreviation Code64 .byte 74 # DW_TAG_skeleton_unit65 .byte 0 # DW_CHILDREN_no66 .byte 16 # DW_AT_stmt_list67 .byte 23 # DW_FORM_sec_offset68 .byte 114 # DW_AT_str_offsets_base69 .byte 23 # DW_FORM_sec_offset70 .byte 27 # DW_AT_comp_dir71 .byte 37 # DW_FORM_strx172 .ascii "\264B" # DW_AT_GNU_pubnames73 .byte 25 # DW_FORM_flag_present74 .byte 118 # DW_AT_dwo_name75 .byte 37 # DW_FORM_strx176 .byte 17 # DW_AT_low_pc77 .byte 1 # DW_FORM_addr78 .byte 85 # DW_AT_ranges79 .byte 35 # DW_FORM_rnglistx80 .byte 115 # DW_AT_addr_base81 .byte 23 # DW_FORM_sec_offset82 .byte 116 # DW_AT_rnglists_base83 .byte 23 # DW_FORM_sec_offset84 .byte 0 # EOM(1)85 .byte 0 # EOM(2)86 .byte 0 # EOM(3)87 .section .debug_info,"",@progbits88.Lcu_begin0:89 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit90.Ldebug_info_start0:91 .short 5 # DWARF version number92 .byte 4 # DWARF Unit Type93 .byte 8 # Address Size (in bytes)94 .long .debug_abbrev # Offset Into Abbrev. Section95 .quad -794907894390305493096 .byte 1 # Abbrev [1] 0x14:0x1c DW_TAG_skeleton_unit97 .long .Lline_table_start0 # DW_AT_stmt_list98 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base99 .byte 0 # DW_AT_comp_dir100 # DW_AT_GNU_pubnames101 .byte 1 # DW_AT_dwo_name102 .quad 0 # DW_AT_low_pc103 .byte 0 # DW_AT_ranges104 .long .Laddr_table_base0 # DW_AT_addr_base105 .long .Lrnglists_table_base0 # DW_AT_rnglists_base106.Ldebug_info_end0:107 .section .debug_rnglists,"",@progbits108 .long .Ldebug_list_header_end0-.Ldebug_list_header_start0 # Length109.Ldebug_list_header_start0:110 .short 5 # Version111 .byte 8 # Address size112 .byte 0 # Segment selector size113 .long 1 # Offset entry count114.Lrnglists_table_base0:115 .long .Ldebug_ranges1-.Lrnglists_table_base0116.Ldebug_ranges1:117 .byte 3 # DW_RLE_startx_length118 .byte 0 # start index119 .uleb128 .LBB_END0_1-_Z2f3v.__part.1 # length120 .byte 3 # DW_RLE_startx_length121 .byte 1 # start index122 .uleb128 .LBB_END0_2-_Z2f3v.__part.2 # length123 .byte 3 # DW_RLE_startx_length124 .byte 2 # start index125 .uleb128 .Lfunc_end0-.Lfunc_begin0 # length126 .byte 0 # DW_RLE_end_of_list127.Ldebug_list_header_end0:128 .section .debug_str_offsets,"",@progbits129 .long 12 # Length of String Offsets Set130 .short 5131 .short 0132.Lstr_offsets_base0:133 .section .debug_str,"MS",@progbits,1134.Lskel_string0:135 .asciz "." # string offset=0136.Lskel_string1:137 .asciz "ranges.dwo" # string offset=43138 .section .debug_str_offsets,"",@progbits139 .long .Lskel_string0140 .long .Lskel_string1141 .section .debug_addr,"",@progbits142 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution143.Ldebug_addr_start0:144 .short 5 # DWARF version number145 .byte 8 # Address size146 .byte 0 # Segment selector size147.Laddr_table_base0:148 .quad _Z2f3v.__part.1149 .quad _Z2f3v.__part.2150 .quad .Lfunc_begin0151.Ldebug_addr_end0:152 .section .debug_gnu_pubnames,"",@progbits153 .long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info154.LpubNames_start0:155 .short 2 # DWARF Version156 .long .Lcu_begin0 # Offset of Compilation Unit Info157 .long 48 # Compilation Unit Length158 .long 26 # DIE offset159 .byte 48 # Attributes: FUNCTION, EXTERNAL160 .asciz "f3" # External Name161 .long 0 # End Mark162.LpubNames_end0:163 .section .debug_gnu_pubtypes,"",@progbits164 .long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info165.LpubTypes_start0:166 .short 2 # DWARF Version167 .long .Lcu_begin0 # Offset of Compilation Unit Info168 .long 48 # Compilation Unit Length169 .long 0 # End Mark170.LpubTypes_end0:171 .ident "clang version 13.0.0 (git@github.com:llvm/llvm-project.git 09cdcf09b54d328fc0a247b3a0f351d2610e928f)"172 .section ".note.GNU-stack","",@progbits173 .addrsig174 .addrsig_sym _Z2f1v175 .addrsig_sym _Z2f2v176 .addrsig_sym b177 .section .debug_line,"",@progbits178.Lline_table_start0:179 180 181 .section .debug_str_offsets.dwo,"e",@progbits182 .long 24 # Length of String Offsets Set183 .short 5184 .short 0185 .section .debug_str.dwo,"eMS",@progbits,1186.Linfo_string0:187 .asciz "_Z2f3v" # string offset=0188.Linfo_string1:189 .asciz "f3" # string offset=7190.Linfo_string2:191 .asciz "clang version 13.0.0 (git@github.com:llvm/llvm-project.git 09cdcf09b54d328fc0a247b3a0f351d2610e928f)" # string offset=10192.Linfo_string3:193 .asciz "ranges.cpp" # string offset=111194.Linfo_string4:195 .asciz "ranges.dwo" # string offset=122196 .section .debug_str_offsets.dwo,"e",@progbits197 .long 0198 .long 7199 .long 10200 .long 111201 .long 122202 .section .debug_info.dwo,"e",@progbits203 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit204.Ldebug_info_dwo_start0:205 .short 5 # DWARF version number206 .byte 5 # DWARF Unit Type207 .byte 8 # Address Size (in bytes)208 .long 0 # Offset Into Abbrev. Section209 .quad -7949078943903054930210 .byte 1 # Abbrev [1] 0x14:0xf DW_TAG_compile_unit211 .byte 2 # DW_AT_producer212 .short 33 # DW_AT_language213 .byte 3 # DW_AT_name214 .byte 4 # DW_AT_dwo_name215 .byte 2 # Abbrev [2] 0x1a:0x8 DW_TAG_subprogram216 .byte 0 # DW_AT_ranges217 .byte 1 # DW_AT_frame_base218 .byte 86219 .byte 0 # DW_AT_linkage_name220 .byte 1 # DW_AT_name221 .byte 0 # DW_AT_decl_file222 .byte 4 # DW_AT_decl_line223 # DW_AT_external224 .byte 0 # End Of Children Mark225.Ldebug_info_dwo_end0:226 .section .debug_abbrev.dwo,"e",@progbits227 .byte 1 # Abbreviation Code228 .byte 17 # DW_TAG_compile_unit229 .byte 1 # DW_CHILDREN_yes230 .byte 37 # DW_AT_producer231 .byte 37 # DW_FORM_strx1232 .byte 19 # DW_AT_language233 .byte 5 # DW_FORM_data2234 .byte 3 # DW_AT_name235 .byte 37 # DW_FORM_strx1236 .byte 118 # DW_AT_dwo_name237 .byte 37 # DW_FORM_strx1238 .byte 0 # EOM(1)239 .byte 0 # EOM(2)240 .byte 2 # Abbreviation Code241 .byte 46 # DW_TAG_subprogram242 .byte 0 # DW_CHILDREN_no243 .byte 85 # DW_AT_ranges244 .byte 35 # DW_FORM_rnglistx245 .byte 64 # DW_AT_frame_base246 .byte 24 # DW_FORM_exprloc247 .byte 110 # DW_AT_linkage_name248 .byte 37 # DW_FORM_strx1249 .byte 3 # DW_AT_name250 .byte 37 # DW_FORM_strx1251 .byte 58 # DW_AT_decl_file252 .byte 11 # DW_FORM_data1253 .byte 59 # DW_AT_decl_line254 .byte 11 # DW_FORM_data1255 .byte 63 # DW_AT_external256 .byte 25 # DW_FORM_flag_present257 .byte 0 # EOM(1)258 .byte 0 # EOM(2)259 .byte 0 # EOM(3)260 .section .debug_rnglists.dwo,"e",@progbits261 .long .Ldebug_list_header_end1-.Ldebug_list_header_start1 # Length262.Ldebug_list_header_start1:263 .short 5 # Version264 .byte 8 # Address size265 .byte 0 # Segment selector size266 .long 1 # Offset entry count267.Lrnglists_dwo_table_base0:268 .long .Ldebug_ranges0-.Lrnglists_dwo_table_base0269.Ldebug_ranges0:270 .byte 3 # DW_RLE_startx_length271 .byte 0 # start index272 .uleb128 10 # length273 .byte 3 # DW_RLE_startx_length274 .byte 1 # start index275 .uleb128 10 # length276 .byte 3 # DW_RLE_startx_length277 .byte 2 # start index278 .uleb128 10 # length279 .byte 0 # DW_RLE_end_of_list280.Ldebug_list_header_end1:281 282