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