xref: /llvm-project/llvm/test/MC/COFF/cv-def-range.s (revision b36a3e61400aed89d6abe4bd30b35af40805d4cb)
1*b36a3e61SElvina Yakubova# RUN: llvm-mc -triple=i686-pc-win32 -filetype=obj < %s | llvm-readobj --codeview --codeview-subsection-bytes - | FileCheck %s
2408b5e66SDavid Majnemer	.text
3408b5e66SDavid Majnemer	.def	 @feat.00;
4408b5e66SDavid Majnemer	.scl	3;
5408b5e66SDavid Majnemer	.type	0;
6408b5e66SDavid Majnemer	.endef
7408b5e66SDavid Majnemer	.globl	@feat.00
8408b5e66SDavid Majnemer@feat.00 = 1
9408b5e66SDavid Majnemer	.def	 _g;
10408b5e66SDavid Majnemer	.scl	2;
11408b5e66SDavid Majnemer	.type	32;
12408b5e66SDavid Majnemer	.endef
13408b5e66SDavid Majnemer	.globl	_g
14408b5e66SDavid Majnemer	.p2align	4, 0x90
15408b5e66SDavid Majnemer_g:                                     # @g
16408b5e66SDavid MajnemerLfunc_begin0:
17408b5e66SDavid Majnemer	.cv_file	1 "\\usr\\local\\google\\home\\majnemer\\llvm\\src\\<stdin>"
18a9f4cc95SReid Kleckner	.cv_func_id 0
19408b5e66SDavid Majnemer	.cv_loc	0 1 3 0 is_stmt 0       # <stdin>:3:0
2025528d6dSFrancis Visoiu Mistrih# %bb.0:                                # %entry
21408b5e66SDavid Majnemer	pushl	%ebp
22408b5e66SDavid Majnemer	movl	%esp, %ebp
23408b5e66SDavid Majnemer	subl	$8, %esp
24408b5e66SDavid Majnemer	leal	-4(%ebp), %eax
25408b5e66SDavid MajnemerLvar_begin0:
269d7bb0cbSFrancis Visoiu Mistrih	#DEBUG_VALUE: g:x <- %eax
27408b5e66SDavid Majnemer	.cv_loc	0 1 4 7                 # <stdin>:4:7
28408b5e66SDavid Majnemer	movl	$0, -4(%ebp)
29408b5e66SDavid Majnemer	.cv_loc	0 1 5 3                 # <stdin>:5:3
30408b5e66SDavid Majnemer	movl	%eax, (%esp)
31408b5e66SDavid Majnemer	calll	_f
32408b5e66SDavid Majnemer	.cv_loc	0 1 6 1                 # <stdin>:6:1
33408b5e66SDavid MajnemerLvar_end0:
34408b5e66SDavid Majnemer	addl	$8, %esp
35408b5e66SDavid Majnemer	popl	%ebp
36408b5e66SDavid Majnemer	retl
37408b5e66SDavid MajnemerLfunc_end0:
38408b5e66SDavid Majnemer
39408b5e66SDavid Majnemer	.section	.debug$T,"dr"
40408b5e66SDavid Majnemer	.long	4                       # Debug section magic
41408b5e66SDavid Majnemer	.short	6                       # Type record length
42408b5e66SDavid Majnemer	.short	4609                    # Leaf type: LF_ARGLIST
43408b5e66SDavid Majnemer	.long	0                       # Number of arguments
44408b5e66SDavid Majnemer	.short	14                      # Type record length
45408b5e66SDavid Majnemer	.short	4104                    # Leaf type: LF_PROCEDURE
46408b5e66SDavid Majnemer	.long	3                       # Return type index
47408b5e66SDavid Majnemer	.byte	0                       # Calling convention
48408b5e66SDavid Majnemer	.byte	0                       # Function options
49408b5e66SDavid Majnemer	.short	0                       # # of parameters
50408b5e66SDavid Majnemer	.long	4096                    # Argument list type index
51408b5e66SDavid Majnemer	.short	12                      # Type record length
52408b5e66SDavid Majnemer	.short	5633                    # Leaf type: LF_FUNC_ID
53408b5e66SDavid Majnemer	.long	0                       # Scope type index
54408b5e66SDavid Majnemer	.long	4097                    # Function type
55408b5e66SDavid Majnemer	.asciz	"g"                     # Function name
56408b5e66SDavid Majnemer	.section	.debug$S,"dr"
57408b5e66SDavid Majnemer	.long	4                       # Debug section magic
58408b5e66SDavid Majnemer	.long	241                     # Symbol subsection for g
59408b5e66SDavid Majnemer	.long	Ltmp1-Ltmp0             # Subsection size
60408b5e66SDavid MajnemerLtmp0:
61408b5e66SDavid Majnemer	.short	Ltmp3-Ltmp2             # Record length
62408b5e66SDavid MajnemerLtmp2:
63408b5e66SDavid Majnemer	.short	4423                    # Record kind: S_GPROC32_ID
64408b5e66SDavid Majnemer	.long	0                       # PtrParent
65408b5e66SDavid Majnemer	.long	0                       # PtrEnd
66408b5e66SDavid Majnemer	.long	0                       # PtrNext
67408b5e66SDavid Majnemer	.long	Lfunc_end0-_g           # Code size
68408b5e66SDavid Majnemer	.long	0                       # Offset after prologue
69408b5e66SDavid Majnemer	.long	0                       # Offset before epilogue
70408b5e66SDavid Majnemer	.long	0                       # Function type index
71408b5e66SDavid Majnemer	.secrel32	_g              # Function section relative address
72408b5e66SDavid Majnemer	.secidx	_g                      # Function section index
73408b5e66SDavid Majnemer	.byte	0                       # Flags
74408b5e66SDavid Majnemer	.asciz	"g"                     # Function name
75408b5e66SDavid MajnemerLtmp3:
76408b5e66SDavid Majnemer	.short	2                       # Record length
77408b5e66SDavid Majnemer	.short	4431                    # Record kind: S_PROC_ID_END
78da60fc81SNilanjana Basu	.cv_def_range	Lvar_begin0 Lvar_end0, frame_ptr_rel, -4
79408b5e66SDavid Majnemer
808d8888ffSReid Kleckner# CHECK:    DefRangeFramePointerRelSym {
81408b5e66SDavid Majnemer# CHECK:      Offset: -4
82408b5e66SDavid Majnemer# CHECK:      LocalVariableAddrRange {
83408b5e66SDavid Majnemer# CHECK:        OffsetStart: .text+0x9
84408b5e66SDavid Majnemer# CHECK:        ISectStart: 0x0
854ab992d1SReid Kleckner# CHECK:        Range: 0xF
86408b5e66SDavid Majnemer# CHECK:      }
87408b5e66SDavid Majnemer# CHECK:      BlockRelocations [
88408b5e66SDavid Majnemer# CHECK:        0x4 IMAGE_REL_I386_SECREL .text
89408b5e66SDavid Majnemer# CHECK:        0x8 IMAGE_REL_I386_SECTION .text
90408b5e66SDavid Majnemer# CHECK:      ]
918d8888ffSReid Kleckner# CHECK:    }
92408b5e66SDavid Majnemer
93408b5e66SDavid MajnemerLtmp1:
94408b5e66SDavid Majnemer	.p2align	2
95408b5e66SDavid Majnemer	.cv_linetable	0, _g, Lfunc_end0
96408b5e66SDavid Majnemer	.cv_filechecksums               # File index to string table offset subsection
97408b5e66SDavid Majnemer	.cv_stringtable                 # String table
98408b5e66SDavid Majnemer
99