1// This test checks the alignment and padding of the unwind info. 2 3// RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -s -sd -sr -u | FileCheck %s 4 5// CHECK: Sections [ 6// CHECK: Section { 7// CHECK: Name: .xdata 8// CHECK: RawDataSize: 8 9// CHECK: RelocationCount: 0 10// CHECK: Characteristics [ 11// CHECK-NEXT: ALIGN_4BYTES 12// CHECK-NEXT: CNT_INITIALIZED_DATA 13// CHECK-NEXT: MEM_READ 14// CHECK-NEXT: ] 15// CHECK: Relocations [ 16// CHECK-NEXT: ] 17// CHECK: SectionData ( 18// CHECK-NEXT: 0000: 01000000 00000000 19// CHECK-NEXT: ) 20// CHECK-NEXT: } 21// CHECK: Section { 22// CHECK: Name: .pdata 23// CHECK: RawDataSize: 12 24// CHECK: RelocationCount: 3 25// CHECK: Characteristics [ 26// CHECK-NEXT: IMAGE_SCN_ALIGN_4BYTES 27// CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA 28// CHECK-NEXT: IMAGE_SCN_MEM_READ 29// CHECK-NEXT: ] 30// CHECK: Relocations [ 31// CHECK-NEXT: [[BeginDisp:0x[A-F0-9]+]] IMAGE_REL_AMD64_ADDR32NB smallFunc 32// CHECK-NEXT: [[EndDisp:0x[A-F0-9]+]] IMAGE_REL_AMD64_ADDR32NB smallFunc 33// CHECK-NEXT: [[UnwindDisp:0x[A-F0-9]+]] IMAGE_REL_AMD64_ADDR32NB .xdata 34// CHECK-NEXT: ] 35// CHECK: SectionData ( 36// CHECK-NEXT: 0000: 00000000 01000000 00000000 37// CHECK-NEXT: ) 38// CHECK-NEXT: } 39// CHECK: UnwindInformation [ 40// CHECK-NEXT: RuntimeFunction { 41// CHECK-NEXT: StartAddress: smallFunc {{(\+0x[A-F0-9]+ )?}}([[BeginDisp]]) 42// CHECK-NEXT: EndAddress: smallFunc {{(\+0x[A-F0-9]+ )?}}([[EndDisp]]) 43// CHECK-NEXT: UnwindInfoAddress: .xdata {{(\+0x[A-F0-9]+ )?}}([[UnwindDisp]]) 44// CHECK-NEXT: UnwindInfo { 45// CHECK-NEXT: Version: 1 46// CHECK-NEXT: Flags [ 47// CHECK-NEXT: ] 48// CHECK-NEXT: PrologSize: 0 49// CHECK-NEXT: FrameRegister: - 50// CHECK-NEXT: FrameOffset: - 51// CHECK-NEXT: UnwindCodeCount: 0 52// CHECK-NEXT: UnwindCodes [ 53// CHECK-NEXT: ] 54// CHECK-NEXT: } 55// CHECK-NEXT: } 56// CHECK-NEXT: ] 57 58// Generate the minimal unwind info. 59// It contains only the version set to 1. All other bytes are 0. 60 .globl smallFunc 61 .def smallFunc; .scl 2; .type 32; .endef 62 .seh_proc smallFunc 63smallFunc: 64 ret 65 .seh_endproc 66