1# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj | \ 2# RUN: llvm-dwarfdump -find=foobar - | FileCheck %s 3 4# CHECK: DW_TAG_variable 5# CHECK-NEXT: DW_AT_name ("foobar") 6 7 .text 8 .file "<stdin>" 9 .file 1 "/tmp/cu1.c" 10 .type foobar,@object # @foobar 11 .comm foobar,8,8 12 .section .debug_str,"MS",@progbits,1 13.Lskel_string0: 14 .asciz "foo.dwo" # string offset=0 15.Lskel_string1: 16 .asciz "/tmp" # string offset=8 17.Lskel_string2: 18 .asciz "foobar" # string offset=13 19 .section .debug_loc.dwo,"e",@progbits 20 .section .debug_abbrev,"",@progbits 21 .byte 1 # Abbreviation Code 22 .byte 17 # DW_TAG_compile_unit 23 .byte 0 # DW_CHILDREN_no 24 .byte 16 # DW_AT_stmt_list 25 .byte 23 # DW_FORM_sec_offset 26 .ascii "\260B" # DW_AT_GNU_dwo_name 27 .byte 14 # DW_FORM_strp 28 .byte 27 # DW_AT_comp_dir 29 .byte 14 # DW_FORM_strp 30 .ascii "\261B" # DW_AT_GNU_dwo_id 31 .byte 7 # DW_FORM_data8 32 .ascii "\263B" # DW_AT_GNU_addr_base 33 .byte 23 # DW_FORM_sec_offset 34 .byte 0 # EOM(1) 35 .byte 0 # EOM(2) 36 .byte 0 # EOM(3) 37 .section .debug_info,"",@progbits 38.Lcu_begin0: 39 .long 32 # Length of Unit 40 .short 4 # DWARF version number 41 .long .debug_abbrev # Offset Into Abbrev. Section 42 .byte 8 # Address Size (in bytes) 43 .byte 1 # Abbrev [1] 0xb:0x19 DW_TAG_compile_unit 44 .long 0 # DW_AT_stmt_list 45 .long .Lskel_string0 # DW_AT_GNU_dwo_name 46 .long .Lskel_string1 # DW_AT_comp_dir 47 .quad -1328675031687321003 # DW_AT_GNU_dwo_id 48 .long .debug_addr # DW_AT_GNU_addr_base 49 .section .debug_ranges,"",@progbits 50 .section .debug_macinfo,"",@progbits 51 .byte 0 # End Of Macro List Mark 52 .section .debug_str.dwo,"MSe",@progbits,1 53.Linfo_string0: 54 .asciz "foo.dwo" # string offset=0 55.Linfo_string1: 56 .asciz "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)" # string offset=8 57.Linfo_string2: 58 .asciz "/tmp/cu1.c" # string offset=63 59.Linfo_string3: 60 .asciz "foobar" # string offset=74 61 .section .debug_str_offsets.dwo,"e",@progbits 62 .long 0 63 .long 8 64 .long 63 65 .long 74 66 .section .debug_info.dwo,"e",@progbits 67 .long 34 # Length of Unit 68 .short 4 # DWARF version number 69 .long 0 # Offset Into Abbrev. Section 70 .byte 8 # Address Size (in bytes) 71 .byte 1 # Abbrev [1] 0xb:0x1b DW_TAG_compile_unit 72 .byte 0 # DW_AT_GNU_dwo_name 73 .byte 1 # DW_AT_producer 74 .short 12 # DW_AT_language 75 .byte 2 # DW_AT_name 76 .quad -1328675031687321003 # DW_AT_GNU_dwo_id 77 .byte 2 # Abbrev [2] 0x19:0xb DW_TAG_variable 78 .byte 3 # DW_AT_name 79 .long 36 # DW_AT_type 80 # DW_AT_external 81 .byte 1 # DW_AT_decl_file 82 .byte 1 # DW_AT_decl_line 83 .byte 2 # DW_AT_location 84 .byte 251 85 .byte 0 86 .byte 3 # Abbrev [3] 0x24:0x1 DW_TAG_pointer_type 87 .byte 0 # End Of Children Mark 88 .section .debug_abbrev.dwo,"e",@progbits 89 .byte 1 # Abbreviation Code 90 .byte 17 # DW_TAG_compile_unit 91 .byte 1 # DW_CHILDREN_yes 92 .ascii "\260B" # DW_AT_GNU_dwo_name 93 .ascii "\202>" # DW_FORM_GNU_str_index 94 .byte 37 # DW_AT_producer 95 .ascii "\202>" # DW_FORM_GNU_str_index 96 .byte 19 # DW_AT_language 97 .byte 5 # DW_FORM_data2 98 .byte 3 # DW_AT_name 99 .ascii "\202>" # DW_FORM_GNU_str_index 100 .ascii "\261B" # DW_AT_GNU_dwo_id 101 .byte 7 # DW_FORM_data8 102 .byte 0 # EOM(1) 103 .byte 0 # EOM(2) 104 .byte 2 # Abbreviation Code 105 .byte 52 # DW_TAG_variable 106 .byte 0 # DW_CHILDREN_no 107 .byte 3 # DW_AT_name 108 .ascii "\202>" # DW_FORM_GNU_str_index 109 .byte 73 # DW_AT_type 110 .byte 19 # DW_FORM_ref4 111 .byte 63 # DW_AT_external 112 .byte 25 # DW_FORM_flag_present 113 .byte 58 # DW_AT_decl_file 114 .byte 11 # DW_FORM_data1 115 .byte 59 # DW_AT_decl_line 116 .byte 11 # DW_FORM_data1 117 .byte 2 # DW_AT_location 118 .byte 24 # DW_FORM_exprloc 119 .byte 0 # EOM(1) 120 .byte 0 # EOM(2) 121 .byte 3 # Abbreviation Code 122 .byte 15 # DW_TAG_pointer_type 123 .byte 0 # DW_CHILDREN_no 124 .byte 0 # EOM(1) 125 .byte 0 # EOM(2) 126 .byte 0 # EOM(3) 127 .section .debug_addr,"",@progbits 128 .quad foobar 129 .section .debug_names,"",@progbits 130 .long .Lnames_end0-.Lnames_start0 # Header: unit length 131.Lnames_start0: 132 .short 5 # Header: version 133 .short 0 # Header: padding 134 .long 1 # Header: compilation unit count 135 .long 0 # Header: local type unit count 136 .long 0 # Header: foreign type unit count 137 .long 1 # Header: bucket count 138 .long 1 # Header: name count 139 .long .Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size 140 .long 8 # Header: augmentation string size 141 .ascii "LLVM0700" # Header: augmentation string 142 .long .Lcu_begin0 # Compilation unit 0 143 .long 1 # Bucket 0 144 .long -35364674 # Hash in Bucket 0 145 .long .Lskel_string2 # String in Bucket 0: foobar 146 .long .Lnames0-.Lnames_entries0 # Offset in Bucket 0 147.Lnames_abbrev_start0: 148 .byte 52 # Abbrev code 149 .byte 52 # DW_TAG_variable 150 .byte 3 # DW_IDX_die_offset 151 .byte 19 # DW_FORM_ref4 152 .byte 0 # End of abbrev 153 .byte 0 # End of abbrev 154 .byte 0 # End of abbrev list 155.Lnames_abbrev_end0: 156.Lnames_entries0: 157.Lnames0: 158 .byte 52 # Abbreviation code 159 .long 25 # DW_IDX_die_offset 160 .long 0 # End of list: foobar 161 .p2align 2 162.Lnames_end0: 163