1 # RUN: llvm-mc -triple=i686-pc-win32 -filetype=obj < %s | llvm-readobj -codeview | FileCheck %s 2 .text 3 .def @feat.00; 4 .scl 3; 5 .type 0; 6 .endef 7 .globl @feat.00 8 @feat.00 = 1 9 .def "?baz@@YAXXZ"; 10 .scl 2; 11 .type 32; 12 .endef 13 .globl "?baz@@YAXXZ" 14 .p2align 4, 0x90 15 "?baz@@YAXXZ": # @"\01?baz@@YAXXZ" 16 Lfunc_begin0: 17 .cv_file 1 "D:\\src\\llvm\\build\\t.cpp" 18 .cv_func_id 0 19 .cv_inline_site_id 1 within 0 inlined_at 1 15 3 20 .cv_inline_site_id 2 within 1 inlined_at 1 10 3 21 .cv_loc 0 1 13 0 is_stmt 0 # t.cpp:13:0 22 # %bb.0: # %entry 23 pushl %eax 24 .cv_loc 0 1 14 5 # t.cpp:14:5 25 addl $6, "?x@@3HC" 26 .cv_loc 1 1 9 5 # t.cpp:9:5 27 addl $4, "?x@@3HC" 28 .cv_loc 2 1 3 7 # t.cpp:3:7 29 movl $1, (%esp) 30 leal (%esp), %eax 31 .cv_loc 2 1 4 5 # t.cpp:4:5 32 addl %eax, "?x@@3HC" 33 .cv_loc 2 1 5 5 # t.cpp:5:5 34 addl $2, "?x@@3HC" 35 .cv_loc 2 1 6 5 # t.cpp:6:5 36 addl $3, "?x@@3HC" 37 .cv_loc 1 1 11 5 # t.cpp:11:5 38 addl $5, "?x@@3HC" 39 .cv_loc 0 1 16 5 # t.cpp:16:5 40 addl $7, "?x@@3HC" 41 .cv_loc 0 1 17 1 # t.cpp:17:1 42 popl %eax 43 retl 44 Lfunc_end0: 45 46 .section .debug$T,"dr" 47 .long 4 48 .short 6 49 .short 4609 50 .long 0 51 .short 14 52 .short 4104 53 .asciz "\003\000\000\000\000\000\000\000\000\020\000" 54 .short 14 55 .short 5633 56 .asciz "\000\000\000\000\001\020\000" 57 .ascii "baz" 58 .byte 0 59 .short 14 60 .short 5633 61 .asciz "\000\000\000\000\001\020\000" 62 .ascii "bar" 63 .byte 0 64 .short 14 65 .short 5633 66 .asciz "\000\000\000\000\001\020\000" 67 .ascii "foo" 68 .byte 0 69 .section .debug$S,"dr" 70 .long 4 71 .long 241 # Symbol subsection for baz 72 .long Ltmp1-Ltmp0 73 Ltmp0: 74 .short Ltmp3-Ltmp2 75 Ltmp2: 76 .short 4423 77 .zero 12 78 .long Lfunc_end0-"?baz@@YAXXZ" 79 .zero 12 80 .secrel32 "?baz@@YAXXZ" 81 .secidx "?baz@@YAXXZ" 82 .byte 0 83 .ascii "baz" 84 .byte 0 85 Ltmp3: 86 .short Ltmp5-Ltmp4 87 Ltmp4: 88 .short 4429 89 .asciz "\000\000\000\000\000\000\000\000\003\020\000" 90 .cv_inline_linetable 1 1 9 Lfunc_begin0 Lfunc_end0 91 # CHECK: InlineSiteSym { 92 # CHECK: PtrParent: 0x0 93 # CHECK: PtrEnd: 0x0 94 # CHECK: Inlinee: bar (0x1003) 95 # CHECK: BinaryAnnotations [ 96 # CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x8, LineOffset: 0} 97 # CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x7, LineOffset: 1} 98 # CHECK-NEXT: ChangeLineOffset: 1 99 # CHECK-NEXT: ChangeCodeOffset: 0x1E 100 # CHECK-NEXT: ChangeCodeLength: 0x7 101 # CHECK-NEXT: ] 102 # CHECK: } 103 Ltmp5: 104 .short Ltmp7-Ltmp6 105 Ltmp6: 106 .short 4429 107 .asciz "\000\000\000\000\000\000\000\000\004\020\000" 108 .cv_inline_linetable 2 1 3 Lfunc_begin0 Lfunc_end0 109 # CHECK: InlineSiteSym { 110 # CHECK: PtrParent: 0x0 111 # CHECK: PtrEnd: 0x0 112 # CHECK: Inlinee: foo (0x1004) 113 # CHECK: BinaryAnnotations [ 114 # CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0xF, LineOffset: 0} 115 # CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0xA, LineOffset: 1} 116 # CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x6, LineOffset: 1} 117 # CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x7, LineOffset: 1} 118 # CHECK-NEXT: ChangeCodeLength: 0x7 119 # CHECK-NEXT: ] 120 # CHECK: } 121 Ltmp7: 122 .short 2 123 .short 4430 124 # CHECK: InlineSiteEnd { 125 # CHECK: } 126 .short 2 127 .short 4430 128 # CHECK: InlineSiteEnd { 129 # CHECK: } 130 .short 2 131 .short 4431 132 Ltmp1: 133 .p2align 2 134 .cv_linetable 0, "?baz@@YAXXZ", Lfunc_end0 135 .cv_filechecksums # File index to string table offset subsection 136 .cv_stringtable # String table 137 138 # CHECK-LABEL: FunctionLineTable [ 139 # CHECK: LinkageName: ?baz@@YAXXZ 140 # CHECK: Flags: 0x1 141 # CHECK: CodeSize: 0x3D 142 # CHECK: FilenameSegment [ 143 # CHECK: Filename: D:\src\llvm\build\t.cpp (0x0) 144 # CHECK: +0x0 [ 145 # CHECK: LineNumberStart: 13 146 # CHECK: ] 147 # CHECK: +0x1 [ 148 # CHECK: LineNumberStart: 14 149 # CHECK: ] 150 # CHECK: +0x8 [ 151 # CHECK: LineNumberStart: 15 152 # CHECK: ] 153 # There shouldn't be any other line number entries because all the other 154 # .cv_locs are on line 15 where the top-level inline call site is. 155 # CHECK-NOT: LineNumberStart 156 # CHECK: +0x34 [ 157 # CHECK: LineNumberStart: 16 158 # CHECK: ] 159 # CHECK: +0x3B [ 160 # CHECK: LineNumberStart: 17 161 # CHECK: ] 162 # CHECK: ] 163 # CHECK: ] 164