xref: /aosp_15_r20/external/llvm/test/MC/COFF/cv-def-range.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker# RUN: llvm-mc -triple=i686-pc-win32 -filetype=obj < %s | llvm-readobj -codeview -codeview-subsection-bytes | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker	.text
3*9880d681SAndroid Build Coastguard Worker	.def	 @feat.00;
4*9880d681SAndroid Build Coastguard Worker	.scl	3;
5*9880d681SAndroid Build Coastguard Worker	.type	0;
6*9880d681SAndroid Build Coastguard Worker	.endef
7*9880d681SAndroid Build Coastguard Worker	.globl	@feat.00
8*9880d681SAndroid Build Coastguard Worker@feat.00 = 1
9*9880d681SAndroid Build Coastguard Worker	.def	 _g;
10*9880d681SAndroid Build Coastguard Worker	.scl	2;
11*9880d681SAndroid Build Coastguard Worker	.type	32;
12*9880d681SAndroid Build Coastguard Worker	.endef
13*9880d681SAndroid Build Coastguard Worker	.globl	_g
14*9880d681SAndroid Build Coastguard Worker	.p2align	4, 0x90
15*9880d681SAndroid Build Coastguard Worker_g:                                     # @g
16*9880d681SAndroid Build Coastguard WorkerLfunc_begin0:
17*9880d681SAndroid Build Coastguard Worker	.cv_file	1 "\\usr\\local\\google\\home\\majnemer\\llvm\\src\\<stdin>"
18*9880d681SAndroid Build Coastguard Worker	.cv_loc	0 1 3 0 is_stmt 0       # <stdin>:3:0
19*9880d681SAndroid Build Coastguard Worker# BB#0:                                 # %entry
20*9880d681SAndroid Build Coastguard Worker	pushl	%ebp
21*9880d681SAndroid Build Coastguard Worker	movl	%esp, %ebp
22*9880d681SAndroid Build Coastguard Worker	subl	$8, %esp
23*9880d681SAndroid Build Coastguard Worker	leal	-4(%ebp), %eax
24*9880d681SAndroid Build Coastguard WorkerLvar_begin0:
25*9880d681SAndroid Build Coastguard Worker	#DEBUG_VALUE: g:x <- %EAX
26*9880d681SAndroid Build Coastguard Worker	.cv_loc	0 1 4 7                 # <stdin>:4:7
27*9880d681SAndroid Build Coastguard Worker	movl	$0, -4(%ebp)
28*9880d681SAndroid Build Coastguard Worker	.cv_loc	0 1 5 3                 # <stdin>:5:3
29*9880d681SAndroid Build Coastguard Worker	movl	%eax, (%esp)
30*9880d681SAndroid Build Coastguard Worker	calll	_f
31*9880d681SAndroid Build Coastguard Worker	.cv_loc	0 1 6 1                 # <stdin>:6:1
32*9880d681SAndroid Build Coastguard WorkerLvar_end0:
33*9880d681SAndroid Build Coastguard Worker	addl	$8, %esp
34*9880d681SAndroid Build Coastguard Worker	popl	%ebp
35*9880d681SAndroid Build Coastguard Worker	retl
36*9880d681SAndroid Build Coastguard WorkerLfunc_end0:
37*9880d681SAndroid Build Coastguard Worker
38*9880d681SAndroid Build Coastguard Worker	.section	.debug$T,"dr"
39*9880d681SAndroid Build Coastguard Worker	.long	4                       # Debug section magic
40*9880d681SAndroid Build Coastguard Worker	.short	6                       # Type record length
41*9880d681SAndroid Build Coastguard Worker	.short	4609                    # Leaf type: LF_ARGLIST
42*9880d681SAndroid Build Coastguard Worker	.long	0                       # Number of arguments
43*9880d681SAndroid Build Coastguard Worker	.short	14                      # Type record length
44*9880d681SAndroid Build Coastguard Worker	.short	4104                    # Leaf type: LF_PROCEDURE
45*9880d681SAndroid Build Coastguard Worker	.long	3                       # Return type index
46*9880d681SAndroid Build Coastguard Worker	.byte	0                       # Calling convention
47*9880d681SAndroid Build Coastguard Worker	.byte	0                       # Function options
48*9880d681SAndroid Build Coastguard Worker	.short	0                       # # of parameters
49*9880d681SAndroid Build Coastguard Worker	.long	4096                    # Argument list type index
50*9880d681SAndroid Build Coastguard Worker	.short	12                      # Type record length
51*9880d681SAndroid Build Coastguard Worker	.short	5633                    # Leaf type: LF_FUNC_ID
52*9880d681SAndroid Build Coastguard Worker	.long	0                       # Scope type index
53*9880d681SAndroid Build Coastguard Worker	.long	4097                    # Function type
54*9880d681SAndroid Build Coastguard Worker	.asciz	"g"                     # Function name
55*9880d681SAndroid Build Coastguard Worker	.section	.debug$S,"dr"
56*9880d681SAndroid Build Coastguard Worker	.long	4                       # Debug section magic
57*9880d681SAndroid Build Coastguard Worker	.long	241                     # Symbol subsection for g
58*9880d681SAndroid Build Coastguard Worker	.long	Ltmp1-Ltmp0             # Subsection size
59*9880d681SAndroid Build Coastguard WorkerLtmp0:
60*9880d681SAndroid Build Coastguard Worker	.short	Ltmp3-Ltmp2             # Record length
61*9880d681SAndroid Build Coastguard WorkerLtmp2:
62*9880d681SAndroid Build Coastguard Worker	.short	4423                    # Record kind: S_GPROC32_ID
63*9880d681SAndroid Build Coastguard Worker	.long	0                       # PtrParent
64*9880d681SAndroid Build Coastguard Worker	.long	0                       # PtrEnd
65*9880d681SAndroid Build Coastguard Worker	.long	0                       # PtrNext
66*9880d681SAndroid Build Coastguard Worker	.long	Lfunc_end0-_g           # Code size
67*9880d681SAndroid Build Coastguard Worker	.long	0                       # Offset after prologue
68*9880d681SAndroid Build Coastguard Worker	.long	0                       # Offset before epilogue
69*9880d681SAndroid Build Coastguard Worker	.long	0                       # Function type index
70*9880d681SAndroid Build Coastguard Worker	.secrel32	_g              # Function section relative address
71*9880d681SAndroid Build Coastguard Worker	.secidx	_g                      # Function section index
72*9880d681SAndroid Build Coastguard Worker	.byte	0                       # Flags
73*9880d681SAndroid Build Coastguard Worker	.asciz	"g"                     # Function name
74*9880d681SAndroid Build Coastguard WorkerLtmp3:
75*9880d681SAndroid Build Coastguard Worker	.short	2                       # Record length
76*9880d681SAndroid Build Coastguard Worker	.short	4431                    # Record kind: S_PROC_ID_END
77*9880d681SAndroid Build Coastguard Worker	.cv_def_range	Lvar_begin0 Lvar_end0, "\102\021\374\377\377\377"
78*9880d681SAndroid Build Coastguard Worker
79*9880d681SAndroid Build Coastguard Worker# CHECK:    DefRangeFramePointerRel {
80*9880d681SAndroid Build Coastguard Worker# CHECK:      Offset: -4
81*9880d681SAndroid Build Coastguard Worker# CHECK:      LocalVariableAddrRange {
82*9880d681SAndroid Build Coastguard Worker# CHECK:        OffsetStart: .text+0x9
83*9880d681SAndroid Build Coastguard Worker# CHECK:        ISectStart: 0x0
84*9880d681SAndroid Build Coastguard Worker# CHECK:        Range: 0xF
85*9880d681SAndroid Build Coastguard Worker# CHECK:      }
86*9880d681SAndroid Build Coastguard Worker# CHECK:    }
87*9880d681SAndroid Build Coastguard Worker# CHECK:    BlockRelocations [
88*9880d681SAndroid Build Coastguard Worker# CHECK:      0x4 IMAGE_REL_I386_SECREL .text
89*9880d681SAndroid Build Coastguard Worker# CHECK:      0x8 IMAGE_REL_I386_SECTION .text
90*9880d681SAndroid Build Coastguard Worker# CHECK:    ]
91*9880d681SAndroid Build Coastguard Worker
92*9880d681SAndroid Build Coastguard WorkerLtmp1:
93*9880d681SAndroid Build Coastguard Worker	.p2align	2
94*9880d681SAndroid Build Coastguard Worker	.cv_linetable	0, _g, Lfunc_end0
95*9880d681SAndroid Build Coastguard Worker	.cv_filechecksums               # File index to string table offset subsection
96*9880d681SAndroid Build Coastguard Worker	.cv_stringtable                 # String table
97*9880d681SAndroid Build Coastguard Worker
98