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