forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			123 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
@ RUN: not llvm-mc -triple armv7-linux-eabi -filetype asm -o /dev/null %s 2>&1  \
 | 
						|
@ RUN:   | FileCheck %s
 | 
						|
 | 
						|
	.syntax unified
 | 
						|
	.thumb
 | 
						|
 | 
						|
	.global function
 | 
						|
	.type function,%function
 | 
						|
	.thumb_func
 | 
						|
function:
 | 
						|
	.personalityindex 0
 | 
						|
 | 
						|
@ CHECK: error: .fnstart must precede .personalityindex directive
 | 
						|
@ CHECK: 	.personalityindex 0
 | 
						|
@ CHECK:        ^
 | 
						|
 | 
						|
	.global ununwindable
 | 
						|
	.type ununwindable,%function
 | 
						|
	.thumb_func
 | 
						|
ununwindable:
 | 
						|
	.fnstart
 | 
						|
	.cantunwind
 | 
						|
	.personalityindex 0
 | 
						|
	.fnend
 | 
						|
 | 
						|
@ CHECK: error: .personalityindex cannot be used with .cantunwind
 | 
						|
@ CHECK: 	.personalityindex 0
 | 
						|
@ CHECK:        ^
 | 
						|
@ CHECK: note: .cantunwind was specified here
 | 
						|
@ CHECK: 	.cantunwind
 | 
						|
@ CHECK:        ^
 | 
						|
 | 
						|
	.global nodata
 | 
						|
	.type nodata,%function
 | 
						|
	.thumb_func
 | 
						|
nodata:
 | 
						|
	.fnstart
 | 
						|
	.handlerdata
 | 
						|
	.personalityindex 0
 | 
						|
	.fnend
 | 
						|
 | 
						|
@ CHECK: error: .personalityindex must precede .handlerdata directive
 | 
						|
@ CHECK: 	.personalityindex 0
 | 
						|
@ CHECK:        ^
 | 
						|
@ CHECK: note: .handlerdata was specified here
 | 
						|
@ CHECK: 	.handlerdata
 | 
						|
@ CHECK:        ^
 | 
						|
 | 
						|
	.global multiple_personality
 | 
						|
	.type multiple_personality,%function
 | 
						|
	.thumb_func
 | 
						|
multiple_personality:
 | 
						|
	.fnstart
 | 
						|
	.personality __aeabi_personality_pr0
 | 
						|
	.personalityindex 0
 | 
						|
	.fnend
 | 
						|
 | 
						|
@ CHECK: error: multiple personality directives
 | 
						|
@ CHECK: 	.personalityindex 0
 | 
						|
@ CHECK:        ^
 | 
						|
@ CHECK: note: .personality was specified here
 | 
						|
@ CHECK: 	.personality __aeabi_personality_pr0
 | 
						|
@ CHECK:        ^
 | 
						|
@ CHECK: note: .personalityindex was specified here
 | 
						|
@ CHECK: 	.personalityindex 0
 | 
						|
@ CHECK:       ^
 | 
						|
 | 
						|
	.global multiple_personality_indicies
 | 
						|
	.type multiple_personality_indicies,%function
 | 
						|
	.thumb_func
 | 
						|
multiple_personality_indicies:
 | 
						|
	.fnstart
 | 
						|
	.personalityindex 0
 | 
						|
	.personalityindex 1
 | 
						|
	.fnend
 | 
						|
 | 
						|
@ CHECK: error: multiple personality directives
 | 
						|
@ CHECK: 	.personalityindex 1
 | 
						|
@ CHECK:        ^
 | 
						|
@ CHECK: note: .personalityindex was specified here
 | 
						|
@ CHECK: 	.personalityindex 0
 | 
						|
@ CHECK:        ^
 | 
						|
@ CHECK: note: .personalityindex was specified here
 | 
						|
@ CHECK: 	.personalityindex 1
 | 
						|
@ CHECK:        ^
 | 
						|
 | 
						|
	.global invalid_expression
 | 
						|
	.type invalid_expression,%function
 | 
						|
	.thumb_func
 | 
						|
invalid_expression:
 | 
						|
	.fnstart
 | 
						|
	.personalityindex <expression>
 | 
						|
	.fnend
 | 
						|
 | 
						|
@ CHECK: error: unknown token in expression
 | 
						|
@ CHECK: 	.personalityindex <expression>
 | 
						|
@ CHECK:                          ^
 | 
						|
 | 
						|
	.global nonconstant_expression
 | 
						|
	.type nonconstant_expression,%function
 | 
						|
	.thumb_func
 | 
						|
nonconstant_expression:
 | 
						|
	.fnstart
 | 
						|
	.personalityindex nonconstant_expression
 | 
						|
	.fnend
 | 
						|
 | 
						|
@ CHECK: error: index must be a constant number
 | 
						|
@ CHECK: 	.personalityindex nonconstant_expression
 | 
						|
@ CHECK:                          ^
 | 
						|
 | 
						|
	.global bad_index
 | 
						|
	.type bad_index,%function
 | 
						|
	.thumb_func
 | 
						|
bad_index:
 | 
						|
	.fnstart
 | 
						|
	.personalityindex 42
 | 
						|
	.fnend
 | 
						|
 | 
						|
@ CHECK: error: personality routine index should be in range [0-3]
 | 
						|
@ CHECK: 	.personalityindex 42
 | 
						|
@ CHECK:                          ^
 | 
						|
 |