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
 |