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