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