# RUN: llvm-mc -triple=x86_64-pc-win32 -filetype=obj < %s | llvm-readobj -codeview | FileCheck %s

# CHECK:    InlineSiteSym {
# CHECK:      BinaryAnnotations [
# CHECK:        ChangeLineOffset: 1
# CHECK:        ChangeCodeLength: 0x2
# CHECK:      ]
# CHECK:    }

	.text
	.cv_file	1 "D:\\src\\llvm\\build\\t.c"

	.def	 infloop;
	.scl	2;
	.type	32;
	.endef
	.section	.text,"xr",one_only,infloop
	.globl	infloop
	.p2align	4, 0x90
infloop:                                    # @infloop
.Lfunc_begin1:
	.cv_func_id 0
	.cv_inline_site_id 2 within 0 inlined_at 1 1 1
	.cv_loc	2 1 3 7                 # t.c:3:7
	jmp	.Lfunc_begin1
.Lfunc_end1:

	.def	 afterinfloop;
	.scl	2;
	.type	32;
	.endef
	.section	.text,"xr",one_only,afterinfloop
	.globl	afterinfloop
	.p2align	4, 0x90
afterinfloop:                                    # @afterinfloop
	.cv_func_id 3
	.cv_loc	3 1 13 0                # t.c:13:0
	retq

	.section	.debug$S,"dr"
	.long 4
	.long	241                     # Symbol subsection for infloop
	.long	.Ltmp17-.Ltmp16         # Subsection size
.Ltmp16:
	.short	.Ltmp19-.Ltmp18         # Record length
.Ltmp18:
	.short	4423                    # Record kind: S_GPROC32_ID
	.long	0                       # PtrParent
	.long	0                       # PtrEnd
	.long	0                       # PtrNext
	.long	.Lfunc_end1-infloop         # Code size
	.long	0                       # Offset after prologue
	.long	0                       # Offset before epilogue
	.long	0                       # Function type index
	.secrel32	infloop             # Function section relative address
	.secidx	infloop                     # Function section index
	.byte	0                       # Flags
	.asciz	"infloop"                   # Function name
.Ltmp19:
	.short	.Ltmp21-.Ltmp20         # Record length
.Ltmp20:
	.short	4429                    # Record kind: S_INLINESITE
	.long	0                       # PtrParent
	.long	0                       # PtrEnd
	.long	4098                    # Inlinee type index
	.cv_inline_linetable	2 1 2 .Lfunc_begin1 .Lfunc_end1
.Ltmp21:
	.short	2                       # Record length
	.short	4430                    # Record kind: S_INLINESITE_END
	.short	2                       # Record length
	.short	4431                    # Record kind: S_PROC_ID_END
.Ltmp17:
	.p2align	2
	.cv_linetable	1, infloop, .Lfunc_end1
