1# RUN: llvm-mc -triple x86_64-pc-linux -filetype=obj %s -o %t 2# RUN: llvm-dwarfdump -v %t | FileCheck %s 3 4# CHECK: .debug_info contents: 5# CHECK: DW_TAG_compile_unit 6# CHECK: DW_AT_ranges [DW_FORM_sec_offset] (0x00000000 7# CHECK-NEXT: [0x0000000000000000, 0x0000000000000001) ".text.foo1" 8# CHECK-NEXT: [0x0000000000000000, 0x0000000000000002) ".text.foo2" [4] 9# CHECK-NEXT: [0x0000000000000000, 0x0000000000000003) ".text.foo2" [5]) 10 11# CHECK: .debug_ranges contents: 12# CHECK: 00000000 0000000000000000 0000000000000001 13# CHECK: 00000000 0000000000000000 0000000000000002 14# CHECK: 00000000 0000000000000000 0000000000000003 15# CHECK: 00000000 <End of list> 16 17# RUN: llvm-dwarfdump %t | FileCheck %s --check-prefix=BRIEF 18# BRIEF: DW_TAG_compile_unit 19# BRIEF: DW_AT_ranges (0x00000000 20# BRIEF-NEXT: [0x0000000000000000, 0x0000000000000001) 21# BRIEF-NEXT: [0x0000000000000000, 0x0000000000000002) 22# BRIEF-NEXT: [0x0000000000000000, 0x0000000000000003)) 23 24## Asm code for testcase is a reduced and modified output from next 25## invocation and source: 26# clang test.cpp -S -o test.s -gmlt -ffunction-sections 27# test.cpp: 28# void foo1() { } 29# void foo2() { } 30 31.section .text.foo1,"ax",@progbits 32.Lfunc_begin0: 33 nop 34.Lfunc_end0: 35 36.section .text.foo2,"ax",@progbits, unique, 1 37.Lfunc_begin1: 38 nop 39 nop 40.Lfunc_end1: 41 42.section .text.foo2,"ax",@progbits, unique, 2 43.Lfunc_begin2: 44 nop 45 nop 46 nop 47.Lfunc_end2: 48 49.section .debug_abbrev,"",@progbits 50.byte 1 # Abbreviation Code 51.byte 17 # DW_TAG_compile_unit 52.byte 0 # DW_CHILDREN_no 53.byte 37 # DW_AT_producer 54.byte 14 # DW_FORM_strp 55.byte 19 # DW_AT_language 56.byte 5 # DW_FORM_data2 57.byte 3 # DW_AT_name 58.byte 14 # DW_FORM_strp 59.byte 16 # DW_AT_stmt_list 60.byte 23 # DW_FORM_sec_offset 61.byte 27 # DW_AT_comp_dir 62.byte 14 # DW_FORM_strp 63.byte 17 # DW_AT_low_pc 64.byte 1 # DW_FORM_addr 65.byte 85 # DW_AT_ranges 66.byte 23 # DW_FORM_sec_offset 67.byte 0 # EOM(1) 68.byte 0 # EOM(2) 69.byte 0 # EOM(3) 70 71.section .debug_info,"",@progbits 72.Lcu_begin0: 73.long 38 # Length of Unit 74.short 4 # DWARF version number 75.long .debug_abbrev # Offset Into Abbrev. Section 76.byte 8 # Address Size (in bytes) 77.byte 1 # Abbrev [1] 0xb:0x1f DW_TAG_compile_unit 78.long 0 # DW_AT_producer 79.short 4 # DW_AT_language 80.long 0 # DW_AT_name 81.long 0 # DW_AT_stmt_list 82.long 0 # DW_AT_comp_dir 83.quad 0 # DW_AT_low_pc 84.long .Ldebug_ranges0 # DW_AT_ranges 85 86.section .debug_ranges,"",@progbits 87.Ldebug_ranges0: 88.quad .Lfunc_begin0 89.quad .Lfunc_end0 90.quad .Lfunc_begin1 91.quad .Lfunc_end1 92.quad .Lfunc_begin2 93.quad .Lfunc_end2 94.quad 0 95.quad 0 96