1 # RUN: llvm-mc < %s -triple=x86_64-pc-win32 -filetype=obj | llvm-readobj - -codeview | FileCheck %s 2 3 .section .debug$S 4 .long 4 5 .cv_stringtable 6 7 .cv_file 1 "a.c" 8 .cv_file 2 "t.inc" 9 10 # Implements this C: 11 # void f(volatile int *x) { 12 # ++*x; 13 # #include "t.h" // contains two ++*x; statements 14 # ++*x; 15 # } 16 17 .text 18 .def f; 19 .scl 2; 20 .type 32; 21 .endef 22 .text 23 .globl f 24 .align 16, 0x90 25 f: 26 .Lfunc_begin0: 27 .cv_loc 0 1 5 2 28 incl (%rdi) 29 # #include "t.h" start 30 .cv_loc 0 2 0 0 is_stmt 1 31 incl (%rdi) 32 .cv_loc 0 2 1 0 33 incl (%rdi) 34 # #include "t.h" end 35 .cv_loc 0 1 6 2 36 incl (%rdi) 37 retq 38 .Lfunc_end0: 39 40 .section .debug$S 41 .cv_filechecksums 42 .cv_linetable 0, f, .Lfunc_end0 43 44 # CHECK: FunctionLineTable [ 45 # CHECK: LinkageName: f 46 # CHECK: Flags: 0x1 47 # CHECK: CodeSize: 0x9 48 # CHECK: FilenameSegment [ 49 # CHECK: Filename: a.c (0x0) 50 # CHECK: +0x0 [ 51 # CHECK: LineNumberStart: 5 52 # CHECK: LineNumberEndDelta: 0 53 # CHECK: IsStatement: No 54 # CHECK: ColStart: 2 55 # CHECK: ColEnd: 0 56 # CHECK: ] 57 # CHECK: ] 58 # CHECK: FilenameSegment [ 59 # CHECK: Filename: t.inc (0x8) 60 # CHECK: +0x2 [ 61 # CHECK: LineNumberStart: 0 62 # CHECK: LineNumberEndDelta: 0 63 # CHECK: IsStatement: Yes 64 # CHECK: ColStart: 0 65 # CHECK: ColEnd: 0 66 # CHECK: ] 67 # CHECK: +0x4 [ 68 # CHECK: LineNumberStart: 1 69 # CHECK: LineNumberEndDelta: 0 70 # CHECK: IsStatement: No 71 # CHECK: ColStart: 0 72 # CHECK: ColEnd: 0 73 # CHECK: ] 74 # CHECK: ] 75 # CHECK: FilenameSegment [ 76 # CHECK: Filename: a.c (0x0) 77 # CHECK: +0x6 [ 78 # CHECK: LineNumberStart: 6 79 # CHECK: LineNumberEndDelta: 0 80 # CHECK: IsStatement: No 81 # CHECK: ColStart: 2 82 # CHECK: ColEnd: 0 83 # CHECK: ] 84 # CHECK: ] 85 # CHECK: ] 86