// 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 |