316 lines · plain
1# Source:2# struct e {3# char f[16384];4# char g;5# };6# e foo() {7# auto E = new e;8# return *E;9# }10# Compile with:11# clang -O2 -gdwarf-2 -S a.cpp -o a2.s12 13# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o %t.o14# RUN: llvm-dwarfdump -debug-info -name g %t.o | FileCheck %s15 16# CHECK: DW_TAG_member17# CHECK: DW_AT_name ("g")18# CHECK: DW_AT_data_member_location (DW_OP_plus_uconst 0x4000)19 20 .section __TEXT,__text,regular,pure_instructions21 .macosx_version_min 10, 1422 .globl __Z3foov ## -- Begin function _Z3foov23 .p2align 4, 0x9024__Z3foov: ## @_Z3foov25Lfunc_begin0:26 .file 1 "/private/tmp" "a.cpp"27 .loc 1 5 0 ## a.cpp:5:028 .cfi_startproc29## %bb.0: ## %entry30 pushq %rbp31 .cfi_def_cfa_offset 1632 .cfi_offset %rbp, -1633 movq %rsp, %rbp34 .cfi_def_cfa_register %rbp35 pushq %rbx36 pushq %rax37 .cfi_offset %rbx, -2438 movq %rdi, %rbx39Ltmp0:40 .loc 1 6 12 prologue_end ## a.cpp:6:1241 movl $16385, %edi ## imm = 0x400142 callq __Znwm43Ltmp1:44 ##DEBUG_VALUE: foo:E <- $rax45 .loc 1 7 10 ## a.cpp:7:1046 movl $16385, %edx ## imm = 0x400147 movq %rbx, %rdi48 movq %rax, %rsi49 callq _memcpy50Ltmp2:51 .loc 1 8 1 ## a.cpp:8:152 movq %rbx, %rax53 addq $8, %rsp54 popq %rbx55 popq %rbp56 retq57Ltmp3:58Lfunc_end0:59 .cfi_endproc60 ## -- End function61 .section __DWARF,__debug_str,regular,debug62Linfo_string:63 .asciz "clang version 9.0.0 (git@github.com:llvm/llvm-project.git 10de39548976ae224709acdc1c337e33cf12f3c0)" ## string offset=064 .asciz "a.cpp" ## string offset=10065 .asciz "/private/tmp" ## string offset=10666 .asciz "foo" ## string offset=11967 .asciz "_Z3foov" ## string offset=12368 .asciz "e" ## string offset=13169 .asciz "f" ## string offset=13370 .asciz "char" ## string offset=13571 .asciz "__ARRAY_SIZE_TYPE__" ## string offset=14072 .asciz "g" ## string offset=16073 .asciz "E" ## string offset=16274 .section __DWARF,__debug_loc,regular,debug75Lsection_debug_loc:76Ldebug_loc0:77.set Lset0, Ltmp1-Lfunc_begin078 .quad Lset079.set Lset1, Ltmp2-Lfunc_begin080 .quad Lset181 .short 1 ## Loc expr size82 .byte 80 ## DW_OP_reg083 .quad 084 .quad 085 .section __DWARF,__debug_abbrev,regular,debug86Lsection_abbrev:87 .byte 1 ## Abbreviation Code88 .byte 17 ## DW_TAG_compile_unit89 .byte 1 ## DW_CHILDREN_yes90 .byte 37 ## DW_AT_producer91 .byte 14 ## DW_FORM_strp92 .byte 19 ## DW_AT_language93 .byte 5 ## DW_FORM_data294 .byte 3 ## DW_AT_name95 .byte 14 ## DW_FORM_strp96 .byte 16 ## DW_AT_stmt_list97 .byte 6 ## DW_FORM_data498 .byte 27 ## DW_AT_comp_dir99 .byte 14 ## DW_FORM_strp100 .ascii "\264B" ## DW_AT_GNU_pubnames101 .byte 12 ## DW_FORM_flag102 .ascii "\341\177" ## DW_AT_APPLE_optimized103 .byte 12 ## DW_FORM_flag104 .byte 17 ## DW_AT_low_pc105 .byte 1 ## DW_FORM_addr106 .byte 18 ## DW_AT_high_pc107 .byte 1 ## DW_FORM_addr108 .byte 0 ## EOM(1)109 .byte 0 ## EOM(2)110 .byte 2 ## Abbreviation Code111 .byte 46 ## DW_TAG_subprogram112 .byte 1 ## DW_CHILDREN_yes113 .byte 17 ## DW_AT_low_pc114 .byte 1 ## DW_FORM_addr115 .byte 18 ## DW_AT_high_pc116 .byte 1 ## DW_FORM_addr117 .byte 64 ## DW_AT_frame_base118 .byte 10 ## DW_FORM_block1119 .ascii "\207@" ## DW_AT_MIPS_linkage_name120 .byte 14 ## DW_FORM_strp121 .byte 3 ## DW_AT_name122 .byte 14 ## DW_FORM_strp123 .byte 58 ## DW_AT_decl_file124 .byte 11 ## DW_FORM_data1125 .byte 59 ## DW_AT_decl_line126 .byte 11 ## DW_FORM_data1127 .byte 73 ## DW_AT_type128 .byte 19 ## DW_FORM_ref4129 .byte 63 ## DW_AT_external130 .byte 12 ## DW_FORM_flag131 .ascii "\341\177" ## DW_AT_APPLE_optimized132 .byte 12 ## DW_FORM_flag133 .byte 0 ## EOM(1)134 .byte 0 ## EOM(2)135 .byte 3 ## Abbreviation Code136 .byte 52 ## DW_TAG_variable137 .byte 0 ## DW_CHILDREN_no138 .byte 2 ## DW_AT_location139 .byte 6 ## DW_FORM_data4140 .byte 3 ## DW_AT_name141 .byte 14 ## DW_FORM_strp142 .byte 58 ## DW_AT_decl_file143 .byte 11 ## DW_FORM_data1144 .byte 59 ## DW_AT_decl_line145 .byte 11 ## DW_FORM_data1146 .byte 73 ## DW_AT_type147 .byte 19 ## DW_FORM_ref4148 .byte 0 ## EOM(1)149 .byte 0 ## EOM(2)150 .byte 4 ## Abbreviation Code151 .byte 19 ## DW_TAG_structure_type152 .byte 1 ## DW_CHILDREN_yes153 .byte 54 ## DW_AT_calling_convention154 .byte 11 ## DW_FORM_data1155 .byte 3 ## DW_AT_name156 .byte 14 ## DW_FORM_strp157 .byte 11 ## DW_AT_byte_size158 .byte 5 ## DW_FORM_data2159 .byte 58 ## DW_AT_decl_file160 .byte 11 ## DW_FORM_data1161 .byte 59 ## DW_AT_decl_line162 .byte 11 ## DW_FORM_data1163 .byte 0 ## EOM(1)164 .byte 0 ## EOM(2)165 .byte 5 ## Abbreviation Code166 .byte 13 ## DW_TAG_member167 .byte 0 ## DW_CHILDREN_no168 .byte 3 ## DW_AT_name169 .byte 14 ## DW_FORM_strp170 .byte 73 ## DW_AT_type171 .byte 19 ## DW_FORM_ref4172 .byte 58 ## DW_AT_decl_file173 .byte 11 ## DW_FORM_data1174 .byte 59 ## DW_AT_decl_line175 .byte 11 ## DW_FORM_data1176 .byte 56 ## DW_AT_data_member_location177 .byte 10 ## DW_FORM_block1178 .byte 0 ## EOM(1)179 .byte 0 ## EOM(2)180 .byte 6 ## Abbreviation Code181 .byte 1 ## DW_TAG_array_type182 .byte 1 ## DW_CHILDREN_yes183 .byte 73 ## DW_AT_type184 .byte 19 ## DW_FORM_ref4185 .byte 0 ## EOM(1)186 .byte 0 ## EOM(2)187 .byte 7 ## Abbreviation Code188 .byte 33 ## DW_TAG_subrange_type189 .byte 0 ## DW_CHILDREN_no190 .byte 73 ## DW_AT_type191 .byte 19 ## DW_FORM_ref4192 .byte 55 ## DW_AT_count193 .byte 5 ## DW_FORM_data2194 .byte 0 ## EOM(1)195 .byte 0 ## EOM(2)196 .byte 8 ## Abbreviation Code197 .byte 36 ## DW_TAG_base_type198 .byte 0 ## DW_CHILDREN_no199 .byte 3 ## DW_AT_name200 .byte 14 ## DW_FORM_strp201 .byte 62 ## DW_AT_encoding202 .byte 11 ## DW_FORM_data1203 .byte 11 ## DW_AT_byte_size204 .byte 11 ## DW_FORM_data1205 .byte 0 ## EOM(1)206 .byte 0 ## EOM(2)207 .byte 9 ## Abbreviation Code208 .byte 36 ## DW_TAG_base_type209 .byte 0 ## DW_CHILDREN_no210 .byte 3 ## DW_AT_name211 .byte 14 ## DW_FORM_strp212 .byte 11 ## DW_AT_byte_size213 .byte 11 ## DW_FORM_data1214 .byte 62 ## DW_AT_encoding215 .byte 11 ## DW_FORM_data1216 .byte 0 ## EOM(1)217 .byte 0 ## EOM(2)218 .byte 10 ## Abbreviation Code219 .byte 15 ## DW_TAG_pointer_type220 .byte 0 ## DW_CHILDREN_no221 .byte 73 ## DW_AT_type222 .byte 19 ## DW_FORM_ref4223 .byte 0 ## EOM(1)224 .byte 0 ## EOM(2)225 .byte 0 ## EOM(3)226 .section __DWARF,__debug_info,regular,debug227Lsection_info:228Lcu_begin0:229.set Lset2, Ldebug_info_end0-Ldebug_info_start0 ## Length of Unit230 .long Lset2231Ldebug_info_start0:232 .short 2 ## DWARF version number233.set Lset3, Lsection_abbrev-Lsection_abbrev ## Offset Into Abbrev. Section234 .long Lset3235 .byte 8 ## Address Size (in bytes)236 .byte 1 ## Abbrev [1] 0xb:0xa2 DW_TAG_compile_unit237 .long 0 ## DW_AT_producer238 .short 4 ## DW_AT_language239 .long 100 ## DW_AT_name240.set Lset4, Lline_table_start0-Lsection_line ## DW_AT_stmt_list241 .long Lset4242 .long 106 ## DW_AT_comp_dir243 .byte 1 ## DW_AT_GNU_pubnames244 .byte 1 ## DW_AT_APPLE_optimized245 .quad Lfunc_begin0 ## DW_AT_low_pc246 .quad Lfunc_end0 ## DW_AT_high_pc247 .byte 2 ## Abbrev [2] 0x30:0x33 DW_TAG_subprogram248 .quad Lfunc_begin0 ## DW_AT_low_pc249 .quad Lfunc_end0 ## DW_AT_high_pc250 .byte 1 ## DW_AT_frame_base251 .byte 86252 .long 123 ## DW_AT_MIPS_linkage_name253 .long 119 ## DW_AT_name254 .byte 1 ## DW_AT_decl_file255 .byte 5 ## DW_AT_decl_line256 .long 99 ## DW_AT_type257 .byte 1 ## DW_AT_external258 .byte 1 ## DW_AT_APPLE_optimized259 .byte 3 ## Abbrev [3] 0x53:0xf DW_TAG_variable260.set Lset5, Ldebug_loc0-Lsection_debug_loc ## DW_AT_location261 .long Lset5262 .long 162 ## DW_AT_name263 .byte 1 ## DW_AT_decl_file264 .byte 6 ## DW_AT_decl_line265 .long 167 ## DW_AT_type266 .byte 0 ## End Of Children Mark267 .byte 4 ## Abbrev [4] 0x63:0x29 DW_TAG_structure_type268 .byte 5 ## DW_AT_calling_convention269 .long 131 ## DW_AT_name270 .short 16385 ## DW_AT_byte_size271 .byte 1 ## DW_AT_decl_file272 .byte 1 ## DW_AT_decl_line273 .byte 5 ## Abbrev [5] 0x6d:0xe DW_TAG_member274 .long 133 ## DW_AT_name275 .long 140 ## DW_AT_type276 .byte 1 ## DW_AT_decl_file277 .byte 2 ## DW_AT_decl_line278 .byte 2 ## DW_AT_data_member_location279 .byte 35280 .byte 0281 .byte 5 ## Abbrev [5] 0x7b:0x10 DW_TAG_member282 .long 160 ## DW_AT_name283 .long 153 ## DW_AT_type284 .byte 1 ## DW_AT_decl_file285 .byte 3 ## DW_AT_decl_line286 .byte 4 ## DW_AT_data_member_location287 .byte 35288 .ascii "\200\200\001"289 .byte 0 ## End Of Children Mark290 .byte 6 ## Abbrev [6] 0x8c:0xd DW_TAG_array_type291 .long 153 ## DW_AT_type292 .byte 7 ## Abbrev [7] 0x91:0x7 DW_TAG_subrange_type293 .long 160 ## DW_AT_type294 .short 16384 ## DW_AT_count295 .byte 0 ## End Of Children Mark296 .byte 8 ## Abbrev [8] 0x99:0x7 DW_TAG_base_type297 .long 135 ## DW_AT_name298 .byte 6 ## DW_AT_encoding299 .byte 1 ## DW_AT_byte_size300 .byte 9 ## Abbrev [9] 0xa0:0x7 DW_TAG_base_type301 .long 140 ## DW_AT_name302 .byte 8 ## DW_AT_byte_size303 .byte 7 ## DW_AT_encoding304 .byte 10 ## Abbrev [10] 0xa7:0x5 DW_TAG_pointer_type305 .long 99 ## DW_AT_type306 .byte 0 ## End Of Children Mark307Ldebug_info_end0:308 .section __DWARF,__debug_macinfo,regular,debug309Ldebug_macinfo:310 .byte 0 ## End Of Macro List Mark311 312.subsections_via_symbols313 .section __DWARF,__debug_line,regular,debug314Lsection_line:315Lline_table_start0:316