2019-05-01 13:27:20 +08:00
|
|
|
# RUN: llvm-mc -triple=i686-pc-win32 -filetype=obj < %s | llvm-readobj --codeview --codeview-subsection-bytes | FileCheck %s
|
2016-02-05 09:55:49 +08:00
|
|
|
.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>"
|
2016-09-08 00:15:31 +08:00
|
|
|
.cv_func_id 0
|
2016-02-05 09:55:49 +08:00
|
|
|
.cv_loc 0 1 3 0 is_stmt 0 # <stdin>:3:0
|
2017-12-05 01:18:51 +08:00
|
|
|
# %bb.0: # %entry
|
2016-02-05 09:55:49 +08:00
|
|
|
pushl %ebp
|
|
|
|
movl %esp, %ebp
|
|
|
|
subl $8, %esp
|
|
|
|
leal -4(%ebp), %eax
|
|
|
|
Lvar_begin0:
|
2017-11-29 01:15:09 +08:00
|
|
|
#DEBUG_VALUE: g:x <- %eax
|
2016-02-05 09:55:49 +08:00
|
|
|
.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
|
2019-08-05 22:16:58 +08:00
|
|
|
.cv_def_range Lvar_begin0 Lvar_end0, frame_ptr_rel, -4
|
2016-02-05 09:55:49 +08:00
|
|
|
|
2017-07-12 07:41:41 +08:00
|
|
|
# CHECK: DefRangeFramePointerRelSym {
|
2016-02-05 09:55:49 +08:00
|
|
|
# CHECK: Offset: -4
|
|
|
|
# CHECK: LocalVariableAddrRange {
|
|
|
|
# CHECK: OffsetStart: .text+0x9
|
|
|
|
# CHECK: ISectStart: 0x0
|
2016-02-12 07:40:14 +08:00
|
|
|
# CHECK: Range: 0xF
|
2016-02-05 09:55:49 +08:00
|
|
|
# CHECK: }
|
2017-07-12 07:41:41 +08:00
|
|
|
# CHECK: BlockRelocations [
|
|
|
|
# CHECK: 0x4 IMAGE_REL_I386_SECREL .text
|
|
|
|
# CHECK: 0x8 IMAGE_REL_I386_SECTION .text
|
|
|
|
# CHECK: ]
|
2016-02-05 09:55:49 +08:00
|
|
|
# CHECK: }
|
|
|
|
|
|
|
|
Ltmp1:
|
|
|
|
.p2align 2
|
|
|
|
.cv_linetable 0, _g, Lfunc_end0
|
|
|
|
.cv_filechecksums # File index to string table offset subsection
|
|
|
|
.cv_stringtable # String table
|
|
|
|
|