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

# CHECK:    InlineSiteSym {
# CHECK:      BinaryAnnotations [
# CHECK:        ChangeCodeOffsetAndLineOffset: {CodeOffset: 0x0, LineOffset: 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
