334 lines · plain
1# RUN: llvm-mc %s -filetype obj -triple x86_64-apple-darwin -o %t.o2# RUN: llvm-dwarfdump -debug-info -name g %t.o | FileCheck %s3 4# CHECK: DW_TAG_member5# CHECK: DW_AT_name ("g")6# CHECK: DW_AT_data_member_location (0x4000)7 8.ifdef GEN9#--- a.cpp10struct e {11 enum {} f[16384];12 short g;13};14e foo() {15 auto E = new e;16 return *E;17}18#--- gen19clang --target=x86_64-apple-macosx -O2 -gdwarf-4 -S a.cpp -o -20.endif21 22 .section __TEXT,__text,regular,pure_instructions23 .macosx_version_min 10, 1424 .globl __Z3foov ## -- Begin function _Z3foov25 .p2align 4, 0x9026__Z3foov: ## @_Z3foov27Lfunc_begin0:28 .file 1 "/private/tmp" "a.cpp"29 .loc 1 5 0 ## a.cpp:5:030 .cfi_startproc31## %bb.0: ## %entry32 pushq %rbp33 .cfi_def_cfa_offset 1634 .cfi_offset %rbp, -1635 movq %rsp, %rbp36 .cfi_def_cfa_register %rbp37 pushq %rbx38 pushq %rax39 .cfi_offset %rbx, -2440 movq %rdi, %rbx41Ltmp0:42 .loc 1 6 12 prologue_end ## a.cpp:6:1243 movl $16385, %edi ## imm = 0x400144 callq __Znwm45Ltmp1:46 ##DEBUG_VALUE: foo:E <- $rax47 .loc 1 7 10 ## a.cpp:7:1048 movl $16385, %edx ## imm = 0x400149 movq %rbx, %rdi50 movq %rax, %rsi51 callq _memcpy52Ltmp2:53 .loc 1 8 1 ## a.cpp:8:154 movq %rbx, %rax55 addq $8, %rsp56 popq %rbx57 popq %rbp58 retq59Ltmp3:60Lfunc_end0:61 .cfi_endproc62 ## -- End function63 .section __DWARF,__debug_str,regular,debug64Linfo_string:65 .asciz "clang version 9.0.0 (git@github.com:llvm/llvm-project.git 10de39548976ae224709acdc1c337e33cf12f3c0)" ## string offset=066 .asciz "a.cpp" ## string offset=10067 .asciz "/private/tmp" ## string offset=10668 .asciz "foo" ## string offset=11969 .asciz "_Z3foov" ## string offset=12370 .asciz "e" ## string offset=13171 .asciz "f" ## string offset=13372 .asciz "char" ## string offset=13573 .asciz "__ARRAY_SIZE_TYPE__" ## string offset=14074 .asciz "g" ## string offset=16075 .asciz "E" ## string offset=16276 .section __DWARF,__debug_loc,regular,debug77Lsection_debug_loc:78Ldebug_loc0:79.set Lset0, Ltmp1-Lfunc_begin080 .quad Lset081.set Lset1, Ltmp2-Lfunc_begin082 .quad Lset183 .short 1 ## Loc expr size84 .byte 80 ## DW_OP_reg085 .quad 086 .quad 087 .section __DWARF,__debug_abbrev,regular,debug88Lsection_abbrev:89 .byte 1 ## Abbreviation Code90 .byte 17 ## DW_TAG_compile_unit91 .byte 1 ## DW_CHILDREN_yes92 .byte 37 ## DW_AT_producer93 .byte 14 ## DW_FORM_strp94 .byte 19 ## DW_AT_language95 .byte 5 ## DW_FORM_data296 .byte 3 ## DW_AT_name97 .byte 14 ## DW_FORM_strp98 .byte 16 ## DW_AT_stmt_list99 .byte 23 ## DW_FORM_sec_offset100 .byte 27 ## DW_AT_comp_dir101 .byte 14 ## DW_FORM_strp102 .ascii "\264B" ## DW_AT_GNU_pubnames103 .byte 25 ## DW_FORM_flag_present104 .ascii "\341\177" ## DW_AT_APPLE_optimized105 .byte 25 ## DW_FORM_flag_present106 .byte 17 ## DW_AT_low_pc107 .byte 1 ## DW_FORM_addr108 .byte 18 ## DW_AT_high_pc109 .byte 6 ## DW_FORM_data4110 .byte 0 ## EOM(1)111 .byte 0 ## EOM(2)112 .byte 2 ## Abbreviation Code113 .byte 46 ## DW_TAG_subprogram114 .byte 1 ## DW_CHILDREN_yes115 .byte 17 ## DW_AT_low_pc116 .byte 1 ## DW_FORM_addr117 .byte 18 ## DW_AT_high_pc118 .byte 6 ## DW_FORM_data4119 .byte 64 ## DW_AT_frame_base120 .byte 24 ## DW_FORM_exprloc121 .byte 122 ## DW_AT_call_all_calls122 .byte 25 ## DW_FORM_flag_present123 .byte 110 ## DW_AT_linkage_name124 .byte 14 ## DW_FORM_strp125 .byte 3 ## DW_AT_name126 .byte 14 ## DW_FORM_strp127 .byte 58 ## DW_AT_decl_file128 .byte 11 ## DW_FORM_data1129 .byte 59 ## DW_AT_decl_line130 .byte 11 ## DW_FORM_data1131 .byte 73 ## DW_AT_type132 .byte 19 ## DW_FORM_ref4133 .byte 63 ## DW_AT_external134 .byte 25 ## DW_FORM_flag_present135 .ascii "\341\177" ## DW_AT_APPLE_optimized136 .byte 25 ## DW_FORM_flag_present137 .byte 0 ## EOM(1)138 .byte 0 ## EOM(2)139 .byte 3 ## Abbreviation Code140 .byte 52 ## DW_TAG_variable141 .byte 0 ## DW_CHILDREN_no142 .byte 2 ## DW_AT_location143 .byte 23 ## DW_FORM_sec_offset144 .byte 3 ## DW_AT_name145 .byte 14 ## DW_FORM_strp146 .byte 58 ## DW_AT_decl_file147 .byte 11 ## DW_FORM_data1148 .byte 59 ## DW_AT_decl_line149 .byte 11 ## DW_FORM_data1150 .byte 73 ## DW_AT_type151 .byte 19 ## DW_FORM_ref4152 .byte 0 ## EOM(1)153 .byte 0 ## EOM(2)154 .byte 4 ## Abbreviation Code155 .byte 19 ## DW_TAG_structure_type156 .byte 1 ## DW_CHILDREN_yes157 .byte 54 ## DW_AT_calling_convention158 .byte 11 ## DW_FORM_data1159 .byte 3 ## DW_AT_name160 .byte 14 ## DW_FORM_strp161 .byte 11 ## DW_AT_byte_size162 .byte 5 ## DW_FORM_data2163 .byte 58 ## DW_AT_decl_file164 .byte 11 ## DW_FORM_data1165 .byte 59 ## DW_AT_decl_line166 .byte 11 ## DW_FORM_data1167 .byte 0 ## EOM(1)168 .byte 0 ## EOM(2)169 .byte 5 ## Abbreviation Code170 .byte 13 ## DW_TAG_member171 .byte 0 ## DW_CHILDREN_no172 .byte 3 ## DW_AT_name173 .byte 14 ## DW_FORM_strp174 .byte 73 ## DW_AT_type175 .byte 19 ## DW_FORM_ref4176 .byte 58 ## DW_AT_decl_file177 .byte 11 ## DW_FORM_data1178 .byte 59 ## DW_AT_decl_line179 .byte 11 ## DW_FORM_data1180 .byte 56 ## DW_AT_data_member_location181 .byte 11 ## DW_FORM_data1182 .byte 0 ## EOM(1)183 .byte 0 ## EOM(2)184 .byte 6 ## Abbreviation Code185 .byte 13 ## DW_TAG_member186 .byte 0 ## DW_CHILDREN_no187 .byte 3 ## DW_AT_name188 .byte 14 ## DW_FORM_strp189 .byte 73 ## DW_AT_type190 .byte 19 ## DW_FORM_ref4191 .byte 58 ## DW_AT_decl_file192 .byte 11 ## DW_FORM_data1193 .byte 59 ## DW_AT_decl_line194 .byte 11 ## DW_FORM_data1195 .byte 56 ## DW_AT_data_member_location196 .byte 5 ## DW_FORM_data2197 .byte 0 ## EOM(1)198 .byte 0 ## EOM(2)199 .byte 7 ## Abbreviation Code200 .byte 1 ## DW_TAG_array_type201 .byte 1 ## DW_CHILDREN_yes202 .byte 73 ## DW_AT_type203 .byte 19 ## DW_FORM_ref4204 .byte 0 ## EOM(1)205 .byte 0 ## EOM(2)206 .byte 8 ## Abbreviation Code207 .byte 33 ## DW_TAG_subrange_type208 .byte 0 ## DW_CHILDREN_no209 .byte 73 ## DW_AT_type210 .byte 19 ## DW_FORM_ref4211 .byte 55 ## DW_AT_count212 .byte 5 ## DW_FORM_data2213 .byte 0 ## EOM(1)214 .byte 0 ## EOM(2)215 .byte 9 ## Abbreviation Code216 .byte 36 ## DW_TAG_base_type217 .byte 0 ## DW_CHILDREN_no218 .byte 3 ## DW_AT_name219 .byte 14 ## DW_FORM_strp220 .byte 62 ## DW_AT_encoding221 .byte 11 ## DW_FORM_data1222 .byte 11 ## DW_AT_byte_size223 .byte 11 ## DW_FORM_data1224 .byte 0 ## EOM(1)225 .byte 0 ## EOM(2)226 .byte 10 ## Abbreviation Code227 .byte 36 ## DW_TAG_base_type228 .byte 0 ## DW_CHILDREN_no229 .byte 3 ## DW_AT_name230 .byte 14 ## DW_FORM_strp231 .byte 11 ## DW_AT_byte_size232 .byte 11 ## DW_FORM_data1233 .byte 62 ## DW_AT_encoding234 .byte 11 ## DW_FORM_data1235 .byte 0 ## EOM(1)236 .byte 0 ## EOM(2)237 .byte 11 ## Abbreviation Code238 .byte 15 ## DW_TAG_pointer_type239 .byte 0 ## DW_CHILDREN_no240 .byte 73 ## DW_AT_type241 .byte 19 ## DW_FORM_ref4242 .byte 0 ## EOM(1)243 .byte 0 ## EOM(2)244 .byte 0 ## EOM(3)245 .section __DWARF,__debug_info,regular,debug246Lsection_info:247Lcu_begin0:248.set Lset2, Ldebug_info_end0-Ldebug_info_start0 ## Length of Unit249 .long Lset2250Ldebug_info_start0:251 .short 4 ## DWARF version number252.set Lset3, Lsection_abbrev-Lsection_abbrev ## Offset Into Abbrev. Section253 .long Lset3254 .byte 8 ## Address Size (in bytes)255 .byte 1 ## Abbrev [1] 0xb:0x91 DW_TAG_compile_unit256 .long 0 ## DW_AT_producer257 .short 4 ## DW_AT_language258 .long 100 ## DW_AT_name259.set Lset4, Lline_table_start0-Lsection_line ## DW_AT_stmt_list260 .long Lset4261 .long 106 ## DW_AT_comp_dir262 ## DW_AT_GNU_pubnames263 ## DW_AT_APPLE_optimized264 .quad Lfunc_begin0 ## DW_AT_low_pc265.set Lset5, Lfunc_end0-Lfunc_begin0 ## DW_AT_high_pc266 .long Lset5267 .byte 2 ## Abbrev [2] 0x2a:0x2d DW_TAG_subprogram268 .quad Lfunc_begin0 ## DW_AT_low_pc269.set Lset6, Lfunc_end0-Lfunc_begin0 ## DW_AT_high_pc270 .long Lset6271 .byte 1 ## DW_AT_frame_base272 .byte 86273 ## DW_AT_call_all_calls274 .long 123 ## DW_AT_linkage_name275 .long 119 ## DW_AT_name276 .byte 1 ## DW_AT_decl_file277 .byte 5 ## DW_AT_decl_line278 .long 87 ## DW_AT_type279 ## DW_AT_external280 ## DW_AT_APPLE_optimized281 .byte 3 ## Abbrev [3] 0x47:0xf DW_TAG_variable282.set Lset7, Ldebug_loc0-Lsection_debug_loc ## DW_AT_location283 .long Lset7284 .long 162 ## DW_AT_name285 .byte 1 ## DW_AT_decl_file286 .byte 6 ## DW_AT_decl_line287 .long 150 ## DW_AT_type288 .byte 0 ## End Of Children Mark289 .byte 4 ## Abbrev [4] 0x57:0x24 DW_TAG_structure_type290 .byte 5 ## DW_AT_calling_convention291 .long 131 ## DW_AT_name292 .short 16385 ## DW_AT_byte_size293 .byte 1 ## DW_AT_decl_file294 .byte 1 ## DW_AT_decl_line295 .byte 5 ## Abbrev [5] 0x61:0xc DW_TAG_member296 .long 133 ## DW_AT_name297 .long 123 ## DW_AT_type298 .byte 1 ## DW_AT_decl_file299 .byte 2 ## DW_AT_decl_line300 .byte 0 ## DW_AT_data_member_location301 .byte 6 ## Abbrev [6] 0x6d:0xd DW_TAG_member302 .long 160 ## DW_AT_name303 .long 136 ## DW_AT_type304 .byte 1 ## DW_AT_decl_file305 .byte 3 ## DW_AT_decl_line306 .short 16384 ## DW_AT_data_member_location307 .byte 0 ## End Of Children Mark308 .byte 7 ## Abbrev [7] 0x7b:0xd DW_TAG_array_type309 .long 136 ## DW_AT_type310 .byte 8 ## Abbrev [8] 0x80:0x7 DW_TAG_subrange_type311 .long 143 ## DW_AT_type312 .short 16384 ## DW_AT_count313 .byte 0 ## End Of Children Mark314 .byte 9 ## Abbrev [9] 0x88:0x7 DW_TAG_base_type315 .long 135 ## DW_AT_name316 .byte 6 ## DW_AT_encoding317 .byte 1 ## DW_AT_byte_size318 .byte 10 ## Abbrev [10] 0x8f:0x7 DW_TAG_base_type319 .long 140 ## DW_AT_name320 .byte 8 ## DW_AT_byte_size321 .byte 7 ## DW_AT_encoding322 .byte 11 ## Abbrev [11] 0x96:0x5 DW_TAG_pointer_type323 .long 87 ## DW_AT_type324 .byte 0 ## End Of Children Mark325Ldebug_info_end0:326 .section __DWARF,__debug_macinfo,regular,debug327Ldebug_macinfo:328 .byte 0 ## End Of Macro List Mark329 330.subsections_via_symbols331 .section __DWARF,__debug_line,regular,debug332Lsection_line:333Lline_table_start0:334