mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
e49cb88496
According to the documentation, .thumb_set is 'the equivalent of a .set directive'. We didn't have equivalent behaviour in terms of all the errors we could throw, for example, when a symbol is redefined. This change refactors parseAssignment so that it can be used by .set and .thumb_set and implements tests for .thumb_set for all the errors thrown by that method. Reviewed by Rafael Espíndola. llvm-svn: 240318
71 lines
1.8 KiB
ArmAsm
71 lines
1.8 KiB
ArmAsm
@ RUN: not llvm-mc -triple armv7-eabi -o /dev/null 2>&1 %s | FileCheck %s
|
|
|
|
.syntax unified
|
|
|
|
.thumb
|
|
|
|
.thumb_set
|
|
|
|
@ CHECK: error: expected identifier after '.thumb_set'
|
|
@ CHECK: .thumb_set
|
|
@ CHECL: ^
|
|
|
|
.thumb_set ., 0x0b5e55ed
|
|
|
|
@ CHECK: error: expected identifier after '.thumb_set'
|
|
@ CHECK: .thumb_set ., 0x0b5e55ed
|
|
@ CHECK: ^
|
|
|
|
.thumb_set labelled, 0x1abe11ed
|
|
.thumb_set invalid, :lower16:labelled
|
|
|
|
@ CHECK: error: unknown token in expression
|
|
@ CHECK: .thumb_set invalid, :lower16:labelled
|
|
@ CHECK: ^
|
|
|
|
.thumb_set missing_comma
|
|
|
|
@ CHECK: error: expected comma after name 'missing_comma'
|
|
@ CHECK: .thumb_set missing_comma
|
|
@ CHECK: ^
|
|
|
|
.thumb_set missing_expression,
|
|
|
|
@ CHECK: error: missing expression
|
|
@ CHECK: .thumb_set missing_expression,
|
|
@ CHECK: ^
|
|
|
|
.thumb_set trailer_trash, 0x11fe1e55,
|
|
|
|
@ CHECK: error: unexpected token
|
|
@ CHECK: .thumb_set trailer_trash, 0x11fe1e55,
|
|
@ CHECK: ^
|
|
|
|
.type alpha,%function
|
|
alpha:
|
|
nop
|
|
|
|
.type beta,%function
|
|
beta:
|
|
bkpt
|
|
|
|
.thumb_set beta, alpha
|
|
|
|
@ CHECK: error: redefinition of 'beta'
|
|
@ CHECK: .thumb_set beta, alpha
|
|
@ CHECK: ^
|
|
|
|
.type recursive_use,%function
|
|
.thumb_set recursive_use, recursive_use + 1
|
|
|
|
@ CHECK: error: Recursive use of 'recursive_use'
|
|
@ CHECK: .thumb_set recursive_use, recursive_use + 1
|
|
@ CHECK: ^
|
|
|
|
variable_result = alpha + 1
|
|
.long variable_result
|
|
.thumb_set variable_result, 1
|
|
|
|
@ CHECK: error: invalid reassignment of non-absolute variable 'variable_result'
|
|
@ CHECK: .thumb_set variable_result, 1
|
|
@ CHECK: ^
|