llvm/llvm/test/MC/COFF/cv-def-range.s

# RUN: llvm-mc -triple=i686-pc-win32 -filetype=obj < %s | llvm-readobj --codeview --codeview-subsection-bytes - | FileCheck %s
	.text
	.def	 @feat.00;
	.scl	3;
	.type	0;
	.endef
	.globl	@feat.00
@feat.00 = 1
	.def	 _g;
	.scl	2;
	.type	32;
	.endef
	.globl	_g
	.p2align	4, 0x90
_g:                                     # @g
Lfunc_begin0:
	.cv_file	1 "\\usr\\local\\google\\home\\majnemer\\llvm\\src\\<stdin>"
	.cv_func_id 0
	.cv_loc	0 1 3 0 is_stmt 0       # <stdin>:3:0
# %bb.0:                                # %entry
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
	leal	-4(%ebp), %eax
Lvar_begin0:
	#DEBUG_VALUE: g:x <- %eax
	.cv_loc	0 1 4 7                 # <stdin>:4:7
	movl	$0, -4(%ebp)
	.cv_loc	0 1 5 3                 # <stdin>:5:3
	movl	%eax, (%esp)
	calll	_f
	.cv_loc	0 1 6 1                 # <stdin>:6:1
Lvar_end0:
	addl	$8, %esp
	popl	%ebp
	retl
Lfunc_end0:

	.section	.debug$T,"dr"
	.long	4                       # Debug section magic
	.short	6                       # Type record length
	.short	4609                    # Leaf type: LF_ARGLIST
	.long	0                       # Number of arguments
	.short	14                      # Type record length
	.short	4104                    # Leaf type: LF_PROCEDURE
	.long	3                       # Return type index
	.byte	0                       # Calling convention
	.byte	0                       # Function options
	.short	0                       # # of parameters
	.long	4096                    # Argument list type index
	.short	12                      # Type record length
	.short	5633                    # Leaf type: LF_FUNC_ID
	.long	0                       # Scope type index
	.long	4097                    # Function type
	.asciz	"g"                     # Function name
	.section	.debug$S,"dr"
	.long	4                       # Debug section magic
	.long	241                     # Symbol subsection for g
	.long	Ltmp1-Ltmp0             # Subsection size
Ltmp0:
	.short	Ltmp3-Ltmp2             # Record length
Ltmp2:
	.short	4423                    # Record kind: S_GPROC32_ID
	.long	0                       # PtrParent
	.long	0                       # PtrEnd
	.long	0                       # PtrNext
	.long	Lfunc_end0-_g           # Code size
	.long	0                       # Offset after prologue
	.long	0                       # Offset before epilogue
	.long	0                       # Function type index
	.secrel32	_g              # Function section relative address
	.secidx	_g                      # Function section index
	.byte	0                       # Flags
	.asciz	"g"                     # Function name
Ltmp3:
	.short	2                       # Record length
	.short	4431                    # Record kind: S_PROC_ID_END
	.cv_def_range	Lvar_begin0 Lvar_end0, frame_ptr_rel, -4

# CHECK:    DefRangeFramePointerRelSym {
# CHECK:      Offset: -4
# CHECK:      LocalVariableAddrRange {
# CHECK:        OffsetStart: .text+0x9
# CHECK:        ISectStart: 0x0
# CHECK:        Range: 0xF
# CHECK:      }
# CHECK:      BlockRelocations [
# CHECK:        0x4 IMAGE_REL_I386_SECREL .text
# CHECK:        0x8 IMAGE_REL_I386_SECTION .text
# CHECK:      ]
# CHECK:    }

Ltmp1:
	.p2align	2
	.cv_linetable	0, _g, Lfunc_end0
	.cv_filechecksums               # File index to string table offset subsection
	.cv_stringtable                 # String table