mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
3d4218e538
Introduce a new virtual method Note into the AsmParser. This completements the existing Warning and Error methods. Use the new method to clean up the output of the unwind routines in the ARM AsmParser. llvm-svn: 198661
107 lines
3.1 KiB
ArmAsm
107 lines
3.1 KiB
ArmAsm
@ RUN: not llvm-mc -triple=armv7-unknown-linux-gnueabi < %s 2> %t
|
|
@ RUN: FileCheck < %t %s
|
|
|
|
@ Check the diagnostics for .cantunwind, .handlerdata, and .personality
|
|
|
|
@ .cantunwind directive can't be used with .handlerdata directive nor
|
|
@ .personality directive. This test case check for the diagnostics for
|
|
@ the conflicts.
|
|
|
|
|
|
.syntax unified
|
|
.text
|
|
|
|
@-------------------------------------------------------------------------------
|
|
@ TEST1: cantunwind + personality
|
|
@-------------------------------------------------------------------------------
|
|
.globl func1
|
|
.align 2
|
|
.type func1,%function
|
|
.fnstart
|
|
func1:
|
|
.cantunwind
|
|
.personality __gxx_personality_v0
|
|
@ CHECK: error: .personality can't be used with .cantunwind directive
|
|
@ CHECK: .personality __gxx_personality_v0
|
|
@ CHECK: ^
|
|
@ CHECK: note: .cantunwind was specified here
|
|
@ CHECK: .cantunwind
|
|
@ CHECK: ^
|
|
.fnend
|
|
|
|
|
|
|
|
@-------------------------------------------------------------------------------
|
|
@ TEST2: cantunwind + handlerdata
|
|
@-------------------------------------------------------------------------------
|
|
.globl func2
|
|
.align 2
|
|
.type func2,%function
|
|
.fnstart
|
|
func2:
|
|
.cantunwind
|
|
.handlerdata
|
|
@ CHECK: error: .handlerdata can't be used with .cantunwind directive
|
|
@ CHECK: .handlerdata
|
|
@ CHECK: ^
|
|
@ CHECK: note: .cantunwind was specified here
|
|
@ CHECK: .cantunwind
|
|
@ CHECK: ^
|
|
.fnend
|
|
|
|
|
|
|
|
@-------------------------------------------------------------------------------
|
|
@ TEST3: personality + cantunwind
|
|
@-------------------------------------------------------------------------------
|
|
.globl func3
|
|
.align 2
|
|
.type func3,%function
|
|
.fnstart
|
|
func3:
|
|
.personality __gxx_personality_v0
|
|
.cantunwind
|
|
@ CHECK: error: .cantunwind can't be used with .personality directive
|
|
@ CHECK: .cantunwind
|
|
@ CHECK: ^
|
|
@ CHECK: note: .personality was specified here
|
|
@ CHECK: .personality __gxx_personality_v0
|
|
@ CHECK: ^
|
|
.fnend
|
|
|
|
|
|
|
|
@-------------------------------------------------------------------------------
|
|
@ TEST4: handlerdata + cantunwind
|
|
@-------------------------------------------------------------------------------
|
|
.globl func4
|
|
.align 2
|
|
.type func4,%function
|
|
.fnstart
|
|
func4:
|
|
.handlerdata
|
|
.cantunwind
|
|
@ CHECK: error: .cantunwind can't be used with .handlerdata directive
|
|
@ CHECK: .cantunwind
|
|
@ CHECK: ^
|
|
@ CHECK: note: .handlerdata was specified here
|
|
@ CHECK: .handlerdata
|
|
@ CHECK: ^
|
|
.fnend
|
|
|
|
|
|
|
|
@-------------------------------------------------------------------------------
|
|
@ TEST5: cantunwind + fnstart
|
|
@-------------------------------------------------------------------------------
|
|
.globl func5
|
|
.align 2
|
|
.type func5,%function
|
|
.cantunwind
|
|
@ CHECK: error: .fnstart must precede .cantunwind directive
|
|
@ CHECK: .cantunwind
|
|
@ CHECK: ^
|
|
.fnstart
|
|
func5:
|
|
.fnend
|