llvm-6502/test/MC/ARM/thumb_set-diagnostics.s
Pete Cooper 54d0bc35fe Change .thumb_set to have the same error checks as .set.
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240318 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-22 19:35:57 +00:00

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: ^