| @ RUN: not llvm-mc -triple=armv7-unknown-linux-gnueabi < %s 2> %t | |
| @ RUN: FileCheck < %t %s | |
| @ Check the diagnostics for .vsave directive | |
| @ .vsave directive should always come after .fnstart directive | |
| @ and before .handlerdata directive. | |
| .syntax unified | |
| .text | |
| @------------------------------------------------------------------------------- | |
| @ TEST1: .vsave before .fnstart | |
| @------------------------------------------------------------------------------- | |
| .globl func1 | |
| .align 2 | |
| .type func1,%function | |
| .vsave {d0, d1, d2, d3} | |
| @ CHECK: error: .fnstart must precede .save or .vsave directives | |
| @ CHECK: .vsave {d0, d1, d2, d3} | |
| @ CHECK: ^ | |
| .fnstart | |
| func1: | |
| .fnend | |
| @------------------------------------------------------------------------------- | |
| @ TEST2: .vsave after .handlerdata | |
| @------------------------------------------------------------------------------- | |
| .globl func2 | |
| .align 2 | |
| .type func2,%function | |
| .fnstart | |
| func2: | |
| .handlerdata | |
| .vsave {d0, d1, d2, d3} | |
| @ CHECK: error: .save or .vsave must precede .handlerdata directive | |
| @ CHECK: .vsave {d0, d1, d2, d3} | |
| @ CHECK: ^ | |
| .fnend |