14c7dd9cfSGeorge Rimar# RUN: llvm-mc %s -filetype obj -triple x86_64-pc-linux -o %t.o 24c7dd9cfSGeorge Rimar# RUN: llvm-dwarfdump -v %t.o | FileCheck %s 34c7dd9cfSGeorge Rimar 44c7dd9cfSGeorge Rimar# CHECK: .debug_info 54c7dd9cfSGeorge Rimar# CHECK: DW_AT_name{{.*}}"stub" 64c7dd9cfSGeorge Rimar# CHECK: DW_AT_location [DW_FORM_sec_offset] (0x0000000c 720923209SGeorge Rimar# CHECK-NEXT: [0x0000000000000010, 0x0000000000000020): DW_OP_breg5 RDI+0 820923209SGeorge Rimar# CHECK-NEXT: [0x0000000000000530, 0x0000000000000540): DW_OP_breg6 RBP-8, DW_OP_deref 920923209SGeorge Rimar# CHECK-NEXT: [0x0000000000000700, 0x0000000000000710): DW_OP_breg5 RDI+0 104c7dd9cfSGeorge Rimar 114c7dd9cfSGeorge Rimar# CHECK: .debug_loclists contents: 12*def67719SIgor Kudrin# CHECK-NEXT: 0x00000000: locations list header: length = 0x0000002c, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x00000000 13411497c6SDavid Blaikie# CHECK-NEXT: 0x0000000c: 14eafe0cf5SPavel Labath# CHECK-NEXT: DW_LLE_offset_pair (0x0000000000000000, 0x0000000000000010): DW_OP_breg5 RDI+0 15f358c3d3SDavid Blaikie# CHECK-NEXT: DW_LLE_base_address (0x0000000000000500) 16f358c3d3SDavid Blaikie# CHECK-NEXT: DW_LLE_offset_pair (0x0000000000000030, 0x0000000000000040) 17f358c3d3SDavid Blaikie# CHECK-NEXT: => [0x0000000000000530, 0x0000000000000540): DW_OP_breg6 RBP-8, DW_OP_deref 18f358c3d3SDavid Blaikie# CHECK-NEXT: DW_LLE_start_length (0x0000000000000700, 0x0000000000000010) 19f358c3d3SDavid Blaikie# CHECK-NEXT: => [0x0000000000000700, 0x0000000000000710): DW_OP_breg5 RDI+0 20f358c3d3SDavid Blaikie# CHECK-NEXT: DW_LLE_end_of_list () 214c7dd9cfSGeorge Rimar 224c7dd9cfSGeorge Rimar.section .debug_str,"MS",@progbits,1 234c7dd9cfSGeorge Rimar .asciz "stub" 244c7dd9cfSGeorge Rimar 254c7dd9cfSGeorge Rimar.section .debug_str_offsets,"",@progbits 264c7dd9cfSGeorge Rimar .long 68 274c7dd9cfSGeorge Rimar .short 5 284c7dd9cfSGeorge Rimar .short 0 294c7dd9cfSGeorge Rimar.Lstr_offsets_base0: 304c7dd9cfSGeorge Rimar .zero 64 314c7dd9cfSGeorge Rimar 324c7dd9cfSGeorge Rimar.section .debug_loclists,"",@progbits 334c7dd9cfSGeorge Rimar .long .Ldebug_loclist_table_end0-.Ldebug_loclist_table_start0 344c7dd9cfSGeorge Rimar.Ldebug_loclist_table_start0: 354c7dd9cfSGeorge Rimar .short 5 # Version. 364c7dd9cfSGeorge Rimar .byte 8 # Address size. 374c7dd9cfSGeorge Rimar .byte 0 # Segmen selector size. 384c7dd9cfSGeorge Rimar .long 0 # Offset entry count. 394c7dd9cfSGeorge Rimar.Lloclists_table_base0: 404c7dd9cfSGeorge Rimar.Ldebug_loc0: 414c7dd9cfSGeorge Rimar .byte 4 # DW_LLE_offset_pair 424c7dd9cfSGeorge Rimar .uleb128 0x0 # starting offset 434c7dd9cfSGeorge Rimar .uleb128 0x10 # ending offset 4458513b77SWolfgang Pieb .byte 2 # Loc expr size 454c7dd9cfSGeorge Rimar .byte 117 # DW_OP_breg5 464c7dd9cfSGeorge Rimar .byte 0 # 0 474c7dd9cfSGeorge Rimar 484c7dd9cfSGeorge Rimar .byte 6 # DW_LLE_base_address 494c7dd9cfSGeorge Rimar .quad 0x500 # Some address 504c7dd9cfSGeorge Rimar 514c7dd9cfSGeorge Rimar .byte 4 # DW_LLE_offset_pair 524c7dd9cfSGeorge Rimar .uleb128 0x30 # starting offset 534c7dd9cfSGeorge Rimar .uleb128 0x40 # ending offset 5458513b77SWolfgang Pieb .byte 3 # Loc expr size 554c7dd9cfSGeorge Rimar .byte 118 # DW_OP_breg6 564c7dd9cfSGeorge Rimar .byte 120 # -8 574c7dd9cfSGeorge Rimar .byte 6 # DW_OP_deref 584c7dd9cfSGeorge Rimar 594c7dd9cfSGeorge Rimar .byte 8 # DW_LLE_start_length 604c7dd9cfSGeorge Rimar .quad 0x700 # Some address 614c7dd9cfSGeorge Rimar .uleb128 0x10 # length 6258513b77SWolfgang Pieb .byte 2 # Loc expr size 634c7dd9cfSGeorge Rimar .byte 117 # DW_OP_breg5 644c7dd9cfSGeorge Rimar .byte 0 # 0 654c7dd9cfSGeorge Rimar 664c7dd9cfSGeorge Rimar .byte 0 # DW_LLE_end_of_list 674c7dd9cfSGeorge Rimar 684c7dd9cfSGeorge Rimar.Ldebug_loclist_table_end0: 694c7dd9cfSGeorge Rimar 704c7dd9cfSGeorge Rimar.section .debug_abbrev,"",@progbits 714c7dd9cfSGeorge Rimar .byte 1 # Abbreviation Code 724c7dd9cfSGeorge Rimar .byte 17 # DW_TAG_compile_unit 734c7dd9cfSGeorge Rimar .byte 1 # DW_CHILDREN_yes 744c7dd9cfSGeorge Rimar .byte 37 # DW_AT_producer 754c7dd9cfSGeorge Rimar .byte 37 # DW_FORM_strx1 764c7dd9cfSGeorge Rimar .byte 19 # DW_AT_language 774c7dd9cfSGeorge Rimar .byte 5 # DW_FORM_data2 784c7dd9cfSGeorge Rimar .byte 3 # DW_AT_name 794c7dd9cfSGeorge Rimar .byte 37 # DW_FORM_strx1 804c7dd9cfSGeorge Rimar .byte 114 # DW_AT_str_offsets_base 814c7dd9cfSGeorge Rimar .byte 23 # DW_FORM_sec_offset 824c7dd9cfSGeorge Rimar .byte 16 # DW_AT_stmt_list 834c7dd9cfSGeorge Rimar .byte 23 # DW_FORM_sec_offset 844c7dd9cfSGeorge Rimar .byte 27 # DW_AT_comp_dir 854c7dd9cfSGeorge Rimar .byte 37 # DW_FORM_strx1 864c7dd9cfSGeorge Rimar .byte 17 # DW_AT_low_pc 874c7dd9cfSGeorge Rimar .byte 1 # DW_FORM_addr 884c7dd9cfSGeorge Rimar .byte 18 # DW_AT_high_pc 894c7dd9cfSGeorge Rimar .byte 6 # DW_FORM_data4 904c7dd9cfSGeorge Rimar .ascii "\214\001" # DW_AT_loclists_base 914c7dd9cfSGeorge Rimar .byte 23 # DW_FORM_sec_offset 924c7dd9cfSGeorge Rimar .byte 0 # EOM(1) 934c7dd9cfSGeorge Rimar .byte 0 # EOM(2) 944c7dd9cfSGeorge Rimar .byte 2 # Abbreviation Code 954c7dd9cfSGeorge Rimar .byte 46 # DW_TAG_subprogram 964c7dd9cfSGeorge Rimar .byte 1 # DW_CHILDREN_yes 974c7dd9cfSGeorge Rimar .byte 17 # DW_AT_low_pc 984c7dd9cfSGeorge Rimar .byte 1 # DW_FORM_addr 994c7dd9cfSGeorge Rimar .byte 18 # DW_AT_high_pc 1004c7dd9cfSGeorge Rimar .byte 6 # DW_FORM_data4 1014c7dd9cfSGeorge Rimar .byte 64 # DW_AT_frame_base 1024c7dd9cfSGeorge Rimar .byte 24 # DW_FORM_exprloc 1034c7dd9cfSGeorge Rimar .byte 110 # DW_AT_linkage_name 1044c7dd9cfSGeorge Rimar .byte 37 # DW_FORM_strx1 1054c7dd9cfSGeorge Rimar .byte 3 # DW_AT_name 1064c7dd9cfSGeorge Rimar .byte 37 # DW_FORM_strx1 1074c7dd9cfSGeorge Rimar .byte 58 # DW_AT_decl_file 1084c7dd9cfSGeorge Rimar .byte 11 # DW_FORM_data1 1094c7dd9cfSGeorge Rimar .byte 59 # DW_AT_decl_line 1104c7dd9cfSGeorge Rimar .byte 11 # DW_FORM_data1 1114c7dd9cfSGeorge Rimar .byte 63 # DW_AT_external 1124c7dd9cfSGeorge Rimar .byte 25 # DW_FORM_flag_present 1134c7dd9cfSGeorge Rimar .byte 0 # EOM(1) 1144c7dd9cfSGeorge Rimar .byte 0 # EOM(2) 1154c7dd9cfSGeorge Rimar .byte 3 # Abbreviation Code 1164c7dd9cfSGeorge Rimar .byte 52 # DW_TAG_variable 1174c7dd9cfSGeorge Rimar .byte 0 # DW_CHILDREN_no 1184c7dd9cfSGeorge Rimar .byte 2 # DW_AT_location 1194c7dd9cfSGeorge Rimar .byte 23 # DW_FORM_sec_offset 1204c7dd9cfSGeorge Rimar .byte 3 # DW_AT_name 1214c7dd9cfSGeorge Rimar .byte 37 # DW_FORM_strx1 1224c7dd9cfSGeorge Rimar .byte 58 # DW_AT_decl_file 1234c7dd9cfSGeorge Rimar .byte 11 # DW_FORM_data1 1244c7dd9cfSGeorge Rimar .byte 59 # DW_AT_decl_line 1254c7dd9cfSGeorge Rimar .byte 11 # DW_FORM_data1 1264c7dd9cfSGeorge Rimar .byte 73 # DW_AT_type 1274c7dd9cfSGeorge Rimar .byte 19 # DW_FORM_ref4 1284c7dd9cfSGeorge Rimar .byte 0 # EOM(1) 1294c7dd9cfSGeorge Rimar .byte 0 # EOM(2) 1304c7dd9cfSGeorge Rimar .byte 0 # EOM(3) 1314c7dd9cfSGeorge Rimar 1324c7dd9cfSGeorge Rimar.section .debug_info,"",@progbits 1334c7dd9cfSGeorge Rimar.Lcu_begin0: 1344c7dd9cfSGeorge Rimar .long 70 # Length of Unit 1354c7dd9cfSGeorge Rimar .short 5 # DWARF version number 1364c7dd9cfSGeorge Rimar .byte 1 # DWARF Unit Type 1374c7dd9cfSGeorge Rimar .byte 8 # Address Size (in bytes) 1384c7dd9cfSGeorge Rimar .long .debug_abbrev # Offset Into Abbrev. Section 1394c7dd9cfSGeorge Rimar .byte 1 # Abbrev [1] 0xc:0xef DW_TAG_compile_unit 1404c7dd9cfSGeorge Rimar .byte 0 # DW_AT_producer 1414c7dd9cfSGeorge Rimar .short 4 # DW_AT_language 1424c7dd9cfSGeorge Rimar .byte 1 # DW_AT_name 1434c7dd9cfSGeorge Rimar .long .Lstr_offsets_base0 # DW_AT_str_offsets_base 1444c7dd9cfSGeorge Rimar .long .Lline_table_start0 # DW_AT_stmt_list 1454c7dd9cfSGeorge Rimar .byte 2 # DW_AT_comp_dir 1464c7dd9cfSGeorge Rimar .quad 0x10 # DW_AT_low_pc 1474c7dd9cfSGeorge Rimar .long 0 # DW_AT_high_pc 1484c7dd9cfSGeorge Rimar .long .Lloclists_table_base0 # DW_AT_loclists_base 1494c7dd9cfSGeorge Rimar .byte 2 # Abbrev [2] 0x2a:0x20 DW_TAG_subprogram 1504c7dd9cfSGeorge Rimar .quad 0 # DW_AT_low_pc 1514c7dd9cfSGeorge Rimar .long 0 # DW_AT_high_pc 1524c7dd9cfSGeorge Rimar .byte 1 # DW_AT_frame_base 1534c7dd9cfSGeorge Rimar .byte 86 1544c7dd9cfSGeorge Rimar .byte 11 # DW_AT_linkage_name 1554c7dd9cfSGeorge Rimar .byte 12 # DW_AT_name 1564c7dd9cfSGeorge Rimar .byte 1 # DW_AT_decl_file 1574c7dd9cfSGeorge Rimar .byte 6 # DW_AT_decl_line 1584c7dd9cfSGeorge Rimar # DW_AT_external 1594c7dd9cfSGeorge Rimar .byte 3 # Abbrev [3] 0x40:0xb DW_TAG_variable 1604c7dd9cfSGeorge Rimar .long .Ldebug_loc0 # DW_AT_location 1614c7dd9cfSGeorge Rimar .byte 7 # DW_AT_name 1624c7dd9cfSGeorge Rimar .byte 1 # DW_AT_decl_file 1634c7dd9cfSGeorge Rimar .byte 6 # DW_AT_decl_line 1644c7dd9cfSGeorge Rimar .long 76 # DW_AT_type 1654c7dd9cfSGeorge Rimar .byte 0 # End Of Children Mark 1664c7dd9cfSGeorge Rimar .byte 0 # End Of Children Mark 1674c7dd9cfSGeorge Rimar .byte 0 # End Of Children Mark 1684c7dd9cfSGeorge Rimar 1694c7dd9cfSGeorge Rimar.section .debug_line,"",@progbits 1704c7dd9cfSGeorge Rimar.Lline_table_start0: 1714c7dd9cfSGeorge Rimar 172