diff options
Diffstat (limited to 'test/MC/ARM/eh-directive-save-diagnoatics.s')
-rw-r--r-- | test/MC/ARM/eh-directive-save-diagnoatics.s | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/MC/ARM/eh-directive-save-diagnoatics.s b/test/MC/ARM/eh-directive-save-diagnoatics.s new file mode 100644 index 0000000000..0e6d7404a3 --- /dev/null +++ b/test/MC/ARM/eh-directive-save-diagnoatics.s @@ -0,0 +1,41 @@ +@ RUN: not llvm-mc -triple=armv7-unknown-linux-gnueabi < %s 2> %t +@ RUN: FileCheck --check-prefix=CHECK < %t %s + +@ Check the diagnostics for .save directive + +@ .save directive should always come after .fnstart directive and +@ before .handlerdata directive. + + .syntax unified + .text + +@------------------------------------------------------------------------------- +@ TEST1: .save before .fnstart +@------------------------------------------------------------------------------- + .globl func1 + .align 2 + .type func1,%function + .save {r4, r5, r6, r7} +@ CHECK: error: .fnstart must precede .save or .vsave directives +@ CHECK: .save {r4, r5, r6, r7} +@ CHECK: ^ + .fnstart +func1: + .fnend + + + +@------------------------------------------------------------------------------- +@ TEST2: .save after .handlerdata +@------------------------------------------------------------------------------- + .globl func2 + .align 2 + .type func2,%function + .fnstart +func2: + .handlerdata + .save {r4, r5, r6, r7} +@ CHECK: error: .save or .vsave must precede .handlerdata directive +@ CHECK: .save {r4, r5, r6, r7} +@ CHECK: ^ + .fnend |