// This test checks that the unwind data is dumped by llvm-objdump.
// RUN: llvm-objdump -u %p/Inputs/win64-unwind.exe.coff-x86_64 | FileCheck %s

CHECK:      Unwind info:
CHECK:      Function Table:
CHECK-NEXT: Start Address: func
CHECK-NEXT: End Address: func + 0x001b
CHECK-NEXT: Unwind Info Address: .xdata
CHECK-NEXT: Version: 1
CHECK-NEXT: Flags: 1 UNW_ExceptionHandler
CHECK-NEXT: Size of prolog: 18
CHECK-NEXT: Number of Codes: 8
CHECK-NEXT: Frame register: RBX
CHECK-NEXT: Frame offset: 0
CHECK-NEXT: Unwind Codes:
CHECK-NEXT: 0x12: UOP_SetFPReg
CHECK-NEXT: 0x0f: UOP_PushNonVol RBX
CHECK-NEXT: 0x0e: UOP_SaveXMM128 XMM8 [0x0000]
CHECK-NEXT: 0x09: UOP_SaveNonVol RSI [0x0010]
CHECK-NEXT: 0x04: UOP_AllocSmall 24
CHECK-NEXT: 0x00: UOP_PushMachFrame w/o error code
CHECK:      Function Table:
CHECK-NEXT: Start Address: func + 0x0012
CHECK-NEXT: End Address: func + 0x0012
CHECK-NEXT: Unwind Info Address: .xdata + 0x001c
CHECK-NEXT: Version: 1
CHECK-NEXT: Flags: 4 UNW_ChainInfo
CHECK-NEXT: Size of prolog: 0
CHECK-NEXT: Number of Codes: 0
CHECK-NEXT: No frame pointer used
CHECK:      Function Table:
CHECK-NEXT: Start Address: smallFunc
CHECK-NEXT: End Address: smallFunc + 0x0001
CHECK-NEXT: Unwind Info Address: .xdata + 0x002c
CHECK-NEXT: Version: 1
CHECK-NEXT: Flags: 0
CHECK-NEXT: Size of prolog: 0
CHECK-NEXT: Number of Codes: 0
CHECK-NEXT: No frame pointer used
CHECK:      Function Table:
CHECK-NEXT: Start Address: allocFunc
CHECK-NEXT: End Address: allocFunc + 0x001d
CHECK-NEXT: Unwind Info Address: .xdata + 0x0034
CHECK-NEXT: Version: 1
CHECK-NEXT: Flags: 0
CHECK-NEXT: Size of prolog: 14
CHECK-NEXT: Number of Codes: 6
CHECK-NEXT: No frame pointer used
CHECK-NEXT: Unwind Codes:
CHECK-NEXT: 0x0e: UOP_AllocLarge 8454128
CHECK-NEXT: 0x07: UOP_AllocLarge 8190
CHECK-NEXT: 0x00: UOP_PushMachFrame w/o error code
