1## Check that error handling for going past the unwind data works.
2## .xdata below contains bad opcodes in the last word.  The last byte, 0xe0,
3## indicates that we have come across alloc_l, which requires 4 bytes. In this
4## case, unwind code processing will go past the allocated unwind data.
5
6// REQUIRES: aarch64-registered-target
7// RUN: llvm-mc -filetype=obj -triple aarch64-windows %s -o - \
8// RUN:   | llvm-readobj --unwind - | FileCheck %s
9
10// CHECK: Prologue [
11// CHECK:   Opcode 0xe0 goes past the unwind data
12
13	.text
14	.globl	"?func@@YAHXZ"
15	.p2align	3
16"?func@@YAHXZ":
17	sub     sp,sp,#0x10
18	stp     x19,lr,[sp]
19	sub     sp,sp,#0x1F0
20	mov     w19,w0
21	bl	"?func2@@YAXXZ"
22	cmp     w19,#2
23	ble     .LBB0_1
24	bl      "?func2@@YAHXZ"
25	add      sp,sp,#0x1F0
26	ldp      x19,lr,[sp]
27	add      sp,sp,#0x10
28	ret
29.LBB0_1:
30	mov      x0,sp
31	bl       "?func3@@YAHPEAH@Z"
32	add      sp,sp,#0x1F0
33	ldp      x19,lr,[sp]
34	add      sp,sp,#0x10
35	ret
36
37
38.section .pdata,"dr"
39	.long "?func@@YAHXZ"@IMGREL
40        .long "$unwind$func@@YAHXZ"@IMGREL
41
42
43.section	.xdata,"dr"
44"$unwind$func@@YAHXZ":
45        .p2align	3
46	.long		0x10800012
47	.long 		0x8
48	.long 		0xe
49	.long 		0x100d61f
50	.long 		0xe0000000
51
52