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