1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
// This test checks error reporting for missing ending/starting of prologues/epilogues
// RUN: not llvm-mc -triple thumbv7-pc-win32 -filetype=obj -o /dev/null %s 2>&1 | FileCheck %s
// CHECK: error: Stray .seh_endepilogue in func1
// CHECK: error: Prologue in func2 not correctly terminated
// CHECK: error: Epilogue in func3 not correctly terminated
// CHECK: error: Epilogue in func4 not correctly terminated
.text
.syntax unified
.seh_proc func1
func1:
sub sp, #16
.seh_stackalloc 16
.seh_endprologue
nop
// Missing .seh_startepilogue
add sp, #16
.seh_stackalloc 16
bx lr
.seh_nop
.seh_endepilogue
.seh_endproc
.seh_proc func2
func2:
sub sp, #16
.seh_stackalloc 16
// Missing .seh_endprologue
nop
.seh_startepilogue
add sp, #16
.seh_stackalloc 16
bx lr
.seh_nop
.seh_endepilogue
.seh_endproc
.seh_proc func3
func3:
sub sp, #16
.seh_stackalloc 16
.seh_endprologue
nop
.seh_startepilogue
add sp, #16
.seh_stackalloc 16
bx lr
.seh_nop
// Missing .seh_endepilogue
.seh_endproc
.seh_proc func4
func4:
sub sp, #16
.seh_stackalloc 16
.seh_endprologue
nop
.seh_startepilogue
add sp, #16
.seh_stackalloc 16
bx lr
.seh_nop
// Missing .seh_endepilogue
nop
.seh_startepilogue
add sp, #16
.seh_stackalloc 16
bx lr
.seh_nop
.seh_endepilogue
.seh_endproc
|