xref: /aosp_15_r20/external/llvm/test/MC/ARM/eh-directive-save-diagnostics.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker@ RUN: not llvm-mc -triple=armv7-unknown-linux-gnueabi < %s 2> %t
2*9880d681SAndroid Build Coastguard Worker@ RUN: FileCheck < %t %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker@ Check the diagnostics for .save directive
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker@ .save directive should always come after .fnstart directive and
7*9880d681SAndroid Build Coastguard Worker@ before .handlerdata directive.
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Worker	.syntax unified
10*9880d681SAndroid Build Coastguard Worker	.text
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Worker@-------------------------------------------------------------------------------
13*9880d681SAndroid Build Coastguard Worker@ TEST1: .save before .fnstart
14*9880d681SAndroid Build Coastguard Worker@-------------------------------------------------------------------------------
15*9880d681SAndroid Build Coastguard Worker	.globl	func1
16*9880d681SAndroid Build Coastguard Worker	.align	2
17*9880d681SAndroid Build Coastguard Worker	.type	func1,%function
18*9880d681SAndroid Build Coastguard Worker	.save	{r4, r5, r6, r7}
19*9880d681SAndroid Build Coastguard Worker@ CHECK: error: .fnstart must precede .save or .vsave directives
20*9880d681SAndroid Build Coastguard Worker@ CHECK:        .save {r4, r5, r6, r7}
21*9880d681SAndroid Build Coastguard Worker@ CHECK:        ^
22*9880d681SAndroid Build Coastguard Worker	.fnstart
23*9880d681SAndroid Build Coastguard Workerfunc1:
24*9880d681SAndroid Build Coastguard Worker	.fnend
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Worker@-------------------------------------------------------------------------------
29*9880d681SAndroid Build Coastguard Worker@ TEST2: .save after .handlerdata
30*9880d681SAndroid Build Coastguard Worker@-------------------------------------------------------------------------------
31*9880d681SAndroid Build Coastguard Worker	.globl	func2
32*9880d681SAndroid Build Coastguard Worker	.align	2
33*9880d681SAndroid Build Coastguard Worker	.type	func2,%function
34*9880d681SAndroid Build Coastguard Worker	.fnstart
35*9880d681SAndroid Build Coastguard Workerfunc2:
36*9880d681SAndroid Build Coastguard Worker	.handlerdata
37*9880d681SAndroid Build Coastguard Worker	.save	{r4, r5, r6, r7}
38*9880d681SAndroid Build Coastguard Worker@ CHECK: error: .save or .vsave must precede .handlerdata directive
39*9880d681SAndroid Build Coastguard Worker@ CHECK:        .save {r4, r5, r6, r7}
40*9880d681SAndroid Build Coastguard Worker@ CHECK:        ^
41*9880d681SAndroid Build Coastguard Worker	.fnend
42