1# RUN: llvm-mc -triple x86_64-unknown-linux %s -filetype=obj -o - \ 2# RUN: | llvm-dwarfdump -verify - | FileCheck %s 3 4# Assembly generated from the following compiled with -g -ffunction-sections 5# 6# void f1() { } 7# void f2() { } 8# 9# CHECK: No errors. 10 11 .text 12 .file "test.c" 13 .section .text.f1,"ax",@progbits 14 .globl f1 # -- Begin function f1 15 .p2align 4, 0x90 16 .type f1,@function 17f1: # @f1 18.Lfunc_begin0: 19 .file 1 "/usr/local/google/home/blaikie/dev/scratch" "test.c" 20 .loc 1 1 0 # test.c:1:0 21 .cfi_startproc 22# %bb.0: # %entry 23 pushq %rbp 24 .cfi_def_cfa_offset 16 25 .cfi_offset %rbp, -16 26 movq %rsp, %rbp 27 .cfi_def_cfa_register %rbp 28.Ltmp0: 29 .loc 1 1 13 prologue_end # test.c:1:13 30 popq %rbp 31 .cfi_def_cfa %rsp, 8 32 retq 33.Ltmp1: 34.Lfunc_end0: 35 .size f1, .Lfunc_end0-f1 36 .cfi_endproc 37 # -- End function 38 .section .text.f2,"ax",@progbits 39 .globl f2 # -- Begin function f2 40 .p2align 4, 0x90 41 .type f2,@function 42f2: # @f2 43.Lfunc_begin1: 44 .loc 1 2 0 # test.c:2:0 45 .cfi_startproc 46# %bb.0: # %entry 47 pushq %rbp 48 .cfi_def_cfa_offset 16 49 .cfi_offset %rbp, -16 50 movq %rsp, %rbp 51 .cfi_def_cfa_register %rbp 52.Ltmp2: 53 .loc 1 2 13 prologue_end # test.c:2:13 54 popq %rbp 55 .cfi_def_cfa %rsp, 8 56 retq 57.Ltmp3: 58.Lfunc_end1: 59 .size f2, .Lfunc_end1-f2 60 .cfi_endproc 61 # -- End function 62 .section .debug_abbrev,"",@progbits 63 .byte 1 # Abbreviation Code 64 .byte 17 # DW_TAG_compile_unit 65 .byte 1 # DW_CHILDREN_yes 66 .byte 37 # DW_AT_producer 67 .byte 14 # DW_FORM_strp 68 .byte 19 # DW_AT_language 69 .byte 5 # DW_FORM_data2 70 .byte 3 # DW_AT_name 71 .byte 14 # DW_FORM_strp 72 .byte 16 # DW_AT_stmt_list 73 .byte 23 # DW_FORM_sec_offset 74 .byte 27 # DW_AT_comp_dir 75 .byte 14 # DW_FORM_strp 76 .byte 17 # DW_AT_low_pc 77 .byte 1 # DW_FORM_addr 78 .byte 85 # DW_AT_ranges 79 .byte 23 # DW_FORM_sec_offset 80 .byte 0 # EOM(1) 81 .byte 0 # EOM(2) 82 .byte 2 # Abbreviation Code 83 .byte 46 # DW_TAG_subprogram 84 .byte 0 # DW_CHILDREN_no 85 .byte 17 # DW_AT_low_pc 86 .byte 1 # DW_FORM_addr 87 .byte 18 # DW_AT_high_pc 88 .byte 6 # DW_FORM_data4 89 .byte 64 # DW_AT_frame_base 90 .byte 24 # DW_FORM_exprloc 91 .byte 3 # DW_AT_name 92 .byte 14 # DW_FORM_strp 93 .byte 58 # DW_AT_decl_file 94 .byte 11 # DW_FORM_data1 95 .byte 59 # DW_AT_decl_line 96 .byte 11 # DW_FORM_data1 97 .byte 63 # DW_AT_external 98 .byte 25 # DW_FORM_flag_present 99 .byte 0 # EOM(1) 100 .byte 0 # EOM(2) 101 .byte 0 # EOM(3) 102 .section .debug_info,"",@progbits 103.Lcu_begin0: 104 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit 105.Ldebug_info_start0: 106 .short 4 # DWARF version number 107 .long .debug_abbrev # Offset Into Abbrev. Section 108 .byte 8 # Address Size (in bytes) 109 .byte 1 # Abbrev [1] 0xb:0x4a DW_TAG_compile_unit 110 .long .Linfo_string0 # DW_AT_producer 111 .short 12 # DW_AT_language 112 .long .Linfo_string1 # DW_AT_name 113 .long .Lline_table_start0 # DW_AT_stmt_list 114 .long .Linfo_string2 # DW_AT_comp_dir 115 .quad 0 # DW_AT_low_pc 116 .long .Ldebug_ranges0 # DW_AT_ranges 117 .byte 2 # Abbrev [2] 0x2a:0x15 DW_TAG_subprogram 118 .quad .Lfunc_begin0 # DW_AT_low_pc 119 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc 120 .byte 1 # DW_AT_frame_base 121 .byte 86 122 .long .Linfo_string3 # DW_AT_name 123 .byte 1 # DW_AT_decl_file 124 .byte 1 # DW_AT_decl_line 125 # DW_AT_external 126 .byte 2 # Abbrev [2] 0x3f:0x15 DW_TAG_subprogram 127 .quad .Lfunc_begin1 # DW_AT_low_pc 128 .long .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc 129 .byte 1 # DW_AT_frame_base 130 .byte 86 131 .long .Linfo_string4 # DW_AT_name 132 .byte 1 # DW_AT_decl_file 133 .byte 2 # DW_AT_decl_line 134 # DW_AT_external 135 .byte 0 # End Of Children Mark 136.Ldebug_info_end0: 137 .section .debug_ranges,"",@progbits 138.Ldebug_ranges0: 139 .quad .Lfunc_begin0 140 .quad .Lfunc_end0 141 .quad .Lfunc_begin1 142 .quad .Lfunc_end1 143 .quad 0 144 .quad 0 145 .section .debug_str,"MS",@progbits,1 146.Linfo_string0: 147 .asciz "clang version 14.0.0 (git@github.com:llvm/llvm-project.git 0bed7905ad3c677cb2b95c3a7a6f929d4d679510)" # string offset=0 148.Linfo_string1: 149 .asciz "test.c" # string offset=101 150.Linfo_string2: 151 .asciz "/usr/local/google/home/blaikie/dev/scratch" # string offset=108 152.Linfo_string3: 153 .asciz "f1" # string offset=151 154.Linfo_string4: 155 .asciz "f2" # string offset=154 156 .ident "clang version 14.0.0 (git@github.com:llvm/llvm-project.git 0bed7905ad3c677cb2b95c3a7a6f929d4d679510)" 157 .section ".note.GNU-stack","",@progbits 158 .addrsig 159 .section .debug_line,"",@progbits 160.Lline_table_start0: 161