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