70 lines · plain
1# RUN: llvm-mc -triple=i686-windows-msvc %s -filetype=obj -o %t.obj2# RUN: llvm-readobj --codeview %t.obj | FileCheck %s3 4# The .cv_string directive mainly exists as a convenience for manually writing5# FPO data in assembler. Test that we can write FPO data using this directive,6# and that the string comes out in the dumper.7 8# void g(int);9# void f(int x) {10# g(x+1);11# }12 13# CHECK: FrameFunc [14# CHECK-NEXT: abc =15# CHECK-NEXT: def =16# CHECK-NEXT: ghi =17# CHECK-NEXT: ]18 19 .text20 .def @feat.00;21 .scl 3;22 .type 0;23 .endef24 .globl @feat.0025.set @feat.00, 126 .def _f;27 .scl 2;28 .type 32;29 .endef30 .globl _f # -- Begin function f31 .p2align 4, 0x9032_f: # @f33Lfunc_begin0:34# %bb.0: # %entry35 pushl %ebp36 movl %esp, %ebp37 subl $8, %esp38 movl 8(%ebp), %eax39 movl 8(%ebp), %ecx40 addl $1, %ecx41 movl %ecx, (%esp)42 movl %eax, -4(%ebp) # 4-byte Spill43 calll _g44 addl $8, %esp45 popl %ebp46 retl47Lfunc_end0:48 # -- End function49 .section .debug$S,"dr"50 .p2align 251 .long 4 # Debug section magic52 53 # Open coded frame data54 .long 24555 .long Lfoo_fpo_end-Lfoo_fpo_begin # Subsection size56Lfoo_fpo_begin:57 .long _f58 .long 059 .long Lfunc_end0-Lfunc_begin060 .long 24 # LocalSize61 .long 0 # ParamSize62 .long 0 # MaxStackSize63 .cv_string "abc = def = ghi = "64 .short 0 # PrologSize65 .short 0 # SavedRegSize66 .long 0x4 # Flags67Lfoo_fpo_end:68 .p2align 269 .cv_stringtable # String table70