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"
16Lfunc_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
44Lfunc_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
73Ltmp0:
74	.short	Ltmp3-Ltmp2
75Ltmp2:
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
85Ltmp3:
86	.short	Ltmp5-Ltmp4
87Ltmp4:
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:    }
103Ltmp5:
104	.short	Ltmp7-Ltmp6
105Ltmp6:
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:    }
121Ltmp7:
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
132Ltmp1:
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