1 // This test checks the alignment and padding of the unwind info.
3 // RUN: llvm-mc -triple x86_64-pc-win32 -filetype=obj %s | llvm-readobj -s -sd -sr -u | FileCheck %s
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
15 // CHECK: Relocations [
17 // CHECK: SectionData (
18 // CHECK-NEXT: 0000: 01000000 00000000
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
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
35 // CHECK: SectionData (
36 // CHECK-NEXT: 0000: 00000000 01000000 00000000
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 [
48 // CHECK-NEXT: PrologSize: 0
49 // CHECK-NEXT: FrameRegister: -
50 // CHECK-NEXT: FrameOffset: -
51 // CHECK-NEXT: UnwindCodeCount: 0
52 // CHECK-NEXT: UnwindCodes [
58 // Generate the minimal unwind info.
59 // It contains only the version set to 1. All other bytes are 0.
61 .def smallFunc; .scl 2; .type 32; .endef