1c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ RUN: not llvm-mc -triple=armv7-unknown-linux-gnueabi < %s 2> %t
2c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ RUN: FileCheck --check-prefix=CHECK < %t %s
3c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
4c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ Check the diagnostics for .save directive
5c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
6c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ .save directive should always come after .fnstart directive and
7c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ before .handlerdata directive.
8c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
9c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.syntax unified
10c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.text
11c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
12c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
13c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ TEST1: .save before .fnstart
14c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
15c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.globl	func1
16c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.align	2
17c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.type	func1,%function
18c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.save	{r4, r5, r6, r7}
19c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK: error: .fnstart must precede .save or .vsave directives
20c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:        .save {r4, r5, r6, r7}
21c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:        ^
22c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.fnstart
23c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chienfunc1:
24c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.fnend
25c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
26c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
27c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien
28c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
29c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ TEST2: .save after .handlerdata
30c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@-------------------------------------------------------------------------------
31c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.globl	func2
32c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.align	2
33c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.type	func2,%function
34c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.fnstart
35c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chienfunc2:
36c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.handlerdata
37c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.save	{r4, r5, r6, r7}
38c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK: error: .save or .vsave must precede .handlerdata directive
39c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:        .save {r4, r5, r6, r7}
40c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien@ CHECK:        ^
41c24a374331fc97dd215937c8f0a9bf5271f39657Logan Chien	.fnend
42