# RUN: llvm-mc -triple=i686-pc-win32 -filetype=obj < %s | llvm-readobj -codeview | FileCheck %s .text .def @feat.00; .scl 3; .type 0; .endef .globl @feat.00 @feat.00 = 1 .def "?baz@@YAXXZ"; .scl 2; .type 32; .endef .globl "?baz@@YAXXZ" .p2align 4, 0x90 "?baz@@YAXXZ": # @"\01?baz@@YAXXZ" Lfunc_begin0: .cv_file 1 "D:\\src\\llvm\\build\\t.cpp" .cv_func_id 0 .cv_inline_site_id 1 within 0 inlined_at 1 15 3 .cv_inline_site_id 2 within 1 inlined_at 1 10 3 .cv_loc 0 1 13 0 is_stmt 0 # t.cpp:13:0 # %bb.0: # %entry pushl %eax .cv_loc 0 1 14 5 # t.cpp:14:5 addl $6, "?x@@3HC" .cv_loc 1 1 9 5 # t.cpp:9:5 addl $4, "?x@@3HC" .cv_loc 2 1 3 7 # t.cpp:3:7 movl $1, (%esp) leal (%esp), %eax .cv_loc 2 1 4 5 # t.cpp:4:5 addl %eax, "?x@@3HC" .cv_loc 2 1 5 5 # t.cpp:5:5 addl $2, "?x@@3HC" .cv_loc 2 1 6 5 # t.cpp:6:5 addl $3, "?x@@3HC" .cv_loc 1 1 11 5 # t.cpp:11:5 addl $5, "?x@@3HC" .cv_loc 0 1 16 5 # t.cpp:16:5 addl $7, "?x@@3HC" .cv_loc 0 1 17 1 # t.cpp:17:1 popl %eax retl Lfunc_end0: .section .debug$T,"dr" .long 4 .short 6 .short 4609 .long 0 .short 14 .short 4104 .asciz "\003\000\000\000\000\000\000\000\000\020\000" .short 14 .short 5633 .asciz "\000\000\000\000\001\020\000" .ascii "baz" .byte 0 .short 14 .short 5633 .asciz "\000\000\000\000\001\020\000" .ascii "bar" .byte 0 .short 14 .short 5633 .asciz "\000\000\000\000\001\020\000" .ascii "foo" .byte 0 .section .debug$S,"dr" .long 4 .long 241 # Symbol subsection for baz .long Ltmp1-Ltmp0 Ltmp0: .short Ltmp3-Ltmp2 Ltmp2: .short 4423 .zero 12 .long Lfunc_end0-"?baz@@YAXXZ" .zero 12 .secrel32 "?baz@@YAXXZ" .secidx "?baz@@YAXXZ" .byte 0 .ascii "baz" .byte 0 Ltmp3: .short Ltmp5-Ltmp4 Ltmp4: .short 4429 .asciz "\000\000\000\000\000\000\000\000\003\020\000" .cv_inline_linetable 1 1 9 Lfunc_begin0 Lfunc_end0 # CHECK: InlineSiteSym { # CHECK: PtrParent: 0x0 # CHECK: PtrEnd: 0x0 # CHECK: Inlinee: bar (0x1003) # CHECK: BinaryAnnotations [ # CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x8, LineOffset: 0} # CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x7, LineOffset: 1} # CHECK-NEXT: ChangeLineOffset: 1 # CHECK-NEXT: ChangeCodeOffset: 0x1E # CHECK-NEXT: ChangeCodeLength: 0x7 # CHECK-NEXT: ] # CHECK: } Ltmp5: .short Ltmp7-Ltmp6 Ltmp6: .short 4429 .asciz "\000\000\000\000\000\000\000\000\004\020\000" .cv_inline_linetable 2 1 3 Lfunc_begin0 Lfunc_end0 # CHECK: InlineSiteSym { # CHECK: PtrParent: 0x0 # CHECK: PtrEnd: 0x0 # CHECK: Inlinee: foo (0x1004) # CHECK: BinaryAnnotations [ # CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0xF, LineOffset: 0} # CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0xA, LineOffset: 1} # CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x6, LineOffset: 1} # CHECK-NEXT: ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x7, LineOffset: 1} # CHECK-NEXT: ChangeCodeLength: 0x7 # CHECK-NEXT: ] # CHECK: } Ltmp7: .short 2 .short 4430 # CHECK: InlineSiteEnd { # CHECK: } .short 2 .short 4430 # CHECK: InlineSiteEnd { # CHECK: } .short 2 .short 4431 Ltmp1: .p2align 2 .cv_linetable 0, "?baz@@YAXXZ", Lfunc_end0 .cv_filechecksums # File index to string table offset subsection .cv_stringtable # String table # CHECK-LABEL: FunctionLineTable [ # CHECK: LinkageName: ?baz@@YAXXZ # CHECK: Flags: 0x1 # CHECK: CodeSize: 0x3D # CHECK: FilenameSegment [ # CHECK: Filename: D:\src\llvm\build\t.cpp (0x0) # CHECK: +0x0 [ # CHECK: LineNumberStart: 13 # CHECK: ] # CHECK: +0x1 [ # CHECK: LineNumberStart: 14 # CHECK: ] # CHECK: +0x8 [ # CHECK: LineNumberStart: 15 # CHECK: ] # There shouldn't be any other line number entries because all the other # .cv_locs are on line 15 where the top-level inline call site is. # CHECK-NOT: LineNumberStart # CHECK: +0x34 [ # CHECK: LineNumberStart: 16 # CHECK: ] # CHECK: +0x3B [ # CHECK: LineNumberStart: 17 # CHECK: ] # CHECK: ] # CHECK: ]