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