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